L1 kayıp fonksiyonunu kullanarak R'de (lojistik?) Regresyonu nasıl eğitebilirim?


11

RKullanarak lojistik regresyon eğitebilirim

glm(y ~ x, family=binomial(logit)))

ancak, IIUC, bu günlük olasılığını optimize eder.

Modeli doğrusal ( ) kayıp fonksiyonunu kullanarak eğitmenin bir yolu var mı (bu durumda toplam varyasyon mesafesi ile aynıdır )?L1

Yani, sayısal bir vektör ve bir bit (mantıksal) vektör verildiğinde , monotonik (aslında artan) bir işlev kisimge durumuna küçültülür.y f | f ( x ) - y |xyf|f(x)y|

Ayrıca bakınız


İstediğiniz şey mevcut değildir ve açık sözlü olmak pek mantıklı değildir. Alternatifleri tartışabiliriz, ancak ne yapmaya çalıştığınızı daha ayrıntılı bir şekilde belirtmeniz gerekir. Neden L1 kaybı olan bir lojistik modele uyum sağlamak istiyorsunuz?
user603

@ user603: Kullandığım Modelimin değerlendirmek istiyoruz TVD
sds

Binom olarak dağıtılmış verilere uymak yerine verilere lojistik bir eğri yerleştirmekten bahsediyorsunuz , yani bir tür doğrusal olmayan regresyon , ancak normundan ziyade kullanmaktan . Gerçekten, kayıp fonksiyonumaksimum değerin olmadığını gösterir (bu durumda binom GLM'yi yanıltıcıya gönderme yapar). Gerçekten eğer Öte yandan, bir 0-1 kısıtlı, kayıp fonksiyonu mantıklı değil. Gerçek durumunuzun detaylarını verir misiniz lütfen? L 2| f ( x ) - y | 1L1L2|f(x)y|1
Glen_b

Lütfen bu notu yardım bunu sormak yok birden çok siteye çapraz postayı aynı soruyu, ancak bunun yerine tek site seçin. Daha sonra hangi sitenin en iyi olduğuna dair fikrinizi değiştirirseniz, moderatörlerin dikkatini çekmek için işaretleyin ve taşınmasını isteyin.
Glen_b-Monica'yı

@ Glen_b: Bence "bit (mantıksal) vektörü y" 0/1 yanıtı anlamına geliyor.
sds

Yanıtlar:


21

Yapmak istediğiniz şey mevcut değil çünkü daha iyi bir kelime eksikliği nedeniyle, matematiksel olarak kusurlu.

Ama önce, sorunuzun önermesinin neden sağlam olduğunu düşündüğümü vurgulayacağım. Daha sonra onlardan aldığınız sonuçların neden lojistik modelin yanlış anlaşılmasına dayandığını düşündüğümü açıklamaya çalışacağım ve son olarak alternatif bir yaklaşım önereceğim.

Ben göstereceğiz içinngözlemleri (daha koyu harfler vektörleri ifade) içerisinde yalansboyutlu uzayda (birinci giriş x{(xxi,yi)}i=1nnp 1)p<n, y i[0,1]ve f( x ilexxip<nyi[0,1]x'in monoton bir fonksiyonudurf(xxi)=f(xxiββ) ,fikirleri düzeltmekiçinlojistik eğrigibi söyleyin. Çıkarlar için, sadece o üstlenecek n iseyeterincekıyasla büyük p .xxiββnp

TVD'yi takılan modeli değerlendirmek için kriter olarak kullanmak istiyorsanız , verilerinizde aynı kriteri tüm olası adaylar arasında optimize etmesini beklemek mantıklıdır. bundan dolayı

ββ=argminββRp||yyf(xxiββ)||1

Sorun şu hata terimidir : ve (modelimizin asimptotik olarak tarafsız olmasını isteriz ), gerekir olmak heteroskedastic . Bunun nedeni, sadece iki değeri, 0 ve alabilir 1. Bu nedenle, belirli bir , de sadece iki değerler alabilir: , bu olasılık ortaya çıkar veE ( ϵϵi=yif(xxiββ)ϵ i y i xE(ϵϵ)=0ϵi yiϵ i 1-f( xxxiϵiy i = 1 f ( x1f(xxiββ)yi=1- f ( xf(xxiββ)y i = 11 1 - f ( xf(xxiββ)yi=1olasılık .1f(xxiββ)

Bu düşünceler birlikte şunu ifade eder:

var(ϵϵ)=E(ϵϵ2)=(1f(xxββ))2f(xxββ)+(f(xxββ))2(1f(xxββ))=(1f(xxββ))f(xxββ)=E(yy|xx)E(1yy|xx)

dolayısıyla sabit, fakat içbükey parabol şeklinde değildir ve zaman maksimize edilir gibi olduğu .xvar(ϵϵ) E ( y | xxxE(y|xx).5

Kalıntıların bu doğal heteroskedastisitesinin sonuçları vardır . Diğer şeylerin yanı sıra, kaybı işlevini en aza indirirken, asimptotik olarak aşırı olduğunuz anlamına gelir . Yani, takılan verilere hiç uymaz, sadece in . Buna karşılık, bunlar numunenizdeki en az bilgilendirici veri noktalarıdır : gürültü bileşeninin en büyük olduğu gözlemlere karşılık gelirler. Bu nedenle, , örn. Alakasız.βl1xββ E ( yxxβE(yy|xx).5ββ=ββ:f(xxββ).5

Yukarıdaki açıklamadan da anlaşılacağı gibi bir çözüm tarafsızlık gerekliliğini düşürmektir. Tahminciye (bazı Bayes yorumları eklenmiş olarak) ağırlık vermenin popüler bir yolu, bir büzülme terimi eklemektir. Yanıtı yeniden ölçeklendirirsek:

yi+=2(yi.5),1in

ve hesaplamalı için, yerine başka bir monoton işlev - devamı için parametre vektörünün ilk bileşenini ve kalan olanları ve bir büzülme terimi (örneğin formundan birini) ), ortaya çıkan optimizasyon sorunu şöyle olur:g ( xf(xxββ)c p - 1 γg(xx,[c,γγ])=xx[c,γγ]cp1| | γγγ||γγ||2

[c,γγ]=argmin[[c,γγ]Rpi=1nmax(0,1yi+xxi[[c,γγ])+12||γγ||2

Bu yeni (ayrıca dışbükey) optimizasyon probleminde, doğru sınıflandırılmış gözlemlerin cezasının 0 olduğunu ve yanlış sınıflandırılmış bir gözlem için ile doğrusal olarak büyüdüğünü - olduğu gibi kaybı. bu ikinci optimizasyon problemine çözüm katsayıları (mükemmel ayırma) ile ünlü doğrusal SVM vardır. aksine , bu ' türü ceza içeren verilerden (önyargı nedeniyle 'tür') öğrenmek mantıklıdır . Sonuç olarak, bu çözüm yaygın olarak uygulanmaktadır. Örneğin bkz. R paketi LiblineaR .l 1 [ c , γxx[[c,γ]l1 β[c,γγ] [ c , γββ[c,γγ]


Keşke size 25'ten fazla puan
verebilsem

@sds; teşekkürler: bu harika bir soruydu :) Ben gün boyunca geri gelip ayrıntıları doldurun, bazı yazım hatalarını düzeltmek.
user603

8

Neden 0 ile 1 arasında kısıtlanmış bir şey için L1 kaybını kullanmak istediğinizden emin değilim. Hedefinizin ne olduğuna bağlı olarak, bunun yerine menteşe kaybı gibi bir yönde ve düz bir şekilde L1 kaybına benzer bir şey düşünmek isteyebilirsiniz. diğerinde.

Her durumda, aşağıdaki kod sizin istediğinizi yapmalıdır. Optimum yanıtın temelde bir adım fonksiyonu olduğunu unutmayın.

set.seed(1)

# Fake data
x = seq(-1, 1, length = 100)
y = rbinom(100, plogis(x), size = 1) # plogis is the logistic function

# L1 loss
loss = function(y, yhat){
  sum(abs(y - yhat))
}

# Function to estimate loss associated with a given slope & intercept
fn = function(par){
  a = par[1]
  b = par[2]
  loss(y = y, yhat = plogis(a + b * x))
}

# Find the optimal parameters
par = optim(
  par = c(a = 0, b = 0),
  fn = fn
)$par

# Plot the results
plot(y ~ x)
curve(plogis(par[1] + par[2] * x), add = TRUE, n = 1000)

0

Glmnet paketini L1, L2 modellerini takmak için kullanabilirsiniz. Lojistik regresyon ile sınırlı değil, onu içeriyor.

İşte skeç: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html

Bir webminarı da var: https://www.youtube.com/watch?v=BU2gjoLPfDc

Liblinear iyi, ama başlamak için glmnet'i daha kolay buldum. Glmnet, çapraz doğrulama yapan ve AUC gibi farklı metriklere dayalı olarak sizin için bir düzenleme parametresi seçen bir işlev içerir.

Teori ile ilgili olarak, kement (L1 düzenlenmesi) ile ilgili tibshiarini belgesini ve istatistiksel öğrenme unsurlarındaki bölümü okuyacağım. http://statweb.stanford.edu/~tibs/lasso/lasso.pdf

Günlük kaybı hakkında, sadece modelleri değerlendirmek. Model montajı için bir kayıp fonksiyonu değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.