Champignons : une question de vie ou de mort
Terminons le cours en revenant sur le problème d'identification de la comestibilité des champignons. Vous allez essayer le classificateur par empilement (stacking) pour voir si le score peut être amélioré. Comme le stacking utilise un méta-estimateur (classificateur de deuxième couche) qui tente de corriger les prédictions de la première couche, certaines observations mal classées pourraient être rectifiées. C'est un enjeu très important, puisque la comestibilité d'un champignon peut être une question de vie ou de mort.
L'ensemble de données a été chargé et séparé en ensembles d'entraînement et de test. Croyez-vous que le stacking peut aider à prédire la comestibilité d'un champignon avec plus d'assurance ?
Cette activité fait partie du cours
Méthodes d'ensemble en Python
Instructions de l’exercice
- Instanciez les estimateurs de première couche : un classificateur des 5 plus proches voisins utilisant l'algorithme ball tree, un arbre de décision avec les paramètres
min_samples_leaf = 5etmin_samples_split = 15, et un classificateur Naive Bayes gaussien. - Créez et ajustez un classificateur par empilement, en utilisant les paramètres
classifiers— une liste contenant les classificateurs de première couche — etmeta_classifier— la régression logistique par défaut.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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))))