Aqui está o meu código para o método de seleção de recursos em 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)
Mas depois de obter o novo X (variável dependente - X_new), como sei quais variáveis são removidas e quais são consideradas nessa nova variável atualizada? (qual remove ou quais três estão presentes nos dados.)
O motivo de obter essa identificação é aplicar a mesma filtragem nos novos dados de teste.
feature-selection
python
scikit-learn
Vignesh Prajapati
fonte
fonte
iris.feature_names
feature_names
nairis
variável? Isso funciona bem para mim.Alternativamente, se você usar SelectFromModel para seleção de recursos após ajustar a SVC, você pode usar o método de instância
get_support
. Isso retorna uma matriz booleana que mapeia a seleção de cada recurso. Em seguida, junte-o a uma matriz de nomes de recursos originais e filtre os status booleanos para produzir o conjunto de nomes de recursos selecionados relevantes.Espero que isso ajude os futuros leitores que também lutaram para encontrar a melhor maneira de obter nomes de recursos relevantes após a seleção dos recursos.
Exemplo:
fonte
Com base na solução @chinnychinchin, costumo fazer:
que retorna algo como:
fonte