Paddenstoelen: een kwestie van leven of dood
Laten we de cursus afsluiten door het probleem van de eetbaarheid van paddenstoelen nog eens te bekijken. Je gaat de stacking-classifier proberen om te zien of de score kan worden verbeterd. Omdat stacking een meta-estimator (tweede-laag-classifier) gebruikt die probeert voorspellingen van de eerste laag te corrigeren, kunnen sommige verkeerd geclassificeerde voorbeelden worden hersteld. Dit is een heel belangrijk probleem, want de eetbaarheid van een paddenstoel is een kwestie van leven of dood.
De gegevensset is geladen en opgesplitst in train- en testsets. Denk je dat stacking kan helpen om de eetbaarheid van een paddenstoel met meer zekerheid te voorspellen?
Deze oefening maakt deel uit van de cursus
Ensemblemethoden in Python
Oefeninstructies
- Instantieer de schatters van de eerste laag: een 5-nearest neighbors met het ball tree-algoritme, een decision tree-classifier met parameters
min_samples_leaf = 5enmin_samples_split = 15, en een Gaussian Naive Bayes-classifier. - Bouw en train een stacking-classifier met de parameters
classifiers— een lijst met de classifiers van de eerste laag — enmeta_classifier— de standaard logistic regression.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))))