Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tips, tricks and use-cases of
ensembling in practice
Mikhail Trofimov,
mikhail.trofimov@phystech.edu,
DataFest#1,
12.09.15
О себе
Глоссарий
● бэггинг (bagging)
○ усредение нескольких однотипных моделей
● бустинг (boosting)
○ построение цепочки моделей,...
Что такое ансамбль?
Обратимся к определению алгоритмической композиции по Ю.И.Журавлёву:
“На пальцах”: исходные объекты от...
Общие подходы
Основные методы:
● усреднение
● линейные комбинации
● смеси экспертов (сумма взвешивающих функций)
● стэкинг...
Источники различности [1]
● предобработка
○ декомпозиция данных
■ по признакам
■ по объектам
○ преобразования признаков
■ ...
Источники различности [2]
● разные семейства алгоритмов
○ линейные модели
○ факторизационные машины
○ решающие деревья
○ н...
Усреднение (линейная комбинация) [1]
Наиболее простой и очень мощный метод.
Особенно хорошо работает, когда:
● есть случай...
Усреднение (линейная комбинация) [2]
Примеры.
● стандартный метод:
○ DecisionTree + сэмплирование + усреднение ~= RandomFo...
Смеси экспертов
● сумма взвешенных оценок алгоритмов
● вес gt
-- функция от положения в признаковом пространстве
● линейна...
Feature-Weighted Linear Stacking (FWLS) [1]
Feature-Weighted Linear Stacking (FWLS) [2]
● был предложен топ2 командой в соревновании Netflix
● легко реализовать, испо...
Стэкинг (Stacking)
● основная идея
○ пытаемся восстановить отображение F методами машинного обучения.
● можем реализовать ...
Stacking  О разделении данных
● не допускайте банальных ошибок
○ обучение и валидация в каждый момент времени не должны пе...
Stacking  Out-of-fold(k) prediction
● предполагаем, что уменьшение выборки на Nk ~ не изменит модель
● аналогичен кросс-ва...
Stacking  Out-of-fold(2)*M
● предполагаем, что уменьшение выборки на Nk ~ не изменит модель
● идейно схож с out-of-bag оце...
Stacking  Out-of-fold (summary)
● Важно понимать, что упомянутые подходы работают, когда выборка
○ достаточно велика
○ i.i...
Stacking  Мотивация
● Стэкинг работает особенно хорошо, когда
○ признаки разной природы (вещественные  категориальные)
■ k...
Небольшое сравнение в цифрах
Алгоритм Результат (MAP@10)
SVM 0.980
FM 0.981
2*SVM 0.982
2*FM 0.983
LR(FM, SVM) 0.984
RF(FM...
Примеры -- CrowdFlower (top1)
Примеры -- CrowdFlower (top3)
Примеры -- Otto (top1)
Примеры -- Otto (top5)
2 уровня обучения -- это хорошо, но…
Что дальше?
● 3 уровня обучения -- вполне реально
● А можно ли сделать 4?
● Будет ли это еще лучше?
● Можно ли заранее оце...
Выводы
● характерная эффективность ансамбля: +1-3% качества
● линейные комбинации -- просты и эффективны
● двухуровневое о...
Спасибо за внимание!
Upcoming SlideShare
Loading in …5
×

11

Share

Download to read offline

DF1 - DMC - Trophimov - Tips Tricks and Use-cases of Ensembling in Practice

Download to read offline

Presentation from Moscow Data Fest #1, September 12.

Moscow Data Fest is a free one-day event that brings together Data Scientists for sessions on both theory and practice.

Link: http://www.meetup.com/Moscow-Data-Fest/

Related Books

Free with a 30 day trial from Scribd

See all

DF1 - DMC - Trophimov - Tips Tricks and Use-cases of Ensembling in Practice

  1. 1. Tips, tricks and use-cases of ensembling in practice Mikhail Trofimov, mikhail.trofimov@phystech.edu, DataFest#1, 12.09.15
  2. 2. О себе
  3. 3. Глоссарий ● бэггинг (bagging) ○ усредение нескольких однотипных моделей ● бустинг (boosting) ○ построение цепочки моделей, дополняющих друг друга ● блэндинг (blending) ○ смешивание классификаторов (как правило, линейная смесь или кастомные правила) ● стэкинг (stacking) ○ построение классификатора над других классификаторами
  4. 4. Что такое ансамбль? Обратимся к определению алгоритмической композиции по Ю.И.Журавлёву: “На пальцах”: исходные объекты отображаются разными способами в некоторое пространство оценок*, далее оценки агрегируются в ответ. *оценка != ответ
  5. 5. Общие подходы Основные методы: ● усреднение ● линейные комбинации ● смеси экспертов (сумма взвешивающих функций) ● стэкинг ● кастомные правила Ансамбль работает, когда его компоненты (отображения, оценки) различны, в идеале -- исправляют ошибки друг друга. Откуда берется различность?
  6. 6. Источники различности [1] ● предобработка ○ декомпозиция данных ■ по признакам ■ по объектам ○ преобразования признаков ■ log ■ sqrt ■ TF-IDF ■ PCA ■ NMF ■ tSNE ○ комбинации групп и преобразований ● сэмплирование ○ по объектам (bootstrap, undersampling, oversampling) ○ по признакам (RSM)
  7. 7. Источники различности [2] ● разные семейства алгоритмов ○ линейные модели ○ факторизационные машины ○ решающие деревья ○ нейросети ○ kNN ○ ... ● алгоритмы одного семейства, но с разными параметрами ○ глубина деревьев ○ количество соседей ○ число скрытых слоев нейронов ○ параметры регуляризации ○ число латентных факторов ○ ...
  8. 8. Усреднение (линейная комбинация) [1] Наиболее простой и очень мощный метод. Особенно хорошо работает, когда: ● есть случайность в самом алгоритме обучения ● используется сэмплирование ● модели из разных семейств Вариации: ● взвешенное среднее ● ограничения на коэффициенты (неотрицательность, нормировка) ● усреднение порядков (если в разных шкалах или если l2r-задача)
  9. 9. Усреднение (линейная комбинация) [2] Примеры. ● стандартный метод: ○ DecisionTree + сэмплирование + усреднение ~= RandomForest ● kaggle-avito-prohibited-content: ○ kNN + линейная модель = решение в топ5 ● kaggle-malware: ○ xgboost + oversample(a=7) + усредение ● kaggle-tube-pricing: ○ NN + dropoutdropconnect + усреденение ● любой конкурс: ○ xgboost + сэмплирование(subsample, colsample_bytree) + усреднение Плюсы: ● легко реализовать, ● эффективная ● сложно переобучиться Минусы: ● довольно простой класс отображений *hint: коэффициенты смеси можно подбирать по лидерборду
  10. 10. Смеси экспертов ● сумма взвешенных оценок алгоритмов ● вес gt -- функция от положения в признаковом пространстве ● линейная комбинация -- частный случай смеси экспертов (gt = const) ● как учить функции весов? ○ ограничиться некоторым семейством функций ○ подбирать параметры этого семейства ● важный частный случай -- линейное семейство весовых функций
  11. 11. Feature-Weighted Linear Stacking (FWLS) [1]
  12. 12. Feature-Weighted Linear Stacking (FWLS) [2] ● был предложен топ2 командой в соревновании Netflix ● легко реализовать, используя готовый алгоритм линейной регрессии ○ достаточно перемножить каждую оценку на каждый “опорный” признак и решить обычную задачу регрессии ● использовался победителем в Large Scale Hierarchical Text Classification - Kaggle ● легко обобщить: ○ повышать степень полинома: ■ квадраты ■ кубы ■ … ○ факторизовывать взаимодействие ■ как в факторизационных машинах Плюсы: ● легко реализовать ● интерпретируемость Минусы: ● довольно простой класс отображений ● не сложно переобучиться
  13. 13. Стэкинг (Stacking) ● основная идея ○ пытаемся восстановить отображение F методами машинного обучения. ● можем реализовать нелинейны отображения ○ RF GBDT NN ● один из самых эффективных способов ○ и самый трудоемкий ● легко переобучиться ○ нужно аккуратно работать с данными ○ используем весь арсенал средств регуляризации Плюсы: ● нелинейность ● эффективность Минусы: ● трудоемкость ● легко переобучиться
  14. 14. Stacking О разделении данных ● не допускайте банальных ошибок ○ обучение и валидация в каждый момент времени не должны пересекаться ● будь данных бесконечно много -- проблем бы не было ○ но их ограниченное количество ○ можно воспользоваться техникой, аналогичной кросс-валидации ● обязательно наличие “честного” hold-out при тестировании идей ○ хотя бы просто разбиение 403030
  15. 15. Stacking Out-of-fold(k) prediction ● предполагаем, что уменьшение выборки на Nk ~ не изменит модель ● аналогичен кросс-валидации ● разбиение лучше держать фиксированным для всех моделей ● для предсказания на целевом множестве ○ обучаем базовую модель на всем тренировочном множестве ○ требуется хранить всего 1 модель
  16. 16. Stacking Out-of-fold(2)*M ● предполагаем, что уменьшение выборки на Nk ~ не изменит модель ● идейно схож с out-of-bag оценкой в случайном лесе ● разбиение каждый раз генерируется случайно ● для предсказания на целевом множестве ○ усредняем предсказания каждой из двух моделей на каждом из M шагов ○ требуется запоминать 2*M моделей
  17. 17. Stacking Out-of-fold (summary) ● Важно понимать, что упомянутые подходы работают, когда выборка ○ достаточно велика ○ i.i.d. ● дефолтный совет ○ использовать OOF(k), 5<k<10 ● есть случаи, когда OOF(2)*M работает немного лучше ○ kaggle-otto (решение топ2) ● подробнее можно почитать в дипломе Саши Гущина
  18. 18. Stacking Мотивация ● Стэкинг работает особенно хорошо, когда ○ признаки разной природы (вещественные категориальные) ■ kaggle-tradeshift ■ kaggle-crowdflower ○ много целевых переменных (и есть зависимость между ними) ■ kaggle-tradeshift ■ kaggle-wise2014
  19. 19. Небольшое сравнение в цифрах Алгоритм Результат (MAP@10) SVM 0.980 FM 0.981 2*SVM 0.982 2*FM 0.983 LR(FM, SVM) 0.984 RF(FM, SVM) 0.987 kaggle-avito-prohibited-content Алгоритм Результат (ROC-AUC) Vowpal Wabbit A 0.59962 Vowpal Wabbit B 0.59957 Vowpal Wabbit C 0.59954 GLMNet 0.59665 Усреднение 0.60031 Усреднение ранков 0.60187 kaggle-shoppers* * данные из http://mlwave.com/kaggle-ensembling-guide/ Характерный прирост качества, который дают ансамбли: ~1-3%
  20. 20. Примеры -- CrowdFlower (top1)
  21. 21. Примеры -- CrowdFlower (top3)
  22. 22. Примеры -- Otto (top1)
  23. 23. Примеры -- Otto (top5)
  24. 24. 2 уровня обучения -- это хорошо, но…
  25. 25. Что дальше? ● 3 уровня обучения -- вполне реально ● А можно ли сделать 4? ● Будет ли это еще лучше? ● Можно ли заранее оценить “полезность” компонента в смеси? ● Можно ли автоматизировать процедуру построения ансамбля?
  26. 26. Выводы ● характерная эффективность ансамбля: +1-3% качества ● линейные комбинации -- просты и эффективны ● двухуровневое обучение -- это не страшно ● проводите “честное” тестирование мета-признаков ○ хотя бы несколькими разбиениями 40/30/30 ● помните основное правило валидации ○ обучение и контроль не должны пересекаться ● полноценный стэкинг требует аккуратности ○ дефолтный совет: out-of-fold(5)
  27. 27. Спасибо за внимание!
  • ElenaOnischenko

    Nov. 8, 2018
  • IlyaAshikhmin1

    Jul. 20, 2018
  • AlexeySibirtsev

    Dec. 26, 2016
  • AndreyIlin239

    Oct. 2, 2016
  • yurakuratov

    Jul. 11, 2016
  • floatdrop

    Mar. 31, 2016
  • rasimakhunzyanov

    Mar. 13, 2016
  • Sash_OK1

    Feb. 22, 2016
  • AndrewYakushev

    Feb. 18, 2016
  • AlexanderTselikov

    Sep. 30, 2015
  • evgeny_orlov

    Sep. 21, 2015

Presentation from Moscow Data Fest #1, September 12. Moscow Data Fest is a free one-day event that brings together Data Scientists for sessions on both theory and practice. Link: http://www.meetup.com/Moscow-Data-Fest/

Views

Total views

1,566

On Slideshare

0

From embeds

0

Number of embeds

8

Actions

Downloads

105

Shares

0

Comments

0

Likes

11

×