2016-07-26 6 views
0

マシンの学習に問題があり、SVCエスティメータと機能の選択を最適化したい。SciKit-Learnの再帰的フィーチャ除去とグリッド検索の両方を使用

SVC見積もりを最適化するために、私は基本的にdocsのコードを使用しています。今私の質問は、recursive feature elimination cross validation (RCEV)とこれをどのように組み合わせることができますか?つまり、各エスティメータとエバリュエータの組み合わせについて、エバリュエータとフィーチャの最適な組み合わせを決定するためにRCEVを実行したいと考えています。

私はthis threadから解決策を試してみましたが、それは次のようなエラーが得られます。

tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-4,1e-3],'C': [1,10]}, 
        {'kernel': ['linear'],'C': [1, 10]}] 

estimator = SVC(kernel="linear") 
selector = RFECV(estimator, step=1, cv=3, scoring=None) 
clf = GridSearchCV(selector, tuned_parameters, cv=3) 
clf.fit(X_train, y_train) 

エラーがclf = GridSearchCV(selector, tuned_parameters, cv=3)に表示されます:

ValueError: Invalid parameter C for estimator RFECV. Check the list of available parameters with `estimator.get_params().keys()`. 

私のコードは次のようになります。

答えて

1

私はパイプラインを使用しますが、ここではあなたがより適切な対応に

Recursive feature elimination and grid search using scikit-learn

+0

感謝を持っています。私はまた、このチュートリアルで動作するようにしました:https://civisanalytics.com/blog/data-science/2016/01/06/workflows-python-using-pipeline-gridsearchcv-for-compact-code/パイプライン)。 – beta

関連する問題