始める無料で始める

GridSearch のパラメータを設定する

ハイパーパラメータは、関数の内部で設定するパラメータのことです。たとえば、max_depthmin_samples_leafDecisionTreeClassifier() のハイパーパラメータです。ハイパーパラメータチューニングとは、さまざまな値を試して最適なもの(目的に照らして最も良い予測が得られるもの)を見つけるプロセスです。sklearn では、GridSearch を使ってハイパーパラメータの異なる組み合わせを試せます。さらに GridSearchCV() を使えば、さまざまな組み合わせのテストとクロスバリデーションを1つの関数で実行できます!

この演習では、max_depthmin_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_depthmin_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=____)
コードを編集して実行