-1

是否有一種使用GridSearch自動調整隨機森林分類器的方法。我們沒有提供這些值,而是有任何方法可以找到最佳的最佳參數值。使用sklearn在隨機森林中自動超參數調整?

rfc = RandomForestClassifier(n_jobs=-1, max_features='sqrt', oob_score = True) 

    # Use a grid over parameters of interest 
    param_grid = { 
       "n_estimators" : [9, 18, 27, 36, 45, 54, 63], 
       "max_depth" : [1, 5, 10, 15, 20, 25, 30], 
       "min_samples_leaf" : [1, 2, 4, 6, 8, 10]} 

    CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv= 10) 
    CV_rfc.fit(train_x, train_y) 
    print CV_rfc.best_params_ 
+0

號我會建議在[交叉驗證](https://stats.stackexchange.com/)中提出這個問題,你會得到一個更詳細的答案,爲什麼沒有。 – ncfirth

+0

我不同意這是一個更好的交叉驗證問題。根據我的經驗,如果您足夠理解您的問題並將其放入scikit-learn代碼中,那麼SO是一個更好的地方。 –

回答

0

是的,你幾乎在那裏。您已使用您的print CV_rfc.best_params_系列確定了最佳的RF參數集。

您的CV_rfc對象在運行CV_rfc.fit(train_x, train_y)後,已經在您的所有列車數據中重新安裝了RF模型,並找到了最佳的RF參數集。您可以使用CV_rfc.best_estimator_訪問「最佳模型」(除非在適合Gridsearch對象時設置refit=False)。

所以,你可以用你的測試數據是最好的估計新的預測與 CV_rfc.best_estimator_.predict(test_x),或作爲一種方便甚至CV_rfc.predict(test_x)

這是值得花更多的時間與documentation