Oto mój kod metody wyboru funkcji w Pythonie:
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)
Ale po uzyskaniu nowego X (zmienna zależna - X_new), skąd mam wiedzieć, które zmienne są usuwane, a które zmienne są uwzględniane w tej nowej zaktualizowanej zmiennej? (które usunięto lub które trzy są obecne w danych).
Powodem uzyskania tej identyfikacji jest zastosowanie tego samego filtrowania do nowych danych testowych.
feature-selection
python
scikit-learn
Vignesh Prajapati
źródło
źródło
iris.feature_names
feature_names
wiris
zmiennej? Działa dla mnie dobrze.Alternatywnie, jeśli używasz SelectFromModel do wyboru funkcji po dopasowaniu SVC, możesz użyć metody instancji
get_support
. Zwraca tablicę boolowską mapującą wybór każdej funkcji. Następnie połącz to z oryginalną tablicą nazw operacji, a następnie przefiltruj statusy boolowskie, aby utworzyć zestaw odpowiednich nazw wybranych operacji.Mam nadzieję, że pomoże to przyszłym czytelnikom, którzy również mieli trudności ze znalezieniem najlepszego sposobu uzyskania odpowiednich nazw funkcji po wybraniu funkcji.
Przykład:
źródło
W oparciu o rozwiązanie @chinnychinchin zwykle robię:
co zwraca coś takiego:
źródło