2016-04-08 9 views
0

以下のワークフローを使用して、本番用のランダムフォレスト分類子を訓練しています。私は、RandomizedSearchCVを使用して、結果を出力し、RandomizedSearchCVの結果を使用して新しいパイプラインを作成することによって、分類器のパラメータを調整しています。私は、RandomizedSearchCVの最良の結果をクラシファイアに単に指し示す方法が必要であると想定しているので、私はそれを手動で行う必要はありませんが、どのように把握することはできません。分類器へのRandomizedSearchCVのポインティング

select = sklearn.feature_selection.SelectKBest(k=40) 
clf = sklearn.ensemble.RandomForestClassifier() 
steps = [('feature_selection', select), 
    ('random_forest', clf)] 
parameters = {"random_forest__max_depth": [3, None], 
      "random_forest__max_features": sp_randint(1, 21), 
      "random_forest__min_samples_split": sp_randint(1, 21), 
      "random_forest__min_samples_leaf": sp_randint(1, 21), 
      "random_forest__bootstrap": [True, False], 
      "random_forest__criterion": ["gini", "entropy"]} 
pipeline = sklearn.pipeline.Pipeline(steps) 
n_iter_search = 20 
cv = RandomizedSearchCV(pipeline, param_distributions = parameters, n_iter=n_iter_search) 
cv.fit(X,y) 
+0

あなたがしようとしていることの詳細を教えてください。どのコードを試しましたか? – dooms

+0

私は自分の疑問を実際に解決したかもしれないと思う。私はcvオブジェクトが実際に見つかった最良のパラメータを持つランダムなフォレスト分類子であることを認識していませんでした。私は、新しいRFクラシファイアを作成し、検索結果を渡す必要があると思った。 –

答えて

1

RandomizedSearchCVオブジェクトでは、残りの見積もりが最も適したものか最後のものかがわかりません。あなたは最高のモデルを取得していることを確認するために、best_estimator_属性にアクセスできます。

関連する問題