Klassen balanceren
Het kan de voorspellingsresultaten aanzienlijk beïnvloeden, zoals blijkt uit het verschil tussen de recall- en accuracy-scores. Om de onbalans op te lossen, worden meestal gelijke gewichten aan elke klasse gegeven. Met het argument class_weight in sklearn's DecisionTreeClassifier kun je de klassen "balanced" maken.
Laten we ons model corrigeren door het onbalansprobleem op te lossen:
- eerst ga je een model opzetten met gebalanceerde klassen
- daarna fit je het op de trainingsgegevens
- tot slot controleer je de nauwkeurigheid op de testset
De variabelen features_train, target_train, features_test en target_test zijn al beschikbaar in je werkruimte.
Deze oefening maakt deel uit van de cursus
HR-analytics: verloop van medewerkers voorspellen in Python
Oefeninstructies
- Initialiseer de Decision Tree Classifier, snoei je boom door de maximale diepte te beperken tot 5, en balanceer de klassegewichten.
- Fit het nieuwe model.
- Print de
accuracy-scorevan de voorspelling (in procentpunten) voor de testset.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)