0

アルゴリズム、オプションのデフォルトの範囲を持っているいくつかのパラメータを持っているSklearn GridSearchCVは、エスティメータのパラメータの可能なすべてのデフォルトオプションを実行しますか? scikit学習における

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1, **kwargs) 

とパラメータは次のオプションで、デフォルト値「auto」を持っているかもしれません:algorithm:{「auto」で、私の質問は、**GridSearchCV**を使用してアルゴリズムのパラメータに最適な値のセットを見つけた場合、GridSearchCVはパラメータのすべてのデフォルトオプションを使用しますが、私はそれをparameter_listに追加しませんか?

例えば、私は**kNN**ための最良のパラメータ値を見つけるために**GridSearchCV**を使用したい、私は、n_neighborsalgorithmパラメータを検討する必要があるが、それは理由algorithm私は(なし以下のように値を渡す必要があることも可能ですパラメータにはデフォルトオプションがあります)、

parameter_list = {'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]} 

または、私が調べたいすべてのオプションを指定する必要がありますか?

parameter_list = { 
'algorithm': ['auto', 'ball_tree', 'kd_tree', 'brute'], 
'n_neighbors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]} 

ありがとうございます。

答えて

0

いいえ、パラメータのデフォルトと使用可能なオプションについて誤解しています。

documentation of KNeighborsClassifierを見ると、パラメータalgorithmは省略可能なパラメータです(つまり、KneighborsClassifierのコンストラクタで指定する場合と指定しない場合があります)。

ただし、指定する場合は、{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}というオプションがあります。つまり、これらの指定されたオプションの値をalgorithmに限定し、他の文字列を使用してalgorithmを指定することはできません。デフォルトのオプションは'auto'です。つまり、値を指定しないと、内部で'auto'が使用されます。

  • ケース1: - KNeighborsClassifier(n_neighbors=3)ここ

デフォルトの使用アルゴリズム= '自動' でalgorithmに値が指定されていないので、それがするので。

  • ケース2: - ここにKNeighborsClassifier(n_neighbors=3, algorithm='kd_tree')

それはkd_tree「今

を使用しますので、アルゴリズムは、指定されているように、GridSearchCVはその推定にそれらのパラメータを渡します。 param_gridに指定されています。したがって、最初のparameter_listを使用する場合は、推定値にはn_neighbors、アルゴリズムのデフォルト値は('auto')のみになります。

第2のparameter_listを使用する場合は、n_neighborsalgorithmの両方が推定値に渡されます。

+0

ありがとう –

関連する問題