木の剪定(Pruning)
過学習は分析における典型的な課題で、特に決定木アルゴリズムで起こりやすいです。木を最大まで成長させると、訓練サンプルでは非常に高い精度を示す一方で、テストセットでは同じように高精度にならないことがあります。そのため、決定木の成長は通常、次のように制御します。
- 木を「剪定」して、最大深さに上限を設ける。
- 各葉に含める最小観測数に制限を設ける。
この演習では、次を行います。
- 木を剪定し、深さを5階層に制限する
- 従業員データに学習させる
- 訓練セットとテストセットの両方で予測結果を評価する
変数 features_train、target_train、features_test、target_test は、すでにワークスペースに用意されています。
この演習はコースの一部です
HRアナリティクス:Pythonで従業員離職を予測する
演習の手順
- 決定木の深さを 5 に制限して
DecisionTreeClassifierを初期化します。 - 訓練セットの
featuresとtargetを使って決定木モデルを学習させます。 - 訓練セットとテストセットの両方で予測の正解率を確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)