Одним з найкорисніших і найпростіших методів машинного навчання є Ensemble Learning. Ensemble Learning – це метод, що лежить в основі XGBoost, Беггінгу, Випадкового Лісу та багатьох інших алгоритмів.
На Towards Data Science є багато класних статей, але я вибрав дві історії (перша и друга), які мені найбільше сподобалися. То навіщо ж писати ще одну статтю про EL? Тому що я хочу показати вам, як це працює на простому прикладі, який дав мені зрозуміти, що тут немає ніякого чаклунства.
Коли я вперше побачив EL у дії (у роботі з кількома дуже простими регресійними моделями), я не міг повірити своїм очам, і досі згадую професора, який навчив мене цьому методу.
У мене було дві різні моделі (два слабкі навчальні алгоритми) з показниками поза вибіркою R рівними 0,90 і 0,93 відповідно. Перед тим, як подивитися на результат, я думав, що отримаю RXNUMX десь між двома початковими значеннями. Іншими словами, я вважав, що EL можна використовувати, щоб модель працювала не так погано, як найгірша, але й не настільки добре, як могла б працювати найкраща модель.
На мій найбільший подив, результати простого усереднення передбачень дали R² в 0,95.
Спершу я почав шукати помилку, але потім подумав, що тут може ховатися якась магія!
Що таке Ensemble Learning
За допомогою EL можна поєднати передбачення двох і більше моделей для отримання більш надійної та продуктивної моделі. Існує безліч методологій до роботи з ансамблями моделей. Тут я торкнуся двох найкорисніших, щоб дати загальну виставу.
За допомогою регресії можна усереднити показники існуючих моделей.
За допомогою класифікації можна надавати можливість моделям вибирати лейбли. Лейбл, який вибирався найчастіше – той, що буде обрано новою моделлю.
Чому EL працює краще
Основна причина, через яку EL працює краще, полягає в тому, що у кожного передбачення є помилка (знаємо ми це з теорії ймовірності), об'єднання двох передбачень може допомогти зменшити помилку, і, відповідно, покращити показники продуктивності (RMSE, R² тощо). д.).
На наступній діаграмі видно, як два слабкі алгоритми працюють з набором даних. Перший алгоритм має більший кутовий коефіцієнт, ніж потрібно, тоді як у другого він майже дорівнює нулю (можливо через надмірну регуляризацію). Але разом показує результат набагато краще.
Якщо дивитися на показник R², то у першого і другого навчального алгоритму він дорівнюватиме -0.01¹, 0.22, відповідно, тоді як у ансамблю він дорівнюватиме 0.73.
Є безліч причин, з яких алгоритм може виявитися поганою моделлю навіть на такому базовому прикладі, як цей: можливо, ви вирішили використати регуляризацію, щоб уникнути перенавчання, або вирішили не виключати деякі аномалії, а може використали поліноміальну регресію та підібрали невірний ступінь (наприклад , використовували поліном другого ступеня, а на тестових даних видно явну асиметрію, для якої краще підійшла б третя ступінь).
Коли EL працює краще
Давайте розглянемо два навчальні алгоритми, що працюють з однаковими даними.
Тут видно, що поєднання двох моделей не сильно покращило продуктивність. Спочатку для двох навчальних алгоритмів показники R² дорівнювали -0,37 і 0,22, відповідно, а для ансамблю вийшло -0,04. Тобто модель EL набула середнього значення показників.
Однак між цими двома прикладами є велика різниця: у першому прикладі помилки моделей були негативно корельовані, а в другому – позитивно (коефіцієнти трьох моделей не оцінювалися, а просто були обрані автором як приклад.)
Отже, Ensemble Learning може бути використано для покращення балансу зміщення/дисперсії у будь-яких випадках, але коли помилки моделей не корельовані позитивно, використання EL може призвести до підвищення продуктивності..
Однорідні та різнорідні моделі
Дуже часто EL використовується на однорідних моделях (як у даному прикладі або у випадковому лісі), але насправді ви можете комбінувати різні моделі (лінійну регресію + нейронну мережу + XGBoost) з різними наборами змінних, що пояснюють. Швидше за все це призведе до некорельованих помилок та підвищення продуктивності.
Порівняння з диверсифікацією портфеля
EL працює за аналогією з диверсифікацією теорії портфеля, але тим краще для нас.
При диверсифікації ви намагаєтеся зменшити дисперсію ваших показників, інвестуючи у некорельовані акції. Добре диверсифікований портфель акцій видаватиме показник краще, ніж найгірша окрема акція, але ніколи не краще, ніж найкраща.
Цитуючи Уоррена Баффета:
"Диверсифікація - це захист від невігластва, для того, хто не знає, що він робить, вона [диверсифікація] має дуже мало сенсу."
У машинному навчанні EL допомагає зменшити дисперсію вашої моделі, але це може призвести до створення моделі із загальною продуктивністю краще ніж краща початкова модель.
Підіб'ємо підсумки
Об'єднання кількох моделей в одну – це відносно простий метод, який може призвести до вирішення проблеми зміщення дисперсії та підвищення продуктивності.
Якщо у вас є дві або більше моделей, які добре працюють, не вибирайте між ними: використовуйте їх усі (але з обережністю)!