Bagging に初挑戦
これまでに、bagging アンサンブルの1回の反復で何が起こるかを見てきました。ここではカスタムの bagging モデルを作ってみましょう!
次の2つの関数が用意されています。
def build_decision_tree(X_train, y_train, random_state=None):
# 復元抽出によるサンプリングを行い、
# 「弱い」決定木を構築して、
# 学習用データにフィットさせます
def predict_voting(classifiers, X_test):
# 個々の予測を行い、
# それらを「Voting」で結合します
技術的には、build_decision_tree() 関数は前の演習で行った処理と同じです。ここではこの木を複数作り、最後に組み合わせます。「弱い」モデルのアンサンブルで性能が向上するか確認してみましょう!
この演習はコースの一部です
Pythonで学ぶアンサンブル手法
演習の手順
- 学習用データとインデックス
iを乱数シードとして渡し、build_decision_tree()を呼び出して個々のモデルを作成します。 - 分類器のリスト
clf_listとテスト入力特徴量を使ってpredict_voting()でテストセットのラベルを予測します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Build the list of individual models
clf_list = []
for i in range(21):
weak_dt = ____
clf_list.append(weak_dt)
# Predict on the test set
pred = ____
# Print the F1 score
print('F1 score: {:.3f}'.format(f1_score(y_test, pred)))