香菇:攸關生死
就用香菇可食性這個問題來為課程收尾吧。你將嘗試使用 stacking 分類器,看看是否能提升分數。由於 stacking 會使用一個中介估計器(第二層分類器)來嘗試修正第一層的預測,因此有些被錯分的樣本可能會被更正。這是個非常重要的問題,因為香菇是否可食,攸關生死。
資料集已載入並切分為訓練集與測試集。你認為 stacking 能否幫助更有把握地預測香菇的可食性?
本練習屬於課程
Python 的 Ensemble 方法
練習說明
- 實例化第一層估計器:使用 ball tree 演算法的 5 最近鄰、參數為
min_samples_leaf = 5與min_samples_split = 15的決策樹分類器,以及 Gaussian 樸素貝葉斯分類器。 - 建立並擬合一個 stacking 分類器,使用參數
classifiers(包含第一層分類器的清單)與meta_classifier(預設的羅吉斯迴歸)。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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))))