sklearn.model_selection.GridSearchCVをもとに作成しました.
メモみたいな感じです.
Parameters
1. estimator : estimator object
ここにはモデルが入ります.
ex.)
lgb.LGBMClassifier(silent=False) や,
keras.layers.Sequential()
.add(Dense((units=64, activation='relu', input_dim=100))))
.add(Dense(units=10, activation='softmax'))
など,いわゆるモデルです.
2. param_grid : dict or list of dictionaries
ここでは,GridSearchで探すハイパーパラメータの辞書です.
つまり,この辞書はモデルに依存します.
ex.) LGBMにおいて
grid_param = {
'objective': ['multiclass'],
'class_weight':['balanced'],
'learning_rate':[0.2,0.5],
"num_leaves":[31,33],
'metric': ['multi_logloss'],
"n_estimators": [100],
"reg_alpha":[0.1,0.3],
"reg_lambda":[0.1,0.3],
'verbosity':[ -1]
}
など
3. scoring: str, callable, list, tuple or dict, default=None
このメトリックはスコアの査定のために使用される指標(メトリック)です.
そのため,モデルに依存させず,GridSearchCVが提供しているmetricを使用する必要があります.
つまり,この中(Metrics and scoring: quantifying the quality of prediction)から選ぶ必要があります.
4. n_job: int, default=None
これは並列に動かす数です.つまり,考えるハイパーパラメータを並列に処理し
実行時間を抑えてくれます(-1にするとコア数になります).
5. refit:bool, str, or callable, default=True
最良だと考えられるモデルを"best_estimator_"で簡単にとってこれるようにします.
(実際の学習に便利)
6. cv: int, cross-validation generator or an iterable, default=None
これでデータを何分割してk-Fold CVをするか決定します.
7. verbose: int
GridSearchCVを使用した際の出力(output)に関する設定を行います.
x>1 で,一つのパラメータの一つのk-foldにかかった時間を表示し,
x>2 で,そのスコアを表示し,
x>3 で,今までかかった時間も表示します.
(これだけdefaul値が書いてないですが,おそらく4くらいがデフォルトだと思います.)
8. pre_dispatch: int, or str, default=n_jobs
並列実行時にディスパッチされるジョブの数を制御します.
これをすることで,メモリ消費量が爆発的に増加するのを防ぐことができます.
(None にすると早くすみます.)
9. error_score: ‘raise’ or numeric, default=np.nan
エラーが起きた際に割り当てるスコアを決定できます.
10. return_train_score: bool, default=False
Falseの場合, cv_results_ 属性にトレーニングスコアが含まれません.
トレーニングスコアを計算することで,さまざまなパラメータ設定が
オーバーフィッティング/アンダーフィッティングのトレードオフに
どのような影響を与えるかを知ることができますが,
トレーニングセットのスコアを計算するのは計算量が多く,
最良の汎化性能をもたらすパラメータを選択するためには,厳密には必要ありません.