Champignons : une question de vie ou de mort
Terminons le cours en revenant sur le problème de comestibilité des champignons. Vous allez essayer le classifieur par empilement (stacking) pour voir si le score peut être amélioré. Comme le stacking utilise un méta-estimateur (classifieur de seconde couche) qui tente de corriger les prédictions de la première couche, certaines instances mal classées pourraient être rectifiées. C’est un sujet très important, car la comestibilité d’un champignon est une question de vie ou de mort.
L’ensemble de données a été chargé puis séparé en ensembles d’entraînement et de test. Pensez-vous que le stacking peut aider à prédire la comestibilité d’un champignon avec davantage de confiance ?
Cet exercice fait partie du cours
Méthodes d’ensemble en Python
Instructions
- Instanciez les estimateurs de première couche : un k plus proches voisins avec k=5 utilisant l’algorithme « ball tree », un arbre de décision avec
min_samples_leaf = 5etmin_samples_split = 15, et un classifieur Naïf bayésien gaussien. - Construisez et ajustez un classifieur par empilement, en utilisant les paramètres
classifiers— une liste contenant les classifieurs de première couche — etmeta_classifier— la régression logistique par défaut.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))))