投票

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

Román de las Heras

Data Scientist, Appodeal

観客に聞く

観客に聞く.gif

集合知

  • 集団の知性
  • 大人数の集合 ≥ 個人の専門家
  • 問題解決
  • 意思決定
  • イノベーション
  • 予測
Pythonで学ぶアンサンブル手法

多数決

特性

  • 分類問題向け
  • 多数決(最頻値)
  • 分類器は奇数個(3以上)

マルチモーダル予測.png

賢い集団の条件

  • 多様性:異なるアルゴリズムやデータセット
  • 独立かつ非相関
  • 個々の知識を活用
  • 個々の予測を集約
Pythonで学ぶアンサンブル手法

scikit-learnでの投票アンサンブル

from sklearn.ensemble import VotingClassifier

clf_voting = VotingClassifier( estimators=[ ('label1', clf_1), ('label2', clf_2), ('labelN', clf_N)])

性能を評価

# Get the accuracy score 
acc = accuracy_score(y_test, y_pred)
print("Accuracy: {:0.3f}".format(acc))
Accuracy: 0.938
# Create the individual models
clf_knn = KNeighborsClassifier(5)
clf_dt = DecisionTreeClassifier()
clf_lr = LogisticRegression()

# Create voting classifier clf_voting = VotingClassifier( estimators=[ ('knn', clf_knn), ('dt', clf_dt), ('lr', clf_lr)])
# Fit it to the training set and predict clf_voting.fit(X_train, y_train) y_pred = clf_voting.predict(X_test)
Pythonで学ぶアンサンブル手法

Let's give it a try!

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

Preparing Video For Download...