Підвищення логістичної моделі регресії


11

Adaboost - це ансамблевий метод, який поєднує багато слабких учнів, щоб сформувати сильний. Усі приклади adaboost, які я читав, використовують пні / дерева як слабкі студенти. Чи можу я використовувати різних слабких учнів у adaboost? Наприклад, як реалізувати adaboost (загальнозміцнюючий прискорення) для підвищення моделі логістичної регресії?

Однією з головних відмінностей дерев класифікації та логістичної регресії є те, що колишні класи виходів (-1,1), тоді як логістична регресія виводить зонди. Одна ідея полягає у виборі найкращої функції X із набору функцій та підбору порогу (0,5?) Для перетворення датчиків у класи та використання зваженої логістичної регресії для пошуку наступної функції тощо.

Але я гадаю, що існує загальний алгоритм стимулювання різних слабких учнів, відмінних від пнів, що видають ймовірності. Я вважав, що Logitboost - це відповідь на моє запитання, але я спробував прочитати папір "Аддитивна логістична регресія" і застряг у середині.

Відповіді:


7

Не плутайте поводження з передбачувачами (через базових учнів, наприклад, пеньків) та керування функцією втрат при збільшенні. Хоча AdaBoost можна розглядати як пошук комбінацій базових учнів, щоб мінімізувати помилку помилок, класифікація, яку ви цитуєте , "Додаткова логістична регресія" показує, що вона також може бути сформульована для мінімізації функції експоненціальної втрати. Це розуміння відкрило стимулюючий підхід до широкого класу проблем машинного навчання, що мінімізують функції диференційованих втрат за рахунок градієнтного прискорення . Залишки, які підходять на кожному кроці, - це псевдо залишки, обчислені з градієнта функції втрат. Навіть якщо прогноктори моделюються як бінарні пні, вихід цієї моделі не повинен бути бінарним вибором.

Як говориться в іншій відповіді, лінійні базові студенти можуть не працювати для підвищення рівня, але для лінійних базових учнів не потрібно «посилена регресія» ні в стандартному, ні в логістичному сенсі. Рішуче нелінійні пні можуть поєднуватися як повільні учні, щоб мінімізувати відповідні функції втрат. Це все ще називається "посиленою регресією", хоча це далеко не стандартна лінійна модель регресії в коефіцієнтах предикторів. Функція втрат може бути функціонально однаковою для лінійних моделей та моделей "посиленої регресії" з пнями або деревами, як прогнози. Розділ 8 ISLR робить це досить зрозумілим.

Тож якщо ви хочете, щоб логістична регресія була еквівалентною посиленій регресії, зосередьтеся на функції втрат, а не на базових учнях. Ось що робить підхід LogitBoost в роботі, яку ви цитуєте: мінімізувати втрати журналу, а не експоненціальну втрату, що міститься в adaboost. Ця сторінка описує сторінку Wikipedia AdaBoost .

Багато учасників цього сайту стверджують, що прогнозування на основі журналу коефіцієнтів / імовірностей є більш переважним перед суворим прогнозом класифікації так / ні, оскільки попереднє, як правило, дозволяє проводити різні компроміси між додатковими витратами помилково-позитивних та хибно-негативних прогнозів . Як свідчить відповідь на ваше пов’язане запитання , можна отримати оцінені ймовірності від сильного класифікатора, похідного від AdaBoost, але LogitBoost цілком може дати кращі показники.

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


Дуже дякую за вашу відповідь. Якщо я правильно це розумію, щоб досягти функціональності логістичної регресії в контексті посилення всього, що мені потрібно зробити, - це використовувати алгоритм підвищення градієнта з функцією логістичних втрат та слабкими деревами класифікації учнів? Але дерева класифікації виходять {-1,1}, тоді як логістична регресія виводить ймовірності. Більше того, класифікаційні дерева намагаються мінімізувати індекс джині замість логістичних втрат. Тут я пропускаю щось принципове. Куди подіти логістичні втрати? Як вивести пробники з моделі?
гнікол

Я розумію поняття, де у є безперервним, тому що дерева регресії мінімізують mse, що є тією ж функцією втрат з лінійною регресією. Тому я неодноразово підлаштовував регресійне дерево до залишків. Але в контексті класифікації дерева класифікації мінімізують індекс джині чи щось подібне. Як це пов'язано з логістичною регресією або функцією втрати логістичної регресії?
гнікол

@gnikol Я переглянув свою відповідь таким чином, що, сподіваюся, зробить це зрозумілішим і для вас, і для інших читачів. Залишки, які підходять до збільшення градієнта, - це псевдо залишки, обчислені з градієнта функції втрат; вибір функції втрат - це те, що відрізняє AdaBoost від LogitBoost. Ймовірності можна отримати у сильного учня в будь-якому випадку; Я надав посилання на один приклад реалізації в останньому абзаці.
EdM

5

Насправді у нас дуже схоже питання щодо регресії. І у нас була дуже хороша відповідь від @Matthew Drury

Підвищення градієнта для лінійної регресії - чому це не працює?

Лінійна модель (наприклад, логістична регресія) не підходить для підвищення рівня. Причина полягає в тому, що якщо ви додаєте дві лінійні моделі разом, результат - ще одна лінійна модель. З іншого боку, додавання двох пнів або дерев, матиме більш складну та цікаву модель (вже не дерево.)

Деталі можна знайти в цьому дописі. У цьому посиланні я з’ясував, чому додавання двох лінійних моделей не цікаве. І я показую ефект підсилення на ітерацію пеньки рішення шляхом ітерації.

Як працює лінійна база, яка навчається, у стимуляції? І як це працює в бібліотеці xgboost?

Зауважимо, що дерево / пень рішення не є "лінійною моделлю", подібною до логістичної регресії.

Детальніше дивіться у цій публікації

Чи є пень рішення лінійною моделлю?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.