Магія Ensemble Learning

Привіт, Хабре! Запрошуємо Data Engineer'ів та фахівців з Machine Learning на безкоштовний Demo-урок «Виведення ML моделей у промислове середовище на прикладі онлайн-рекомендацій». Також ми публікуємо статтю Luca Monno — Head of Financial Analytics at CDP SpA.

Одним з найкорисніших і найпростіших методів машинного навчання є 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.

Магія Ensemble Learning

Є безліч причин, з яких алгоритм може виявитися поганою моделлю навіть на такому базовому прикладі, як цей: можливо, ви вирішили використати регуляризацію, щоб уникнути перенавчання, або вирішили не виключати деякі аномалії, а може використали поліноміальну регресію та підібрали невірний ступінь (наприклад , використовували поліном другого ступеня, а на тестових даних видно явну асиметрію, для якої краще підійшла б третя ступінь).

Коли EL працює краще

Давайте розглянемо два навчальні алгоритми, що працюють з однаковими даними.

Магія Ensemble Learning

Тут видно, що поєднання двох моделей не сильно покращило продуктивність. Спочатку для двох навчальних алгоритмів показники R² дорівнювали -0,37 і 0,22, відповідно, а для ансамблю вийшло -0,04. Тобто модель EL набула середнього значення показників.

Однак між цими двома прикладами є велика різниця: у першому прикладі помилки моделей були негативно корельовані, а в другому – позитивно (коефіцієнти трьох моделей не оцінювалися, а просто були обрані автором як приклад.)

Отже, Ensemble Learning може бути використано для покращення балансу зміщення/дисперсії у будь-яких випадках, але коли помилки моделей не корельовані позитивно, використання EL може призвести до підвищення продуктивності..

Однорідні та різнорідні моделі

Дуже часто EL використовується на однорідних моделях (як у даному прикладі або у випадковому лісі), але насправді ви можете комбінувати різні моделі (лінійну регресію + нейронну мережу + XGBoost) з різними наборами змінних, що пояснюють. Швидше за все це призведе до некорельованих помилок та підвищення продуктивності.

Порівняння з диверсифікацією портфеля

EL працює за аналогією з диверсифікацією теорії портфеля, але тим краще для нас. 

При диверсифікації ви намагаєтеся зменшити дисперсію ваших показників, інвестуючи у некорельовані акції. Добре диверсифікований портфель акцій видаватиме показник краще, ніж найгірша окрема акція, але ніколи не краще, ніж найкраща.

Цитуючи Уоррена Баффета: 

"Диверсифікація - це захист від невігластва, для того, хто не знає, що він робить, вона [диверсифікація] має дуже мало сенсу."

У машинному навчанні EL допомагає зменшити дисперсію вашої моделі, але це може призвести до створення моделі із загальною продуктивністю краще ніж краща початкова модель.

Підіб'ємо підсумки

Об'єднання кількох моделей в одну – це відносно простий метод, який може призвести до вирішення проблеми зміщення дисперсії та підвищення продуктивності.

Якщо у вас є дві або більше моделей, які добре працюють, не вибирайте між ними: використовуйте їх усі (але з обережністю)!

Цікаво розвиватись у цьому напрямі? Запишіться на безкоштовний Demo-урок «Виведення ML моделей у промислове середовище на прикладі онлайн-рекомендацій» і беріть участь у онлайн-зустрічі з Андрієм Кузнєцовим - Machine Learning Engineer в Mail.ru Group.

Джерело: habr.com

Додати коментар або відгук