在特征选择中找出已转换输出中的选定要素

时间:2016-09-20 06:54:30

标签: python scikit-learn

我正在使用feature selection documentaion中基于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) 

1 个答案:

答案 0 :(得分:0)

我从这个问题Which features selects fit_transform?得知,lsvc.coef_将返回完整的transfromed numpy数组,其中包含一些具有全部0's的特征。

df=pd.DataFrame(lsvc.coef_,columns=['sepal_length','sepal_width','petal_length','petal_width'])
print df.columns[(df == 0).all()]