Elastik net lojistik regresyonda optimal alfa seçimi


22

0'dan 1'e birglmnet ızgarası üzerinde lambda değerleri seçerek R'deki paketi kullanarak sağlık veri setinde elastik-net bir lojistik regresyon yapıyorum. Kısaltılmış kodum aşağıda:α

alphalist <- seq(0,1,by=0.1)
elasticnet <- lapply(alphalist, function(a){
  cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001)
})
for (i in 1:11) {print(min(elasticnet[[i]]$cvm))}

bu, her bir alfa değeri için ortalama çaprazlama hatasını bir artışla ile arasında verir :1.0 0.10.01.00.1

[1] 0.2080167
[1] 0.1947478
[1] 0.1949832
[1] 0.1946211
[1] 0.1947906
[1] 0.1953286
[1] 0.194827
[1] 0.1944735
[1] 0.1942612
[1] 0.1944079
[1] 0.1948874

Literatürde okuduklarım temelinde, en uygun seçimi cv hatasının en aza indirildiği yerdir. Ancak alphas aralığında hatalarda çok fazla değişiklik var. Ben küresel asgari hata ile, çok sayıda yerel minimum görüyorum için .α0.1942612alpha=0.8

Birlikte gitmek güvenli alpha=0.8mi? Ya da, varyasyon göz önüne alındığında, yeniden çalıştırın gereken cv.glmnetdaha fazla çapraz doğrulama kat (örn ile yerine , belki de) ya da daha büyük bir sayı arasındaki artışlarla ve ev hata yolun net bir görüntü elde etmek için?10 α2010αalpha=0.01.0


5
caretTekrarlanan cv yapabilen ve hem alfa hem de lambda için ayar yapabilen bir pakete bakmak istersiniz (çok çekirdekli işlemeyi destekler!). Bellekten, glmnetbelgelerin burada yaptığınız gibi alfa ayarına karşı tavsiyelerde bulunduğunu düşünüyorum . Kullanıcı tarafından sağlanan lambda ayarının yanı sıra alfa için ayar yapıyorsa, kıvrımları sabit tutmanızı tavsiye eder cv.glmnet.

1
Ah, bu yazıyı
RobertF

2
farklı şeyler denemeyi düzeltmeyi unutmaα
user4581

1
Çoğaltılabilirlik için, bilinen bir rastgele-tohumdan yaratılanı cv.glmnet()geçmeden asla foldidskoşmayın.
smci

1
@amoeba cevabımı bir göz atın - l1 ve l2 arasındaki takaslar girdi!
Xavier Bourret Sicotte

Yanıtlar:


7

ve Elastic Net parametreleriyle neyin kastedildiğini açıklamaα

Farklı terminoloji ve parametreler farklı paketler tarafından kullanılır, ancak anlamı genellikle aynıdır:

R paketi Glmnet aşağıdaki tanımı kullanır

minβ0,β1Ni=1Nwil(yi,β0+βTxi)+λ[(1α)||β||22/2+α||β||1]

Sklearn kullanır

minw12Ni=1N||yXw||22+α×l1ratio||w||1+0.5×α×(1l1ratio)×||w||22

Orada alternatif parametrelendirme kullanarak ve de ..ab

Karışıklığı önlemek için arayacağım

  • λ ceza gücü parametresi
  • L1ratio ile cezası arasındaki oran , 0 (sırt) ile 1 (Kement) arasındaki oranL1L2

Parametrelerin etkisini görselleştirmek

Bir simüle edilmiş bir veri kümesi düşünün gürültülü bir sinüs eğrisi oluşur ve aşağıdakilerden oluşan iki boyutlu bir özelliktir ve . ve arasındaki korelasyon nedeniyle , maliyet fonksiyonu dar bir vadidir.yXX1=xX2=x2X1X2

Aşağıdaki grafikler, iki farklı oran parametresi ile esneklik regresyonunun çözüm yolunu , kuvvet parametresinin bir işlevi olarak göstermektedir .L1λ

  • Her iki simülasyon için: olduğunda , çözüm ilişkili vadi şeklindeki maliyet fonksiyonuyla sağ alt kısımdaki OLS çözümüdür.λ=0
  • Şöyle arttıkça, içinde düzenlilestirme başladı ve çözelti eğilimiλ(0,0)
  • İki simülasyon arasındaki ana fark oran parametresidir.L1
  • LHS : Küçük oranı için düzenli maliyet fonksiyonu yuvarlak konturlu Ridge regresyon sistemine çok benziyor.L1
  • RHS : Büyük oranı için, maliyet fonksiyonu, tipik elmas şekli Lasso regresyonuna çok benziyor.L1
  • Orta oranı için (gösterilmemiştir), maliyet fonksiyonu, iki bir karışımıdır.L1

görüntü tanımını buraya girin


Parametrelerin etkisini anlama

ElasticNet, Kement'in bazı sınırlamalarına karşı koymak için tanıtıldı:

  • Veri noktalarından , daha fazla varsa , kement çoğu değişkenini seçer .pnp>nn
  • Kement, özellikle korelasyonlu değişkenlerin varlığında gruplanmış seçim yapamamaktadır. Bir gruptan bir değişken seçme ve diğerlerini görmezden gelme eğiliminde olacaktır

Bir ile ikinci dereceden cezasını birleştirerek her ikisinin de avantajlarını elde ederiz:L1L2

  • L1 seyrek bir model oluşturur
  • L2 , seçilen değişkenlerin sayısındaki sınırlamayı kaldırır, gruplandırmayı teşvik eder ve düzenlileştirme yolunu .L1

Sen köşelerinde tekillik teşvik, yukarıdaki şemada üzerinde görsel olarak görebilirsiniz kıtlık sıkı dışbükey kenarları teşvik ediyoruz ederken, gruplama .

İşte Hastie'den (ElasticNet'in mucidi) alınan bir görselleştirme.

görüntü tanımını buraya girin

daha fazla okuma


2

Sorunun yaşına rağmen bazı pratik açıklamalar ekleyeyim. R kullanıcısı olmadığımdan kodun konuşmasına izin veremem, ancak yine de anlaşılabilir olması gerekir.

  1. Normalde, sadece en iyi CV skoruna sahip olan hiperparametreleri (burada: ) seçmelisiniz . Seçenek olarak ise, en iyi seçebilir modelleri ve bir topluluk meydana aritmetik ortalamasının alınması karar işlevi. Bu, elbette, size çalışma zamanı karmaşıklığının artmasını sağlar. İpucu: bazen geometrik ortalamalar daha iyi çalışır . Sanırım bunun, daha yumuşak bir sonuçta karar sınırı olması nedeniyle olduğunu düşünüyorum.αkf1,...,fkf(x)=1kifi(x)f(x)=kf(x)=i=1kfi(x)k

  2. Yeniden örneklemenin bir avantajı, burada cv'nin puanları olan test puanlarının sırasını inceleyebilmenizdir. Her zaman sadece ortalamaya değil, std sapmalarına da bakmalısınız (normal dağılıma değil, sanki hareket edersiniz). Genellikle bunu doğruluk için% 65,5 (±% 2,57) olarak gösterirsiniz. Bu şekilde "küçük sapmaların" şans eseri ya da yapısal olarak daha muhtemel olup olmadığını söyleyebilirsiniz. Daha iyi tam dizileri incelemek için bile olurdu . Herhangi bir nedenden dolayı her zaman bir katlama varsa, bölüşünüzü yapma şeklinizi yeniden düşünmek isteyebilirsiniz (hatalı bir deneysel tasarıma da işaret eder, ayrıca: karıştırdınız mı?). Scikit-in içindeki GridSearchCVmağaza kapanma süreleri ile ilgili ayrıntıları öğrenin cv_results_( buraya bakın ).

  3. ile ilgili olarak : ne kadar yüksekse, elastik o kadar fazla seyreklik özelliğine sahip olacaktır . Elde edilen modellerin ağırlıklarını kontrol edebilirsiniz, değeri arttıkça sıfıra daha çok ayarlanır. Ağırlıkları sıfıra ayarlanmış ağırlıkları özniteliklerinizi boru hattınızdan hep birlikte kaldırmak yararlıdır. Diğer bir püf noktası, özellik seçimi için elastik ağ modelini kullanmak ve sonra bir varyantını yeniden . Genellikle bu, özellikler arasındaki karşılıklı ilişkilerin filtrelenmesinden dolayı dramatik bir model performans artışına yol açar.αL1αL 2L2

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.