我在SciKit-Learn中使用特徵選擇與管道組合。作爲特徵選擇策略,我使用SelectKBest
。訪問SciKit-Learn中特徵選擇管道後的實際特徵
創建管道並執行這樣的:
select = SelectKBest(k=5)
clf = SVC(decision_function_shape='ovo')
parameters = dict(feature_selection__k=[1,2,3,4,5,6,7,8],
svc__C=[0.01, 0.1, 1],
svc__decision_function_shape=['ovo'])
steps = [('feature_selection', select),
('svc', clf)]
pipeline = sklearn.pipeline.Pipeline(steps)
cv = sklearn.grid_search.GridSearchCV(pipeline, param_grid=parameters)
cv.fit(features_training, labels_training)
我知道,我可以通過cv.best_params_
獲得最佳參數之後。然而,這隻告訴我k=4
是最佳的。但我想知道這些功能是什麼?如何才能做到這一點?
不錯。所以如果'.scores_'的結果是'[891.65675063 952.43574853 739.36567492 913.33581205 753.59383098 910.65470991 867.7711945 469.26835899]',我從'best_params_'看到'k = 4',那麼我可以假設4選擇了最高值的功能?它是否正確? – beta
我認爲這是正確的。請檢查我的最新編輯到答案。這是查看所選功能的最佳方式。 –
太好了,謝謝。這樣可行。 – beta