Kementte 0 bileşen veren en küçük


14

Kement tahminini burada \ mathbb {R} ^ {n \ times p} tasarım matrisinin X \ i {{} x_i \ satırı {R} ^ p bir vektördür stokastik cevabı açıklamak için ortak değişkenler y_i ( i = 1, \ dots n için ).

β^λ=argminβRp12nyXβ22+λβ1,
ithxiRpXRn×pyii=1,n

λ1nXTy , kement tahmini \ hat \ beta ^ \ lambda = 0 olduğunu biliyoruz β^λ=0. (Bkz., Örneğin, Kement ve Ridge ayarlama parametresi kapsamı .) Diğer gösterimlerde bu, λmax=1nXTy . \ Lambda_ \ mathrm {max} = \ sup _ {\ hat \ beta ^ \ lambda \ ne 0} \ lambda olduğuna dikkat edin . λmax=supβ^λ0λ.Bunu, kement çözüm yolunu gösteren aşağıdaki görüntü ile görsel olarak görebiliriz:

kement çözüm yolu

Bildirim o kadar arsa sağ tarafında, katsayılarının hepsi sıfır. Bu , yukarıda açıklanan \ lambda_ \ mathrm {max} noktasında gerçekleşir λmax.

Bu çiziminden, biz de ihbar üzerine o kadar sol tarafında, katsayı tüm sıfırdan farklı şunlardır: değeri nedir herhangi bileşeni hangi başlangıçta sıfırdır? Yani, ve bir fonksiyonu olarak nedir? Kapalı bir form çözümüyle ilgileniyorum. Özellikle, örneğin, LARS'ın düğümü hesaplama yoluyla bulabileceğini düşündüren algoritmik bir çözümle ilgilenmiyorum.λβ^λ

λmin=minjs.t.β^j=0λ
Xy

İlgi rağmen, kapalı formda bulunmayabilir gibi görünüyor , çünkü aksi takdirde, kement hesaplama paketleri çapraz doğrulama sırasında ayarlama parametresi derinliğini belirlerken muhtemelen bundan yararlanacaktır. Bunun ışığında, ve (hala) özellikle kapalı bir formla ilgili olarak teorik olarak gösterilebilecek herhangi bir şeyle ilgileniyorum.λminλmin


Bu glmnet gazetesinde belirtilmiş ve kanıtlanmıştır: web.stanford.edu/~hastie/Papers/glmnet.pdf
Matthew Drury

@MatthewDrury Bunu paylaştığınız için teşekkürler! Ancak, bu makale önerdiklerini paylaşmıyor gibi görünüyor. Özellikle, bildirimde benim o onların . λmaxλmin
user795305

[Tuning-parametre] etiketine ihtiyacımız olduğundan emin misiniz?
amip, Reinstate Monica

1
bir hak, genel olarak kement çözümü için kapalı bir form yoktur (bkz. stats.stackexchange.com/questions/174003/… ). ancak, lars en azından ne olup bittiğini ve hangi koşullar altında / hangi zamanda bir değişken ekleyebileceğinizi / silebileceğinizi söyler. bence böyle bir şey alabileceğiniz en iyi şey.
chRrr

1
@chRrr Söylemenin tamamen adil olduğundan emin değilim: için olduğunu biliyoruz . Yani, çözümün 0 olması durumunda, kapalı bir formumuz var. Kement tahmininin yoğun olması (yani sıfır yok) gibi aşırı bir durumda benzer olup olmadığını soruyorum. Gerçekten, --- ' nın tam girişleriyle bile ilgilenmiyorum, sadece sıfır olsun ya da olmasın. β^λ=0λ1nXtyβ^λ
user795305

Yanıtlar:


16

Soruda açıklanan kement tahmini, aşağıdaki optimizasyon sorununun lagrange çarpan eşdeğeri:

minimize f(β) subject to g(β)t

f(β)=12n||yXβ||22g(β)=||β||1

Bu optimizasyon, çok boyutlu bir küre ile bir politop (X vektörleri tarafından yayılmış) arasındaki temas noktasını bulmada geometrik bir temsile sahiptir . Politopun yüzeyi yı temsil eder . Kürenin yarıçapı karesi fonksiyonunu temsil eder ve yüzeyler temas ettiğinde minimize edilir.g(β)f(β)

Aşağıdaki resimler grafiksel bir açıklama sunmaktadır. Görüntüler, uzunluk 3 vektörleri ile aşağıdaki basit problemden yararlandı (bir çizim yapabilmek için basitlik için):

[y1y2y3]=[1.41.840.32]=β1[0.80.60]+β2[00.60.8]+β3[0.60.640.48]+[ϵ1ϵ2ϵ3]
ve kısıtlama ileϵ12+ϵ22+ϵ32abs(β1)+abs(β2)+abs(β3)t

Görüntüler gösterir:

  • Kırmızı yüzey, X tarafından yayılan bir politop olan kısıtlamayı gösterir.
  • Ve yeşil yüzey minimalize yüzeyi, bir küreyi tasvir ediyor.
  • Mavi çizgi, kement yolunu, veya değiştirirken bulduğumuz çözümleri gösterir .tλ
  • Yeşil vektör OLS çözümünü ( veya .y^β1=β2=β3=1y^=x1+x2+x3
  • Üç siyah vektör , ve .x1=(0.8,0.6,0)x2=(0,0.6,0.8)x3=(0.6,0.64,0.48)

Üç resim gösteriyoruz:

  1. İlk görüntüde , politopun sadece bir noktası küreye dokunuyor . Bu görüntü, kement çözümünün neden sadece OLS çözümünün bir katı olmadığını çok iyi göstermektedir. OLS çözümünün yönü toplamına daha fazla . Bu durumda yalnızca tek bir sıfırdan .|β|1βi
  2. İkinci görüntüde , politopun bir sırtı küreye dokunuyor (daha yüksek boyutlarda daha yüksek boyutlu analoglar elde ediyoruz). Bu durumda, birden çok sıfırdan .βi
  3. Üçüncü görüntüde , politopun bir yüzü küreye dokunuyor . Bu durumda, tüm sıfırdanβi .

Birinci ve üçüncü vakalara sahip olduğumuz veya aralığı, basit geometrik temsillerinden dolayı kolayca hesaplanabilir.tλ

Durum 1: Yalnızca tek bir sıfırdan farklıβi

Sıfır olmayan , ilişkili vektörünün ile kovaryansın en yüksek mutlak değerine sahip olduğu (bu, OLS çözümüne en yakın olan parralletopun noktasıdır). En azından sıfır olmayan bir sahip olduğumuz Lagrange çarpanını ile türevi alarak ( negatif veya pozitif yönde bağlı olarak işaret) :βixiy^λmaxβ±βiβi

(12n||yXβ||22λ||β||1)±βi=0

hangi yol açar

λmax=(12n(||yXβ||22±βi)(||β||1)±βi)=±(12n||yXβ||22βi=±1nxiy

Bu, yorumlarda belirtilen .||XTy||

bunun sadece politopun ucunun küreye temas ettiği özel durum için geçerli olduğunu fark etmeliyiz ( bu yüzden genelleme basit olsa da bu genel bir çözüm değildir ).

Durum 3: Tüm sıfır değildir.βi

Bu durumda, politopun bir faseti küreye dokunuyor. Daha sonra, kement yolunun değişim yönü belirli bir faset yüzeyine normaldir .

Politopun birçok yönü vardır, olumlu ve olumsuz katkıları vardır . Kement çözüm yakın ols çözüme olduğunda son kement aşamada söz konusu olduğunda, daha sonra katkıları EKK çözümün işareti tanımlanmalıdır. Faset normal fonksiyonunun gradyanı alınarak tanımlanabilir , noktasında betanın toplamın değeri olan,:xixi||β(r)||1r

n=r(||β(r)||1)=r(sign(β^)(XTX)1XTr)=sign(β^)(XTX)1XT

ve bu yön için eşdeğer beta değişikliği:

βlast=(XTX)1Xn=(XTX)1XT[sign(β^)(XTX)1XT]

transpoze olan bazı cebirsel hilelerden sonra ( ) ve parantezlerin dağılımıATBT=[BA]T

βlast=(XTX)1sign(β^)

bu yönü normalleştiriyoruz:

βlast,normalized=βlastβlastsign(β^)

Aşağıda tüm katsayıların sıfır olmadığı değerini bulmak için . Sadece OLS çözümünden katsayılardan birinin sıfır olduğu noktaya kadar hesaplamak zorundayız,λmin

d=min(β^βlast,normalized)with the condition that β^βlast,normalized>0

ve bu noktada türevi değerlendiririz (daha önce hesaplarken olduğu gibi ). Bunu ikinci dereceden bir fonksiyon için sahibiz :λmaxq(x)=2q(1)x

λmin=dn||Xβlast,normalized||22

Görüntüler

bir noktası küreye dokunuyor, tek bir sıfırdan farklı:βi

Kement yolunun ilk adımı

bir sırtı (veya birden fazla boyutta farklıdır) küreye dokunuyor, birçok sıfırdan farklı:βi

Kement yolunun ortası

bir yüzü küreye dokunuyor, hepsi sıfır değil:βi

Kement yolunun son adımı

Kod örneği:

library(lars)    
data(diabetes)
y <- diabetes$y - mean(diabetes$y)
x <- diabetes$x

# models
lmc <- coef(lm(y~0+x))
modl <- lars(diabetes$x, diabetes$y, type="lasso")

# matrix equation
d_x <- matrix(rep(x[,1],9),length(x[,1])) %*% diag(sign(lmc[-c(1)]/lmc[1]))
x_c = x[,-1]-d_x
y_c = -x[,1]

# solving equation
cof <- coefficients(lm(y_c~0+x_c))
cof <- c(1-sum(cof*sign(lmc[-c(1)]/lmc[1])),cof)

# alternatively the last direction of change in coefficients is found by:
solve(t(x) %*% x) %*% sign(lmc)

# solution by lars package
cof_m <-(coefficients(modl)[13,]-coefficients(modl)[12,])

# last step
dist <- x %*% (cof/sum(cof*sign(lmc[])))
#dist_m <- x %*% (cof_m/sum(cof_m*sign(lmc[]))) #for comparison

# calculate back to zero
shrinking_set <- which(-lmc[]/cof>0)  #only the positive values
step_last <- min((-lmc/cof)[shrinking_set])

d_err_d_beta <- step_last*sum(dist^2)

# compare
modl[4] #all computed lambda
d_err_d_beta  # lambda last change
max(t(x) %*% y) # lambda first change
enter code here

not: bu son üç satır en önemli

> modl[4]            # all computed lambda by algorithm
$lambda
 [1] 949.435260 889.315991 452.900969 316.074053 130.130851  88.782430  68.965221  19.981255   5.477473   5.089179
[11]   2.182250   1.310435

> d_err_d_beta       # lambda last change by calculating only last step
    xhdl 
1.310435 
> max(t(x) %*% y)    # lambda first change by max(x^T y)
[1] 949.4353

Yazan: StackExchangeStrike


Düzenlemeleri eklediğiniz için teşekkür ederiz! Şu ana kadar okuduğumda, "vaka 1" alt bölümünü geçtim. Mutlak bir değer veya maksimum için sonucunun yanlış olduğu ortaya çıkar. Ayrıca, türetmede bir işaret hatası, farklılaşmanın yanlış kabul edildiği bir yer, ile ilgili olarak ayırt etmek için "keyfi bir seçimi" ve yanlış değerlendirilmiş bir türev olduğu için bir hata olduğunu da biliyoruz . Açıkçası, geçerli bir " " işareti yok. λmaxi=
user795305

Artı eksi işareti ile düzelttim. Beta değişikliği pozitif veya negatif olabilir. İlişkili vektör " ile en yüksek kovaryansa sahip xiy^
Sextus Empiricus

Güncelleme için teşekkürler! Ancak, hala sorunlar var. Örneğin, yanlış değerlendirilmiş. βiyXβ22
user795305

Eğer sonra bu korelasyon denkleme girer, s = 0 ise, sadece tanjantının değişimiβ=0βi||yXβ||22
=||yXβ||2βi2||yXβ||2
=||ysxi||2s2||yXβ||2
=2cor(xi,y)||xi||2||y||2
=2xiy
sxiyysxi
Sextus Empiricus

Ah, tamam, bu yüzden argümanınızda bir sınır var! (Hem kullanıyorsunuz hem de bir katsayı sıfır değil.) Ayrıca, satırındaki ikinci eşitlik yanıltıcıdır çünkü işaret mutlak değerin farklılaşması nedeniyle değişebilir. β=0λmax
user795305
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.