我正在使用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)
答案 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()]