Усреднение

Ансамблевые методы в Python

Román de las Heras

Data Scientist, Appodeal

Считаем желейные бобы

Угадайте количество желейных бобов на фестивале.

Как дать хорошую оценку?

  • Угадать (случайное число)
  • Приближение по объёму
  • Другие подходы

Истинное значение ~ mean(оценок)

Ансамблевые методы в 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

# Instantiate the individual models
clf_knn = KNeighborsClassifier(5)
clf_dt = DecisionTreeClassifier()
clf_lr = LogisticRegression()
# Create an averaging classifier
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...