取平均

Python 的 Ensemble 方法

Román de las Heras

Data Scientist, Appodeal

計算果凍豆數量

猜果凍豆數量的攤位

怎麼給出好的估計?

  • 瞎猜(隨機數)
  • 估體積
  • 其他方法很多

實際值 ≈ mean(estimates)

Python 的 Ensemble 方法

取平均(軟投票)

性質

  • 分類與迴歸問題皆可用
  • 軟投票:取平均
    • 迴歸:預測值的平均
    • 分類:預測機率的平均
  • 需要至少 2 個估計器
Python 的 Ensemble 方法

用 scikit-learn 做取平均集成

Averaging Classifier

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] )

Averaging Regressor

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 的 Ensemble 方法

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 的 Ensemble 方法

權力遊戲:死亡預測

目標:

  • 預測角色是否存活

特徵:

  • 年齡
  • 性別
  • 出現於哪些書
  • 熱度/知名度
  • 親屬是否存活

shutterstock_1038048793.jpg

Python 的 Ensemble 方法

一起來練習吧!

Python 的 Ensemble 方法

Preparing Video For Download...