7

私はグリッド検索CVと私のKNN推定のための最良のハイパーセットを発見した: SklearnのGridseachCVの最高のパラメータを別のモデルにエレガントに渡すには?

>>> knn_gridsearch_model.best_params_ 
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3} 

これまでのところ、とても良いです。私はこれらの新しい発見されたパラメータで最終推定量を訓練したい。上記の超パラメータdictを直接フィードする方法はありますか?私はこの試みた:

>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_) 

を代わりに望んだ結果new_knn_modelはちょうどモデルの最初のパラメータとして全体の辞書を持って、デフォルトとして残りのものを左:

>>> knn_model 
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', 
      metric_params=None, n_jobs=1, 
      n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'}, 
      p=2, weights='uniform') 

は確かに残念。

+2

'dict'を' ** knn_gridsearch_model.best_params_'で解凍する必要があります – taras

答えて

11

あなたはとしては、次のことを行うことができます。

new_knn_model = KNeighborsClassifier() 
new_knn_model.set_params(**knn_gridsearch_model.best_params_) 

それとも@tarasが示唆されているように、単に直接解凍:

new_knn_model = KNeighborsClassifier(**knn_gridsearch_model.best_params_) 

ところで、仕上がりが実際にグリッドサーチ、グリッドサーチオブジェクトを実行した後に(デフォルトで)最良のパラメータを保持するので、オブジェクト自体を使用することができます。

my_model = KNeighborsClassifier(**grid.best_params_) 

が良いです:別の方法として、あなたはまた、私はちょうどgrid.best_parametersとを使用してのようなunpackingによって新しいモデルに渡すことを指摘したい

gs.best_estimator_ 
+0

ありがとうございます。後者のヒントについては、最善のパラメータをリサイクルする必要があります。なぜなら、最終的に列車+テストセットの組み合わせで新しいモデルを訓練したいからです。 – Hendrik

+0

私はここで最後の答え、 'gs.best_estimator_'を使ってこれを行います。私はここで3つの最良のアプローチとしてアドバイスしたいと思います。 –

0

を通じて最高のパラメータを持つ分類器をアクセスすることができましたすべてと私は個人的にそれをたくさん使いました。
しかし、ドキュメントhereに示されているように、それらのbest_parametersを使用して何かを予測することを目標とする場合は、grid.predictメソッドを直接使用することができます。

例:このは役に立ちました

y_pred = grid.predict(X_test) 

希望。