2016-09-20 71 views
0

我使用的是從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

我從這個問題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()]