クラスの不均衡を解消する
recall と accuracy のスコア差からも分かるように、クラスの不均衡は予測結果に大きく影響します。これを解決する一般的な方法は、各クラスに同じ重みを与えることです。sklearn の DecisionTreeClassifier では、class_weight 引数を使ってクラスを "balanced" にできます。
それでは、不均衡の問題を解消してモデルを改善しましょう。
- まず、クラス重みをバランスさせたモデルを設定します
- 次に、学習データにフィットさせます
- 最後に、テストデータで精度を確認します
features_train、target_train、features_test、target_test はすでにワークスペースに用意されています。
この演習はコースの一部です
HRアナリティクス:Pythonで従業員離職を予測する
演習の手順
- 決定木分類器を初期化し、最大深さを 5 に制限して木を枝刈りし、クラス重みをバランスさせます。
- 新しいモデルをフィットします。
- テストデータに対する予測の精度
scoreを(パーセンテージで)表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize the DecisionTreeClassifier
model_depth_5_b = DecisionTreeClassifier(____=5,class_weight="____",random_state=42)
# Fit the model
model_depth_5_b.____(features_train,target_train)
# Print the accuracy of the prediction (in percentage points) for the test set
print(model_depth_5_b.____(features_test,____)*100)