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


20

У нас є багато хороших дискусій про ідеальне розділення в логістичній регресії. Такі як, Логістична регресія в R призвели до ідеального роз'єднання (феномен Хока-Доннера). А тепер що? і логістична регресійна модель не збігається .

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


Дивіться це старе повідомлення Брайана Ріплі: math.yorku.ca/Who/Faculty/Monette/S-news/0027.html
kjetil b halvorsen

Відповіді:


29

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

Спочатку ми випробуємо логістичну регресію без регуляризації.

  • Як ми бачимо, коли дані розсуваються, цільова функція (логістичні втрати) різко змінюється, а оптимізм відходить до більшого значення .
  • Коли ми закінчимо операцію, контур не буде «закритої форми». У цей час цільова функція завжди буде меншою, коли рішення переміститься у верхній правий верх.

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

Далі ми спробуємо логістичну регресію з регуляризацією L2 (L1 схожа).

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

  • У цьому випадку у нас завжди буде мета "опукла". Не важливо, скільки розділення мають дані.

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

код (я також використовую той самий код для цієї відповіді: методи регуляризації для логістичної регресії )

set.seed(0)  
d=mlbench::mlbench.2dnormals(100, 2, r=1)

x = d$x
y = ifelse(d$classes==1, 1, 0)

logistic_loss <- function(w){
  p    = plogis(x %*% w)
  L    = -y*log(p) - (1-y)*log(1-p)
  LwR2 = sum(L) + lambda*t(w) %*% w
  return(c(LwR2))
}

logistic_loss_gr <- function(w){
  p = plogis(x %*% w)
  v = t(x) %*% (p - y)
  return(c(v) + 2*lambda*w)
}

w_grid_v = seq(-10, 10, 0.1)
w_grid   = expand.grid(w_grid_v, w_grid_v)

lambda = 0
opt1   = optimx::optimx(c(1,1), fn=logistic_loss, gr=logistic_loss_gr, method="BFGS")
z1     = matrix(apply(w_grid,1,logistic_loss), ncol=length(w_grid_v))

lambda = 5
opt2   = optimx::optimx(c(1,1), fn=logistic_loss, method="BFGS")
z2     = matrix(apply(w_grid,1,logistic_loss), ncol=length(w_grid_v))

plot(d, xlim=c(-3,3), ylim=c(-3,3))
abline(0, -opt1$p2/opt1$p1, col='blue',  lwd=2)
abline(0, -opt2$p2/opt2$p1, col='black', lwd=2)
contour(w_grid_v, w_grid_v, z1, col='blue',  lwd=2, nlevels=8)
contour(w_grid_v, w_grid_v, z2, col='black', lwd=2, nlevels=8, add=T)
points(opt1$p1, opt1$p2, col='blue',  pch=19)
points(opt2$p1, opt2$p2, col='black', pch=19)

2
Це дуже нагадує розчини в'язкості для гіперболічних ФДЕ. Цікаво, чи можна безпосередньо отримати обмежувальний рішення, не потребуючи наближення , як це стосується деяких PDE? λ0+λ=ϵ
GeoMatt22

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