Een eerste poging tot bagging
Je hebt gezien wat er gebeurt in één iteratie van een bagging-ensemble. Nu ga je een eigen baggingmodel bouwen!
Er zijn twee functies voor je klaargezet:
def build_decision_tree(X_train, y_train, random_state=None):
# Neemt een steekproef met terugleggen,
# bouwt een "zwakke" beslissingsboom,
# en past deze op de trainingsset
def predict_voting(classifiers, X_test):
# Maakt de individuele voorspellingen
# en combineert die vervolgens met "Voting"
Technisch gezien is de functie build_decision_tree() wat je in de vorige oefening deed. Hier bouw je meerdere van zulke bomen en combineer je ze daarna. Eens kijken of dit ensemble van "zwakke" modellen de prestaties verbetert!
Deze oefening maakt deel uit van de cursus
Ensemblemethoden in Python
Oefeninstructies
- Bouw de individuele modellen door
build_decision_tree()aan te roepen en de trainingsset en de indexials random state door te geven. - Voorspel de labels van de testset met
predict_voting(), met de lijst van classifiersclf_listen de invoer-testfeatures.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Build the list of individual models
clf_list = []
for i in range(21):
weak_dt = ____
clf_list.append(weak_dt)
# Predict on the test set
pred = ____
# Print the F1 score
print('F1 score: {:.3f}'.format(f1_score(y_test, pred)))