Soft 與 hard voting
你已經練習過兩種集成方法:Voting 與 Averaging(soft voting)。哪一個比較好?最好的做法是兩個都試試看,然後比較它們的效能。現在就用《冰與火之歌》資料集來實作看看。
我們已為你建立了三個個別的分類器:
- 一個
DecisionTreeClassifier(clf_dt)。 - 一個
LogisticRegression(clf_lr)。 - 一個
KNeighborsClassifier(clf_knn)。
你的任務是同時嘗試 voting 與 averaging,判斷哪一個表現較佳。
本練習屬於課程
Python 的 Ensemble 方法
練習說明
- 準備由
(string, estimator)組成的 tuple 清單。將clf_dt的標籤設為'dt',clf_lr為'lr',clf_knn為'knn'。 - 建立名為
clf_vote的 voting 分類器。 - 建立名為
clf_avg的 averaging 分類器。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# List of (string, estimator) tuples
estimators = ____
# Build and fit a voting classifier
clf_vote = ____
clf_vote.fit(X_train, y_train)
# Build and fit an averaging classifier
clf_avg = ____
clf_avg.fit(X_train, y_train)
# Evaluate the performance of both models
acc_vote = accuracy_score(y_test, clf_vote.predict(X_test))
acc_avg = accuracy_score(y_test, clf_avg.predict(X_test))
print('Voting: {:.2f}, Averaging: {:.2f}'.format(acc_vote, acc_avg))