Funghi: una questione di vita o di morte
Concludiamo il corso tornando al problema della commestibilità dei funghi. Userai lo stacking classifier per vedere se è possibile migliorare lo score. Poiché lo stacking usa un meta-estimatore (classificatore di secondo livello) che cerca di correggere le previsioni del primo livello, alcune istanze classificate in modo errato potrebbero essere corrette. È un problema molto importante, perché la commestibilità di un fungo è davvero una questione di vita o di morte.
Il dataset è stato caricato e suddiviso in train e test set. Secondo te lo stacking può aiutare a prevedere la commestibilità di un fungo con maggiore sicurezza?
Questo esercizio fa parte del corso
Metodi Ensemble in Python
Istruzioni dell'esercizio
- Istanzia gli stimatori del primo livello: un 5-nearest neighbors con algoritmo ball tree, un decision tree classifier con parametri
min_samples_leaf = 5emin_samples_split = 15, e un Gaussian Naive Bayes classifier. - Crea e addestra uno stacking classifier, usando i parametri
classifiers- una lista che contiene i classificatori del primo livello - emeta_classifier- la logistic regression predefinita.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create the first-layer models
clf_knn = ____
clf_dt = ____(____, ____, random_state=500)
clf_nb = ____
# Create the second-layer model (meta-model)
clf_lr = LogisticRegression()
# Create and fit the stacked model
clf_stack = ____
clf_stack.fit(X_train, y_train)
# Evaluate the stacked model’s performance
print("Accuracy: {:0.4f}".format(accuracy_score(y_test, clf_stack.predict(X_test))))