Sélection de fonctionnalités Sklearn

Sélection de fonctionnalités Sklearn
La meilleure technique pour résoudre un problème d'apprentissage automatique est de commencer avec un ensemble de données, d'effectuer une EDA approfondie dessus et de saisir beaucoup de choses à la plupart des caractéristiques clés des prédicteurs avant de formation activement des modèles sur ces variables. Cependant, ce n'est pas toujours possible de faire ça. Vous avez parfois besoin d'une approche automatisée pour choisir un sous-ensemble de données approprié car l'ensemble de données comprend trop de variables. Des techniques similaires trouvées dans la bibliothèque Sklearn sont discutées dans cet article.

Qu'est-ce que la sélection des fonctionnalités?

Le processus de sélection des fonctionnalités consiste à réduire le nombre de variables prédictives utilisées dans les modèles que vous créez. Par exemple, votre première inclination devrait être de sélectionner le modèle avec moins de variables lorsqu'il est présenté avec deux modèles avec le même score ou presque identique. Mais ce dernier modèle a plus de variables. Ce modèle est moins susceptible d'être fuit, plus facile à gérer et plus simple à comprendre et à s'entraîner. Il vient facilement dans le cadre du processus de construction de modèles pour régler le nombre de paramètres dans un modèle, qui est une composante naturelle de la science des données dans la pratique. La sélection des fonctionnalités est principalement une procédure manuelle, même lorsqu'il y a peu de fonctionnalités, ou que vous avez le temps de vous asseoir et d'y penser. La sélection de fonctionnalités automatisées ou semi-automatisées peut accélérer les processus dans des situations lorsqu'il y a trop de variables, ou vous n'avez pas beaucoup de temps.

Implémentation de la sélection des fonctionnalités dans Sklearn

Nous importons d'abord les données à l'aide de pandas. L'ensemble de données peut être trouvé ici.

Importer des pandas en tant que PD
df = pd.read_csv ('iris.csv ')
df = df.drop ('id', axe = 1)
df.diriger()

Sortir

SEPALLENGHNETHCM Sepalwidthcm PetAlNGLASTCM Pétalwidthcm Espèces
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

Sélection des fonctionnalités de seuil de variance

Un seuil de variance est une méthode simple pour supprimer les fonctionnalités en fonction de la variance que nous prévoyons pour chaque fonctionnalité. Sans considérer aucune donnée de la variable dépendante, la sélection des fonctionnalités de seuil de variance considère simplement les fonctionnalités d'entrée. En conséquence, il est seulement efficace pour la modélisation non supervisée lorsque les fonctionnalités sont éliminées. Vous trouverez ci-dessous la mise en œuvre de l'approche:

de Sklearn.caractéristique_selection import variancethreshold
df = df.select_dtypes ('numéro')
sélecteur = variancethreshold (2)
sélecteur.Fit (DF)
df.colonnes [sélecteur.obtenir de l'aide()]

Sortir

Index (['PetAlNGLNGTHCM'], dtype = "objet")

SelectKbest

Une technique de sélection des fonctionnalités appelée sélection de fonctionnalités univariées est basée sur le test statistique univarié. Le fondement de «SelectKBest» est la combinaison d'un test statistique univarié avec la sélection des fonctionnalités du nombre K basé sur la corrélation statistique entre les variables dépendantes et indépendantes. Vous trouverez ci-dessous l'implémentation de 'selectKBest'.

X = df.Drop ('espèces', axe = 1)
y = df ['espèces']
de Sklearn.FEATUATION_SELECTION IMPORT SELECTKBEST, MUTUAL_INFO_REGRESSION
De Sklearn Import Prétraitement
Encodeur = prétraitement.LabelEncoder ()
y = encodeur.fit_transform (y)
sélecteur = selectKbest (mutual_info_regression, k = 2)
sélecteur.ajustement (x, y)
X.colonnes [sélecteur.obtenir de l'aide()]

Sortir

Index (['PetAlNGLNGTHCM', 'PetalWidthcm'], dType = 'Object')

Conclusion

Nous avons discuté des méthodes de sélection des fonctionnalités dans Sklearn. La sélection des fonctionnalités est importante lorsque vous travaillez avec de nombreuses fonctionnalités et nous devons abandonner les fonctionnalités redondantes pour une meilleure compréhension des données et de meilleures performances. Sklearn nous fournit un module 'ftealing_selection' utilisé pour implémenter cette technique.