Повышение модели логистической регрессии


11

Adaboost - это метод ансамбля, который объединяет многих слабых учеников в сильный. Все примеры adaboost, которые я читал, используют пни / деревья решений как слабые ученики. Могу ли я использовать разных слабых учеников в adaboost? Например, как внедрить adaboost (обычно бустинг) для усиления модели логистической регрессии?

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

Но я предполагаю, что существует общий алгоритм для стимулирования разных слабых учеников, отличных от пней решений, который выводит вероятности. Я полагал, что Logitboost - ответ на мой вопрос, но я попытался прочитать статью «Аддитивная логистическая регрессия» и застрял в середине.

Ответы:


7

Не путайте обработку предикторов (с помощью базовых учеников, например, пней) и обработку функции потерь в бустинге. Хотя AdaBoost можно рассматривать как поиск комбинаций базовых учащихся для минимизации ошибки ошибочной классификации, цитируемый вами документ «Аддитивная логистическая регрессия» показывает, что он также может быть сформулирован для минимизации функции экспоненциальных потерь. Это понимание открыло подход повышения к широкому классу проблем машинного обучения, которые минимизируют дифференцируемые функции потерь посредством повышения градиента . Остатки, которые подходят на каждом шаге, являются псевдо-остатками, рассчитанными из градиента функции потерь. Даже если предикторы моделируются как двоичные пни, выходные данные модели, таким образом, не должны быть двоичным выбором.

Как гласит другой ответ, линейные базовые ученики могут не работать для повышения, но линейные базовые ученики не требуются для «усиленной регрессии» ни в стандартном, ни в логистическом смысле. Решительно нелинейные пни могут быть объединены в качестве учеников с медленной базой, чтобы минимизировать соответствующие функции потерь. Она по-прежнему называется «усиленная регрессия», хотя она далека от стандартной модели регрессии, линейной по коэффициентам предикторов. Функция потерь может быть функционально одинаковой для линейных моделей и моделей «усиленной регрессии» с пнями или деревьями в качестве предикторов. Глава 8 ISLR проясняет это.

Поэтому, если вы хотите логистическую регрессию, эквивалентную усиленной регрессии, сфокусируйтесь на функции потерь, а не на базовых учениках. Вот что делает подход LogitBoost в статье, которую вы цитируете: минимизировать потерю журнала, а не экспоненциальную потерю, неявную в adaboost. Страница AdaBoost Википедии описывает эту разницу.

Многие участники этого сайта утверждают, что прогнозирование на основе логарифмических шансов / вероятностей является наиболее предпочтительным по сравнению со строгим прогнозом классификации да / нет, так как первый в более общем случае допускает различные компромиссы между дополнительными затратами ложноположительных и ложноотрицательных прогнозов. , Как показывает ответ на ваш связанный вопрос , можно получить оценочные вероятности из строгого классификатора, полученного из AdaBoost, но LogitBoost вполне может дать лучшую производительность.

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


Большое спасибо за ответ. Если я правильно понимаю, чтобы добиться функциональности логистической регрессии в контексте повышения, все, что мне нужно сделать, это использовать алгоритм повышения градиента с функцией логистических потерь и деревьями классификации слабых учеников? Но деревья классификации выводят {-1,1}, в то время как логистическая регрессия выдает вероятности. Более того, деревья классификации пытаются минимизировать индекс Джини вместо логистических потерь. Я скучаю по чему-то фундаментальному здесь. Куда положить логистические потери? Как вывести пробники из модели?
gnikol

Я понимаю концепцию, где у непрерывен, потому что деревья регрессии минимизируют mse, которая является той же функцией потерь с линейной регрессией. Следовательно, я неоднократно подгоняю дерево регрессии к остаткам. Но в контексте классификации деревья классификации минимизируют индекс Джини или что-то подобное. Как это связано с логистической регрессией или функцией потерь логистической регрессии?
gnikol

@gnikol Я пересмотрел свой ответ так, что надеюсь, что это станет понятнее и вам, и другим читателям. Остатки, которые подходят для повышения градиента, являются псевдо-остатками, рассчитанными из градиента функции потерь; Выбор функции потери - это то, что отличает AdaBoost от LogitBoost. Вероятности могут быть получены от сильного ученика в любом случае; Я предоставил ссылку на один пример реализации в последнем абзаце.
EdM

5

На самом деле у нас очень похожий вопрос здесь о случае регрессии. И у нас был очень хороший ответ от @Matthew Drury

Повышение градиента для линейной регрессии - почему это не работает?

Линейная модель (например, логистическая регрессия) не подходит для повышения. Причина в том, что если вы добавляете две линейные модели вместе, то получается другая линейная модель. С другой стороны, добавление двух пней или деревьев решений будет иметь более сложную и интересную модель (больше не дерево).

Подробности можно найти в этом посте. В этой ссылке я выяснил, почему добавление двух линейных моделей не интересно. И я показываю эффект повышения на итерации решения решения за итерацией.

Как линейный базовый ученик работает над повышением? И как это работает в библиотеке xgboost?

Обратите внимание, что дерево решений / пень не является «линейной моделью», подобной логистической регрессии.

Смотрите этот пост для деталей

Является ли пень решения линейной моделью?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.