我使用基于l1的特征选择,这些特征选择来自于特征选择文档。转换后的结果给出一个numpy数组。有没有一种方法可以让我知道在转换后的输出X_new
中选择了哪些特征?
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel
import pandas as pd
iris = load_iris()
y=iris.target
X = pd.DataFrame(iris.data,columns=['sepal_length','sepal_width','petal_length','petal_width'])
print X.shape #(150,4)
lsvc = LinearSVC(C=0.01, penalty="l1", dual=False).fit(X, y)
model = SelectFromModel(lsvc, prefit=True)
X_new = model.transform(X)
print X_new.shape #(150, 3)
我从这个问题中发现哪些功能选择了fit_transform?lsvc。coef_将返回给我一个完整的转换numpy数组,其中包含一些具有所有0's
的特征。
df=pd.DataFrame(lsvc.coef_,columns=['sepal_length','sepal_width','petal_length','petal_width'])
print df.columns[(df == 0).all()]