預測《冰與火之歌:權力遊戲》的死亡
雖然目標變數沒有任何遺漏值,但其他特徵有。由於本課程的重點不是資料清理與前處理,我們已經替你完成以下前處理:
- 將 NA 值換成
0。 - 將年齡的負值換成
0。 - 將年齡的 NA 值換成其平均數。
現在來用 averaging 技術建立一個整體學習模型。以下是已建立的個別模型:
- 邏輯斯迴歸(
clf_lr)。 - 決策樹(
clf_dt)。 - 支援向量機(
clf_svm)。
因為目標是二元分類,這些模型各自的表現都可能不錯。
你的目標是用 averaging 將它們結合起來。回想影片中提到,這等同於 soft voting,因此你仍應使用 VotingClassifier()。
本練習屬於課程
Python 的 Ensemble 方法
練習說明
- 建立由
(string, estimator)組成的 tuple 串列。對clf_lr使用'lr',對clf_dt使用'dt',對clf_svm使用'svm'。 - 建立名為
clf_avg的 averaging 分類器。記得為voting參數指定引數。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Build the individual models
clf_lr = LogisticRegression(class_weight='balanced')
clf_dt = DecisionTreeClassifier(min_samples_leaf=3, min_samples_split=9, random_state=500)
clf_svm = SVC(probability=True, class_weight='balanced', random_state=500)
# List of (string, estimator) tuples
estimators = ____
# Build and fit an averaging classifier
clf_avg = ____
clf_avg.fit(X_train, y_train)
# Evaluate model performance
acc_avg = accuracy_score(y_test, clf_avg.predict(X_test))
print('Accuracy: {:.2f}'.format(acc_avg))