Prevedere le morti in GoT
Anche se la variabile target non ha valori mancanti, altre feature sì. Dato che il focus del corso non è il data cleaning e il preprocessing, abbiamo già eseguito per te il seguente preprocessing:
- Sostituzione dei valori NA con
0. - Sostituzione dei valori negativi dell'età con
0. - Sostituzione dei valori NA dell'età con la media.
Costruiamo ora un modello ensemble usando la tecnica di averaging. Sono già stati creati i seguenti modelli individuali:
- Regressione logistica (
clf_lr). - Albero di decisione (
clf_dt). - Support Vector Machine (
clf_svm).
Dal momento che il target è binario, tutti questi modelli potrebbero avere buone prestazioni singolarmente.
Il tuo obiettivo è combinarli usando l'averaging. Ricorda dal video che questo equivale a un approccio di voto soft, quindi dovresti comunque usare VotingClassifier().
Questo esercizio fa parte del corso
Metodi Ensemble in Python
Istruzioni dell'esercizio
- Prepara la lista di tuple
(stringa, stimatore). Usa'lr'perclf_lr,'dt'perclf_dte'svm'perclf_svm. - Crea un classificatore con averaging chiamato
clf_avg. Assicurati di specificare un argomento per il parametrovoting.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Build the individual models
clf_lr = LogisticRegression(class_weight='balanced')
clf_dt = DecisionTreeClassifier(min_samples_leaf=3, min_samples_split=9, random_state=500)
clf_svm = SVC(probability=True, class_weight='balanced', random_state=500)
# List of (string, estimator) tuples
estimators = ____
# Build and fit an averaging classifier
clf_avg = ____
clf_avg.fit(X_train, y_train)
# Evaluate model performance
acc_avg = accuracy_score(y_test, clf_avg.predict(X_test))
print('Accuracy: {:.2f}'.format(acc_avg))