BaggingClassifier:基礎と実装

Pythonで学ぶアンサンブル手法

Román de las Heras

Data Scientist, Appodeal

異種 vs 同種 関数

異種アンサンブル関数

het_est = HeterogeneousEnsemble(
    estimators=[('est1', est1), ('est2', est2), ...],
    # additional parameters
)

同種アンサンブル関数

hom_est = HomogeneousEnsemble(
    est_base,
    n_estimators=chosen_number,
    # additional parameters
)
Pythonで学ぶアンサンブル手法

BaggingClassifier

Bagging Classifier の例:

# 基本推定器(「弱学習器」)を用意
clf_dt = DecisionTreeClassifier(max_depth=3)
# 推定器5個で Bagging 分類器を構築
clf_bag = BaggingClassifier(
    clf_dt,
    n_estimators=5
)
# 学習データで Bagging を学習
clf_bag.fit(X_train, y_train)
# テストデータで予測
y_pred = clf_bag.predict(X_test)
Pythonで学ぶアンサンブル手法

BaggingRegressor

Bagging Regressor の例:

# 基本推定器(「弱学習器」)を用意
reg_lr = LinearRegression()
# 推定器10個で Bagging 回帰器を構築
reg_bag = BaggingRegressor(
    reg_lr
)
# 学習データで Bagging を学習
reg_bag.fit(X_train, y_train)
# テストデータで予測
y_pred = reg_bag.predict(X_test)
Pythonで学ぶアンサンブル手法

アウト・オブ・バッグ(OOB)スコア

  • 各推定器で、サンプル外インスタンスに対する個別予測を計算
  • 個別予測を統合
  • その予測で指標を評価
    • 分類: accuracy(正解率)
    • 回帰: R^2
clf_bag = BaggingClassifier(
    clf_dt,
    oob_score=True
)
clf_bag.fit(X_train, y_train)
print(clf_bag.oob_score_)
0.9328125
pred = clf_bag.predict(X_test)
print(accuracy_score(y_test, pred))
0.9625
Pythonで学ぶアンサンブル手法

あなたの番です!

Pythonで学ぶアンサンブル手法

Preparing Video For Download...