平均化

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

Román de las Heras

Data Scientist, Appodeal

ジェリービーンズを数える

ベリーフェスのジェリービーンズ当て.jpg

良い推定の出し方

  • 勘で当てる(ランダム)
  • 体積から概算
  • ほか多数の手法

実際の値 ≈ 平均(推定値)

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

平均化(ソフト投票)

特性

  • 分類・回帰に対応
  • ソフト投票: 平均
    • 回帰: 予測値の平均
    • 分類: 予測確率の平均
  • 推定器は最低2個必要
Pythonで学ぶアンサンブル手法

scikit-learnでの平均化アンサンブル

平均化分類器

from sklearn.ensemble import VotingClassifier

clf_voting = VotingClassifier( estimators=[ ('label1', clf_1), ('label2', clf_2), ... ('labelN', clf_N)], voting='soft', weights=[w_1, w_2, ..., w_N] )

平均化回帰器

from sklearn.ensemble import VotingRegressor

reg_voting = VotingRegressor( estimators=[ ('label1', reg_1), ('label2', reg_2), ... ('labelN', reg_N)], weights=[w_1, w_2, ..., w_N] )
Pythonで学ぶアンサンブル手法

scikit-learn の例

# 個々のモデルを用意
clf_knn = KNeighborsClassifier(5)
clf_dt = DecisionTreeClassifier()
clf_lr = LogisticRegression()
# 平均化分類器を作成
clf_voting = VotingClassifier(
    estimators=[
       ('knn', clf_knn), 
       ('dt', clf_dt), 
       ('lr', clf_lr)],
    voting='soft',
    weights=[1, 2, 1]
)
Pythonで学ぶアンサンブル手法

ゲーム・オブ・スローンズの死亡予測

目的:

  • キャラクターが生存か死亡かを予測

特徴量:

  • 年齢
  • 性別
  • 登場した巻数
  • 人気度
  • 親族が生存しているか

shutterstock_1038048793.jpg

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

練習しましょう

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

Preparing Video For Download...