Aquí está mi Código para el método de selección de características 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)
Pero después de obtener una nueva X (variable dependiente - X_nuevo), ¿cómo sé qué variables se eliminan y qué variables se consideran en esta nueva variable actualizada? (cuál eliminó o cuáles tres están presentes en los datos).
La razón para obtener esta identificación es aplicar el mismo filtro en los nuevos datos de prueba.
feature-selection
python
scikit-learn
Vignesh Prajapati
fuente
fuente
iris.feature_names
feature_names
eniris
variable? Funciona bien para mí.Alternativamente, si usa SelectFromModel para la selección de características después de ajustar su SVC, puede usar el método de instancia
get_support
. Esto devuelve una matriz booleana que asigna la selección de cada característica. A continuación, únase a esto con una matriz de nombres de características originales y luego filtre los estados booleanos para producir el conjunto de nombres de características seleccionadas relevantes.Espero que esto ayude a los futuros lectores que también tuvieron dificultades para encontrar la mejor manera de obtener nombres de funciones relevantes después de la selección de funciones.
Ejemplo:
fuente
Basado en la solución @chinnychinchin, generalmente hago:
que devuelve algo como:
fuente