Voici mon code pour la méthode de sélection des fonctionnalités en Python:
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
X.shape
(150, 4)
X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transform(X, y)
X_new.shape
(150, 3)
Mais après avoir obtenu un nouveau X (variable dépendante - X_new), comment savoir quelles variables sont supprimées et quelles variables sont prises en compte dans cette nouvelle variable mise à jour? (lequel a été supprimé ou trois sont présents dans les données.)
La raison pour obtenir cette identification est d'appliquer le même filtrage sur les nouvelles données de test.
la source
iris.feature_names
feature_names
eniris
variable? Ça fonctionne bien pour moi.Alternativement, si vous utilisez SelectFromModel pour la sélection de fonctionnalités après avoir installé votre SVC, vous pouvez utiliser la méthode d'instance
get_support
. Cela renvoie un tableau booléen mappant la sélection de chaque entité. Ensuite, joignez-le à un tableau de noms de fonctionnalités d'origine, puis filtrez les statuts booléens pour produire l'ensemble des noms de fonctionnalités sélectionnés pertinents.J'espère que cela aidera les futurs lecteurs qui ont également eu du mal à trouver le meilleur moyen d'obtenir des noms de fonctionnalités pertinents après la sélection des fonctionnalités.
Exemple:
la source
Basé sur la solution @chinnychinchin, je fais habituellement:
qui renvoie quelque chose comme:
la source