De boom snoeien
Overfitting is een klassiek probleem in analytics, zeker bij het decision tree-algoritme. Als de boom volledig is gegroeid, kan hij zeer nauwkeurige voorspellingen geven voor de trainingssteekproef, maar op de testset veel minder goed presteren. Daarom wordt de groei van de decision tree meestal beperkt door:
- de boom te “snoeien” en een maximumdiepte in te stellen
- het minimumaantal observaties in één blad van de boom te beperken.
In deze oefening ga je:
- de boom snoeien en de groei beperken tot 5 niveaus diep
- hem fitten op de werknemersgegevens
- de voorspellingen testen op zowel de trainings- als 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
DecisionTreeClassifieren beperk de diepte van de boom tot 5. - Fit het Decision Tree-model met de
featuresen detargetin de trainingsset. - Controleer de nauwkeurigheid van de voorspellingen op zowel de trainings- als de testset.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)