Équilibrer les classes
Cela peut fortement influer sur les résultats de prédiction, comme le montre l’écart entre les scores de recall et d’accuracy. Pour résoudre le déséquilibre, on attribue généralement des poids égaux à chaque classe. En utilisant l’argument class_weight dans le DecisionTreeClassifier de sklearn, on peut rendre les classes "balanced".
Corrigeons notre modèle en traitant son problème de déséquilibre :
- d’abord, vous allez configurer un modèle avec des classes équilibrées
- ensuite, vous l’ajusterez sur les données d’entraînement
- enfin, vous vérifierez sa précision sur l’ensemble de test
Les variables features_train, target_train, features_test et target_test sont déjà disponibles dans votre espace de travail.
Cet exercice fait partie du cours
Analytique RH : prédire l’attrition des employés en Python
Instructions
- Initialisez le Decision Tree Classifier, élaguez votre arbre en limitant sa profondeur maximale à 5, et équilibrez les poids des classes.
- Ajustez le nouveau modèle.
- Affichez le
scorede précision de la prédiction (en pourcentage) pour l’ensemble de test.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)