Prořezávání stromu
Přeučení (overfitting) je klasický problém v analytice, a to zejména u algoritmu rozhodovacích stromů. Plně rozvinutý strom může sice velmi přesně predikovat hodnoty v trénovací sadě, ale na testovací sadě už tak dobře nemusí fungovat. Proto se růst rozhodovacího stromu obvykle omezuje:
- „Prořezáváním" stromu a nastavením maximální povolené hloubky.
- Omezením minimálního počtu pozorování v jednom listu stromu.
V tomto cvičení:
- prořežeš strom a omezíš jeho růst na 5 úrovní hloubky,
- natrénuješ ho na datech o zaměstnancích,
- otestuješ výsledky predikcí na trénovací i testovací sadě.
Proměnné features_train, target_train, features_test a target_test jsou v tvém pracovním prostředí již k dispozici.
Toto cvičení je součástí kurzu
HR Analytics: Predicting Employee Churn in Python
Pokyny k cvičení
- Inicializuj
DecisionTreeClassifiers omezením hloubky stromu na 5 úrovní. - Natrénuj model rozhodovacího stromu pomocí
featuresatargetz trénovací sady. - Zkontroluj přesnost predikcí na trénovací i testovací sadě.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)