2017-01-05 1 views
1

ここで質問するのが正しい質問かどうかわかりませんが、とにかく質問します。許可されていない場合は、私に知らせてください。gridsearchcvから最高のパラメータを使用して

私はGridSearchCVを使用して、パラメータを調整して最高の精度を見つけました。 、

The parameters combination that would give best accuracy is : 
{'max_depth': 5, 'criterion': 'entropy', 'min_samples_split': 2} 
The best accuracy achieved after parameter tuning via grid search is : 0.8147086914995224 

私は、決定木

に機能を可視化する機能を呼び出している間、これらのパラメータを使用したい:これは私に次のような結果になります

from sklearn.grid_search import GridSearchCV 
parameters = {'min_samples_split':np.arange(2, 80), 'max_depth': np.arange(2,10), 'criterion':['gini', 'entropy']} 
clfr = DecisionTreeClassifier() 
grid = GridSearchCV(clfr, parameters,scoring='accuracy', cv=8) 
grid.fit(X_train,y_train) 
print('The parameters combination that would give best accuracy is : ') 
print(grid.best_params_) 
print('The best accuracy achieved after parameter tuning via grid search is : ', grid.best_score_) 

:これは私がやっていることです今、私が一番parameを使用しようとしています。この

def visualize_decision_tree(decision_tree, feature, target): 
    dot_data = export_graphviz(decision_tree, out_file=None, 
         feature_names=feature, 
         class_names=target, 
         filled=True, rounded=True, 
         special_characters=True) 
    graph = pydotplus.graph_from_dot_data(dot_data) 
    return Image(graph.create_png()) 

ようになりますGridSearchCVによって提供さTERSは私が

TypeError: __init__() got an unexpected keyword argument 'parameters' 

を言うのコードの1行目にエラーを取得しています

dtBestScore = DecisionTreeClassifier(parameters = grid.best_params_) 
dtBestScore = dtBestScore.fit(X=dfWithTrainFeatures, y= dfWithTestFeature) 
visualize_decision_tree(dtBestScore, list(dfCopy.columns.delete(0).values), 'survived') 

は私が何とか最良のパラメータを使用するように管理することができますいくつかの方法があり、次のように関数を呼び出しますグリッド検索によって提供され、それを自動的に使用しますか?結果を見て、各パラメータの値を手動で設定するのではなく、

+0

python kwargsは 'DecisionTreeClassifier(** grid.best_params)'のように機能しませんか? kwargsの詳細については、https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/をご覧ください。 –

+0

はすごくうまくいった。答えとして書くことができ、私はそれを受け入れることができます。私はこのことを初めて知っていて、多くのおかげで、 – Cybercop

+0

が答えとして追加されました。ありがとう。 –

答えて

関連する問題