GridSearch のパラメータを設定する
ハイパーパラメータは、関数の内部で設定するパラメータのことです。たとえば、max_depth や min_samples_leaf は DecisionTreeClassifier() のハイパーパラメータです。ハイパーパラメータチューニングとは、さまざまな値を試して最適なもの(目的に照らして最も良い予測が得られるもの)を見つけるプロセスです。sklearn では、GridSearch を使ってハイパーパラメータの異なる組み合わせを試せます。さらに GridSearchCV() を使えば、さまざまな組み合わせのテストとクロスバリデーションを1つの関数で実行できます!
この演習では、max_depth と min_samples_leaf に対して試したい値の候補を準備します。これらは GridSearchCV() に渡す必要があるため、辞書にまとめます。
- 辞書のキーはハイパーパラメータ名
- 辞書の値は試したい属性(ハイパーパラメータの値)
すべての値を手で列挙する代わりに、段階的に値を生成できる range() 関数を使います。たとえば、range(1, 10, 2) は 1 を含み 10 を含まない範囲で 2 ずつ増加する値を生成します。最終的な結果は [1, 3, 5, 7, 9] になります。
この演習はコースの一部です
HRアナリティクス:Pythonで従業員離職を予測する
演習の手順
- 上の例と同じ形式で、最大深さを 5 から 20 まで 1 ずつ増やした値を生成します
- 同様に、最小サンプル数を 50 から 450 まで 50 ずつ増やした値で生成します
- 先ほど作成した変数を使って、試す
max_depthとmin_samples_leafの値を指定した辞書を作成します
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)