Методи регуляризації логістичної регресії


42

Регуляризація за допомогою таких методів, як Ridge, Lasso, ElasticNet, досить поширена для лінійної регресії. Мені хотілося знати наступне: чи застосовуються ці методи для логістичної регресії? Якщо так, чи є якісь відмінності в способі їх використання для логістичної регресії? Якщо ці методи не застосовуються, як можна регулювати логістичну регресію?


Ви дивитесь на певний набір даних, і, таким чином, вам потрібно розглянути можливість відстеження даних для обчислення, наприклад, вибір, масштабування та компенсація даних, щоб початковий обчислення має тенденцію до успіху. Або це більш загальний погляд на hows and whys (без конкретного набору даних для обчислення проти0?
Філіп Оуклі

1
Це більш загальний погляд на те, як реагувати на регуляризацію. Вступні тексти для методів регуляризації (хребет, Лассо, Еластикнет тощо), які я натрапив на конкретно згадані приклади лінійної регресії. Жоден з них не згадував конкретно логістичного характеру, звідси і питання.
TAK

1
Логістична регресія - це форма GLM, що використовує функцію зв'язку без ідентичності, майже все стосується.
Firebug

1
Ви натрапили на відео Ендрю Нґ на цю тему?
Антоні Пареллада

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

Відповіді:


49

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

Зокрема, є три основні компоненти лінійного методу: Функція втрат, Регулялізація, Алгоритми . Якщо функція втрат плюс регуляризація є об'єктивною функцією в задачі в оптимізаційній формі і алгоритм є способом її вирішення (цільова функція випукла, ми не будемо обговорювати в цій публікації).

L(y^,y)=(y^y)2L(y^,y)=|y^y|L()yy^

L(y^,y)=log(1+exp(y^y))L(y^,y)=(1y^y)+y{1,1}y^y^

У налаштуваннях регуляризації ви згадали про регуляризацію L1 та L2, також існують інші форми, про які не піде мова в цій публікації.

Тому на високому рівні лінійний метод

minimizew   x,yL(wx,y)+λh(w)

Якщо ви заміните функцію втрати з налаштування регресії на логістичну втрату, ви отримаєте логістичну регресію з регуляризацією.

Наприклад, у регресії хребта проблема оптимізації є

minimizew   x,y(wxy)2+λww

Якщо ви заміните функцію втрати на логістичну втрату, проблема стає

minimizew   x,ylog(1+exp(wxy))+λww

Тут ви маєте логістичну регресію з регуляризацією L2.


Так виглядає в іграшковому синтезованому наборі даних бінарних даних. Ліва цифра - це дані з лінійною моделлю (межа рішення). Правий малюнок - контур об'єктивної функції (вісь x і y представляє значення для 2 параметрів.). Набір даних був сформований з двох Гаусса, і ми підходимо до логістичної регресійної моделі без перехоплення, тому у правій підрозділі є лише два параметри, які ми можемо візуалізувати.

Сині лінії - це логістична регресія без регуляризації, а чорні - логістична регресія з L2 регуляризацією. Сині та чорні точки у правій фігурі є оптимальними параметрами для об'єктивної функції.

λ0

введіть тут опис зображення

Ось ще один приклад регуляризації L1.

введіть тут опис зображення

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


λλ0

введіть тут опис зображення введіть тут опис зображення


wxyy^=f(x)=wx1

yy{1,1}

y^=wxy^yy^=wx{1,1}y^

y{0,1}

Код можна знайти в іншій моїй відповіді тут.

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


4
wTxf(x)

Дякую за відповідь @ hxd1011, чи можете ви пояснити, що представляють суцільні чорні лінії на контурному графіку? Якщо бути точнішим, я знаю, що (як ви пояснили) вісь x і y показує 2 використовувані нами параметри. А як щодо суцільних ліній та їх кількості, як 8000, 10000, 12000. Дякую!
Джеспар


12

l(β)=l(β)+12ln|i(β)|
i(β)=1nipi(1pi)xixi{(yi,xi)={(1,1),(0,0)}glmR

1
Так, ви можете використовувати для цього R пакети logistf або brglm! Можливо, варто згадати ...
Том Венселерс

Це дуже елегантно, але оптимізація досить повільна, чи не так? У градієнті ви отримуєте зворотну частину яку потрібно перерахувати в кожній ітерації ...i(β)
appletree

Дійсно, болісно повільно, @appletree
StasK

(+1) Я раніше не чув про виправлення Фірта. Я б не очікував, що підхідний підхід у цитованому документі додасть багато часу рішенню GLM? (Вам не потрібно перетворювати матрицю, просто обчислюйте важелі. Якщо розв'язувати ГЛМ за допомогою ітеративно зважених найменших квадратів, це лише рядкові норми коефіцієнта Q. Потім важелі просто додають до даних та експозиції, використовуючи замість у коригуванні Джеффрі .)h/21/2
GeoMatt22

6

Так, це застосовно до логістичної регресії. У R, використовуючи glmnet, ви просто вкажете відповідне сімейство, яке є "двочленним" для логістичної регресії. Є кілька інших (отрута, багаточлен та ін.), Які ви можете вказати залежно від ваших даних та проблеми, яку ви вирішуєте.


Недоліком просто використовувати glmnet для цього є те, що такий підхід не дасть вам значущості. Якщо вас цікавлять, то R-пакети logistf або brglm були б кращим способом піти ...
Том Венселерс

@TomWenseleers також є методи завантаження glmnet для отримання p-значень. Однак це трохи складніше, оскільки "звичайна" завантажувальна програма не працює для коефіцієнтів ласо
godspeed

Дякую за те, що повідомили мені про це, я бачив, як інші згадують про це, наприклад, тут: stats.stackexchange.com/questions/34859/… , але не можу знайти нічого стандартного, реалізованого в якомусь пакеті R. Чи траплялося б у вас вказівники? Або хороша первинна література з цього приводу? Недоліком завантажувального механізму є також те, що зазвичай це буде дуже повільно для великих наборів даних ...
Tom Wenseleers

Ви посилаєтесь на такі методи, як ті, що реалізовані в пакеті R hdi, cran.r-project.org/web/packages/hdi/index.html ?
Tom Wenseleers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.