2017-09-15 10 views
1

私のデータセットでGridSearchCVを使用した後、すべての最適なパラメータを抽出したいと思います。GridSearchから複数のパラメータを一度に設定する

from sklearn.tree import DecisionTreeClassifier 

params_grid = {'max_depth': np.arange(3, 10), 
       'max_leaf_nodes':list(xrange(20,100,20)), 
       'max_features':list(xrange(2,10,2)) 
       } 
my_dt = DecisionTreeClassifier() 
grid_clf = GridSearchCV(my_dt, params_grid) 
grid_clf.fit(xtrain, ytrain) 

best_plist = grid_clf.best_params_ 

は今、私は新しいDecisionTreeClassifierオブジェクトを作成し、それがbest_plistと同じように偶然にです設定したいです。

new_clf = DecisionTreeClassifier() 
new_clf.max_depth=bestplit['max_depth'] # and so on for all the parameters 

しかし、私は複数のML algoritihmsを分析され、新しいオブジェクトのパラメータを設定する代わりにハードコーディングの一般的な方法をしたいと思う。問題は、私は、このような各パラメータの手作業でやっているということですアルゴリズムごとに私はちょうどこれのためのsklearnのこれのための何かの回避策があることを知りたがっていましたか?

+0

'grid_clf.best_estimator_'を直接使うことができます。これは、最良のパラメータでエスティメータを返します。 –

答えて

1

はい、sklearnの機械学習アルゴリズムのほとんどで利用可能なSklearnの機能set_params()を使用して直接パラメータを設定できます。

best_plist = grid.best_parms_ 
new_clf = DecisionTreeClassifier() #or any classifier you performed GridSearch on 
new_clf.set_params(**best_plist) 
関連する問題