始める無料で始める

木の剪定(Pruning)

過学習は分析における典型的な課題で、特に決定木アルゴリズムで起こりやすいです。木を最大まで成長させると、訓練サンプルでは非常に高い精度を示す一方で、テストセットでは同じように高精度にならないことがあります。そのため、決定木の成長は通常、次のように制御します。

  • 木を「剪定」して、最大深さに上限を設ける。
  • 各葉に含める最小観測数に制限を設ける。

この演習では、次を行います。

  • 木を剪定し、深さを5階層に制限する
  • 従業員データに学習させる
  • 訓練セットとテストセットの両方で予測結果を評価する

変数 features_traintarget_trainfeatures_testtarget_test は、すでにワークスペースに用意されています。

この演習はコースの一部です

HRアナリティクス:Pythonで従業員離職を予測する

コースを見る

演習の手順

  • 決定木の深さを 5 に制限して DecisionTreeClassifier を初期化します。
  • 訓練セットの featurestarget を使って決定木モデルを学習させます。
  • 訓練セットとテストセットの両方で予測の正解率を確認します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Initialize the DecisionTreeClassifier while limiting the depth of the tree to 5
model_depth_5 = DecisionTreeClassifier(____=5, random_state=42)

# Fit the model
____.fit(features_train,target_train)

# Print the accuracy of the prediction for the training set
print(____.____(features_train,target_train)*100)

# Print the accuracy of the prediction for the test set
print(model_depth_5.score(____,____)*100)
コードを編集して実行