GoTの死亡予測
目的変数には欠損値がありませんが、他の特徴量には欠損があります。本コースの主眼はデータクリーニングや前処理ではないため、以下の前処理はあらかじめ実施済みです。
- NA を
0に置換。 - 年齢が負の値の場合は
0に置換。 - 年齢の NA は平均値で置換。
それでは、averaging 手法を使ってアンサンブルモデルを構築しましょう。以下の個別モデルが用意されています。
- ロジスティック回帰(
clf_lr)。 - 決定木(
clf_dt)。 - サポートベクターマシン(
clf_svm)。
目的変数は二値なので、これらはいずれも単体でも良い性能を出せる可能性があります。目標は averaging を用いてこれらを組み合わせることです。動画で学んだとおり、これは soft voting と同じなので、VotingClassifier() を使います。
この演習はコースの一部です
Pythonで学ぶアンサンブル手法
演習の手順
(string, estimator)のタプルのリストを設定します。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))