複数の分類子のグリッド検索を構築しており、相互検証で再帰的な特徴の除去を使用したいと考えています。scikit-learn を使用した再帰的機能の除去とグリッド検索で提供されているコードから始めました。以下は私の作業コードです:
param_grid = [{'C': 0.001}, {'C': 0.01}, {'C': .1}, {'C': 1.0}, {'C': 10.0},
{'C': 100.0}, {'fit_intercept': True}, {'fit_intercept': False},
{'penalty': 'l1'}, {'penalty': 'l2'}]
estimator = LogisticRegression()
selector = RFECV(estimator, step=1, cv=5, scoring="roc_auc")
clf = grid_search.GridSearchCV(selector, {"estimator_params": param_grid},
cv=5, n_jobs=-1)
clf.fit(X,y)
print clf.best_estimator_.estimator_
print clf.best_estimator_.ranking_
print clf.best_estimator_.score(X, y)
「estimator_params」パラメーターが 0.18 で削除されているように見えるため、DeprecationWarning を受け取りました。4行目で使用する正しい構文を見つけようとしています。
しようとしています...
param_grid = [{'C': 0.001}, {'C': 0.01}, {'C': .1}, {'C': 1.0}, {'C': 10.0},
{'C': 100.0}, {'fit_intercept': True}, {'fit_intercept': False},
{'fit_intercept': 'l1'}, {'fit_intercept': 'l2'}]
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
戻り値 ValueError: パラメータ値はリストでなければなりません。と...
param_grid = {"penalty": ["l1","l2"],
"C": [.001,.01,.1,1,10,100],
"fit_intercept": [True, False]}
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
ValueError を返します: エスティメータ RFECV のパラメータ ペナルティが無効です。で使用可能なパラメータのリストを確認してくださいestimator.get_params().keys()
。キーを確認すると、「C」、「fit_intercept」、「penalty」の 3 つすべてがパラメーター キーとして表示されます。しようとしています...
param_grid = {"estimator__C": [.001,.01,.1,1,10,100],
"estimator__fit_intercept": [True, False],
"estimator__penalty": ["l1","l2"]}
clf = grid_search.GridSearchCV(selector, param_grid,
cv=5, n_jobs=-1)
実行が完了することはないため、そのタイプのパラメーター割り当てがサポートされていないと推測しています。
今のところ、警告を無視するように設定していますが、0.18 の適切な構文でコードを更新したいと思います。任意の支援をいただければ幸いです!