Ансамблирование моделей

Победа в соревновании Kaggle на Python

Yauhen Babakhin

Kaggle Grandmaster

Ансамблирование моделей

ансамблевая конструкция победившего решения на соревновании Kaggle

Победа в соревновании Kaggle на Python

Смешивание моделей

  • Задача регрессии
  • Обучаем две разные модели: A и B
  • Делаем предсказания на тестовых данных:
ID теста Предсказание модели A Предсказание модели B
1 1.2 1.5
2 0.1 0.4
3 5.4 7.2
Победа в соревновании Kaggle на Python

Смешивание моделей

 

ID теста Предсказание модели A Предсказание модели B Среднее арифметическое
1 1.2 1.5 1.35
2 0.1 0.4 0.25
3 5.4 7.2 6.30
Победа в соревновании Kaggle на Python

Смешивание моделей

 

Среднее арифметическое

$$arithmetic = \frac{1}{n}\sum_{i=1}^{n}{x_i}$$

Среднее геометрическое

$$geometric = \Bigg({\prod_{i=1}^{n}{x_i}}\Bigg)^{\frac{1}{n}}$$

Победа в соревновании Kaggle на Python

Стекинг моделей

 

  1. Разделите обучающие данные на две части
  2. Обучите несколько моделей на части 1
  3. Сделайте предсказания на части 2
  4. Сделайте предсказания на тестовых данных
  5. Обучите новую модель на части 2, используя предсказания как признаки
  6. Сделайте предсказания на тестовых данных с помощью модели 2-го уровня
Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения feature_1 ... feature_N Целевая
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0
ID теста feature_1 ... feature_N Целевая
11 0.49 ... -2.32 ?
12 0.32 ... 1.15 ?
13 0.91 ... 0.81 ?
Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения feature_1 ... feature_N Целевая
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID обучения feature_1 ... feature_N Целевая
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0
Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения feature_1 ... feature_N Целевая
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID обучения feature_1 ... feature_N Целевая
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0

Обучаем модели A, B, C на части 1

Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения feature_1 ... feature_N Целевая A_pred B_pred C_pred
4 0.10 ... 2.87 1 0.71 0.52 0.98
5 0.54 ... -0.10 0 0.45 0.32 0.24

 

ID теста feature_1 ... feature_N Целевая A_pred B_pred C_pred
11 0.49 ... -2.32 ? 0.62 0.45 0.81
12 0.32 ... 1.15 ? 0.31 0.52 0.41
13 0.91 ... 0.81 ? 0.74 0.55 0.92
Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения Целевая A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

ID теста Целевая A_pred B_pred C_pred
11 ? 0.62 0.45 0.81
12 ? 0.31 0.52 0.41
13 ? 0.74 0.55 0.92
Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения Целевая A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

ID теста Целевая A_pred B_pred C_pred
11 ? 0.62 0.45 0.81
12 ? 0.31 0.52 0.41
13 ? 0.74 0.55 0.92

Обучаем модель 2-го уровня на части 2

Победа в соревновании Kaggle на Python

Пример стекинга

ID обучения Целевая A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

ID теста Целевая A_pred B_pred C_pred Предсказание стекинга
11 ? 0.62 0.45 0.81 0.73
12 ? 0.31 0.52 0.41 0.35
13 ? 0.74 0.55 0.92 0.88
Победа в соревновании Kaggle на Python

Давайте потренируемся!

Победа в соревновании Kaggle на Python

Preparing Video For Download...