Un primo tentativo di bagging
Hai visto cosa succede in una singola iterazione di un ensemble di bagging. Ora costruiamo un modello di bagging personalizzato!
Sono state preparate per te due funzioni:
def build_decision_tree(X_train, y_train, random_state=None):
# Estrae un campione con reinserimento,
# costruisce un albero di decisione "debole",
# e lo adatta al training set
def predict_voting(classifiers, X_test):
# Produce le predizioni individuali
# e poi le combina usando il "Voting"
Tecnicamente, la funzione build_decision_tree() è ciò che hai fatto nell'esercizio precedente. Qui costruirai più alberi di questo tipo e poi li combinerai. Vediamo se questo ensemble di modelli "deboli" migliora le prestazioni!
Questo esercizio fa parte del corso
Metodi Ensemble in Python
Istruzioni dell'esercizio
- Costruisci i singoli modelli chiamando
build_decision_tree(), passando il training set e l'indiceicome random state. - Predici le etichette del test set usando
predict_voting(), con la lista di classificatoriclf_liste le feature di input del test.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)))