У чому подібність та відмінності між цими 3 методами:
- Баггінг,
- Підвищення,
- Укладання?
Який найкращий? І чому?
Чи можете ви надати мені приклад для кожного?
У чому подібність та відмінності між цими 3 методами:
Який найкращий? І чому?
Чи можете ви надати мені приклад для кожного?
Відповіді:
Усі три - це так звані "мета-алгоритми": підходи до об'єднання декількох технік машинного навчання в одну модель прогнозування, щоб зменшити дисперсію ( мішковину ), зміщення ( прискорення ) або поліпшити силу прогнозування ( складання псевдонімного ансамблю ).
Кожен алгоритм складається з двох етапів:
Проведення розподілу простих моделей ML на підмножини вихідних даних.
Поєднання розподілу в одну "агреговану" модель.
Ось короткий опис усіх трьох методів:
Баггинг (розшифровується Б ootstrap Agg regat ING ) є способомщоб зменшити дисперсію вашого прогнозу шляхом генерування додаткових даних для навчання з початкового набору данихдопомогою комбінації з повтореннями для отримання мультинабір тієї ж потужності / розміруяк вихідні дані. Збільшуючи розмір вашого навчального набору, ви не зможете покращити прогнозовану силу моделі, а просто зменшите дисперсію, вузько налаштувавши прогноз на очікуваний результат.
Підвищення - це двоетапний підхід, де спочатку використовується підмножина вихідних даних для створення серії моделей, що працюють в середньому, а потім "підвищує" їх ефективність, поєднуючи їх разом, використовуючи певну функцію витрат (= голос більшості). На відміну від пакетування, у класичному підвищенні створення підмножини не є випадковим і залежить від продуктивності попередніх моделей: кожна нова підмножина містить елементи, які (ймовірно, будуть) некласифіковані попередніми моделями.
Укладання схожа на прискорення: ви також застосовуєте кілька моделей до своїх оригінальних даних. Різниця тут полягає в тому, що ви не маєте просто емпіричної формули для вагової функції, а вводите метарівень і використовуєте іншу модель / підхід для оцінки вхідних даних разом з результатами кожної моделі для оцінки ваги або інакше кажучи, визначити, які моделі спрацьовують добре та які погано даються ці вхідні дані.
Ось таблиця порівняння:
Як бачите, все це різні підходи до об'єднання декількох моделей у кращу, і тут немає єдиного переможця: все залежить від вашого домену та того, що ви збираєтеся робити. Ви все ще можете ставитися до укладанні як свого роду більш досягнень форсуючи , однак, труднощі знайти хороший підхід для вашого мета-рівня робить його важко застосувати цей підхід на практиці.
Короткі приклади кожного:
Мішок :
паралельний ансамбль: кожна модель побудована самостійно
спрямовані на зменшення дисперсії , а не зміщення
підходить для моделей з високою дисперсією з низьким ухилом (складні моделі)
прикладом методу на основі дерев є випадковий ліс , у якому розвиваються повністю вирощені дерева (зауважте, що РФ модифікує вирощену процедуру для зменшення кореляції між деревами)
Підвищення :
послідовний ансамбль: спробуйте додати нові моделі, які добре справляються з відсутністю попередніх моделей
прагнуть зменшити упередженість , а не дисперсію
підходить для моделей з високою зміною з низькою дисперсією
прикладом методу на основі дерева є збільшення градієнта
Просто трохи розібратися у відповіді Юкіяна. Ідея розфасовки полягає в тому, що коли ви НАДАЄТЬСЯ методом непараметричної регресії (як правило, регресія або класифікація дерев, але може бути майже будь-яким непараметричним методом), ви схильні переходити до великої дисперсії, ніякої (або низької) частини зміщення. / варіація компромісу. Це пояснюється тим, що модель оздоблення дуже гнучка (настільки низька упередженість щодо багатьох повторних примірників з однієї сукупності, якщо такі були доступні), але вона має велику мінливість (якщо я збираю зразок і переробляю його, а ви збираєте зразок і перевищуєте його, наш результати будуть відрізнятися, оскільки непараметрична регресія відстежує шум у даних). Що ми можемо зробити? Ми можемо взяти багато повторних зразків (від завантажувального завантаження), кожен із них - і порівнювати їх разом. Це повинно призвести до однакового зміщення (низьке), але скасувати частину дисперсії,
Підсилення градієнта в основі працює з непараметричними регресіями UNDERFIT, які є надто простими і, таким чином, недостатньо гнучкими, щоб описати реальну взаємозв'язок у даних (тобто упереджених), але, оскільки вони підходять, мають низьку дисперсію (ви б схильні щоб отримати той самий результат, якщо ви збираєте нові набори даних). Як ви виправляєте це? В основному, якщо вам підходить, ЗАЛИШКИ вашої моделі все ще містять корисну структуру (інформація про населення), тому ви збільшуєте дерево, яке у вас є (або будь-який непараметричний прогноктор) деревом, побудованим на залишках. Це має бути більш гнучким, ніж оригінальне дерево. Ви неодноразово генеруєте все більше та більше дерев, кожне на етапі k збільшується зваженим деревом на основі дерева, пристосованого до залишків із кроку k-1 Одне з цих дерев має бути оптимальним, тож ви або зважуєте всі ці дерева разом, або вибираєте одне, що здається найкращим чином. Таким чином, збільшення градієнта - це спосіб побудувати купу більш гнучких дерев-кандидатів.
Як і всі непараметричні регресійні чи класифікаційні підходи, іноді випалювання або прискорення працює чудово, іноді той чи інший підхід посередній, а іноді той чи інший підхід (або обидва) руйнуються та спалюються.
Також обидві ці методи можуть бути застосовані до регресійних підходів, окрім дерев, але вони найчастіше асоціюються з деревами, можливо, тому, що важко встановити параметри, щоб уникнути їх під час прилягання чи пересадки.
Коротше кажучи, Baging і Boosting зазвичай використовуються всередині одного алгоритму, тоді як Stacking зазвичай використовується для узагальнення кількох результатів з різних алгоритмів.
Random Forest
, які усувають розбіжність і не мають проблеми з надмірним розміром.GBM
і XGBoost
, які усувають дисперсію , але мають перенавчання питання.як мішковування, так і прискорення використання єдиного алгоритму навчання для всіх етапів; але вони використовують різні методи для обробки навчальних зразків. обидва є ансамблевим методом навчання, який поєднує рішення з декількох моделей
Bagging :
1. перепробовує повторно навчальні дані, щоб отримати M підмножини (завантажувальна програма);
2. навчає М класифікаторів (той же алгоритм) на основі М наборів даних (різних зразків);
3. підсумковий класифікатор поєднує в собі M результати голосування;
вага зразків однаково;
вага класифікаторів однаково;
зменшує похибку за рахунок зменшення дисперсії
Підвищення : тут зосередьтеся на алгоритмі adaboost
1. почніть з однакової ваги для всіх зразків у першому раунді;
2. У наступних раундах M-1 збільшуйте вагу зразків, які були класифіковані в останньому турі, зменшуйте ваги зразків, правильно класифікованих в останньому раунді
3. За допомогою зваженого голосування остаточний класифікатор поєднує в собі кілька класифікаторів попередніх раундів, і дайте більшу вагу до класифікаторів із меншою кількістю класифікацій.
ступінчасті зразки повторного зважування; ваги для кожного раунду, виходячи з результатів останніх раундів
зразків для повторної ваги (прискорення) замість перекомпонування (пакетування).
У багги і підсилювачі, як правило, використовується безліч однорідних моделей.
Складання поєднує в собі результати від різнорідних типів моделей.
Оскільки жоден тип моделі не найкраще підходить для будь-якого дистрибутива, ви можете зрозуміти, чому це може збільшити прогнозовану потужність.