Memilih alpha optimal dalam regresi logistik net elastis

22

Saya melakukan regresi logistik elastis-bersih pada set data perawatan kesehatan menggunakan glmnetpaket dalam R dengan memilih nilai lambda pada kisi dari 0 hingga 1. Kode singkat saya di bawah ini:α

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))}

yang menampilkan galat divalidasi silang rata-rata untuk setiap nilai alpha dari hingga dengan kenaikan :0,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

Berdasarkan apa yang saya baca dalam literatur, pilihan optimal dari adalah di mana kesalahan cv diminimalkan. Tapi ada banyak variasi kesalahan pada rentang alfa. Saya melihat beberapa minimum lokal, dengan kesalahan minimum global untuk .α0.1942612alpha=0.8

Apakah aman untuk digunakan alpha=0.8? Atau, mengingat variasinya, haruskah saya menjalankan kembali cv.glmnetdengan lebih banyak lipatan validasi silang (mis. bukannya ) atau mungkin jumlah antara dan untuk mendapatkan gambaran yang jelas tentang jalur kesalahan cv?10 α2010αalpha=0.01.0

RobertF
sumber
5
Anda ingin melihat pada caretpaket yang dapat melakukan cv dan tune berulang untuk kedua alpha & lambda (mendukung pemrosesan multicore!). Dari memori, saya pikir glmnetsaran dokumentasi terhadap penyetelan untuk alpha seperti yang Anda lakukan di sini. Ini merekomendasikan untuk menjaga lipatan tetap jika pengguna menyetel untuk alpha di samping tuning untuk lambda yang disediakan oleh cv.glmnet.
1
Ah, temukan posting ini di sini: stats.stackexchange.com/questions/69638/…
RobertF
2
jangan lupa untuk memperbaiki foldid ketika Anda mencoba berbedaα
user4581
1
Untuk reproduktifitas, jangan pernah berlari cv.glmnet()tanpa melewati yang foldidsdiciptakan dari benih acak yang dikenal.
smci
1
@amoeba lihat jawaban saya - masukan tentang trade-off antara l1 dan l2 dipersilahkan!
Xavier Bourret Sicotte

Jawaban:

7

Mengklarifikasi apa yang dimaksud dengan parameter α dan Elastic Net

Terminologi dan parameter yang berbeda digunakan oleh paket yang berbeda, tetapi artinya secara umum sama:

The paket R Glmnet menggunakan definisi berikut

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

Penggunaan Sklearn

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

Ada parameter alternatif menggunakan a dan b juga ..

Untuk menghindari kebingungan, saya akan menelepon

  • λ parameter kekuatan penalti
  • L 1 rasioL1ratio antarapenaltiL1 danL2 , mulai dari 0 (ridge) hingga 1 (laso)

Memvisualisasikan dampak parameter

Pertimbangkan set data simulasi di mana y terdiri dari kurva sinus berisik dan X adalah fitur dua dimensi yang terdiri dari X1=x dan X2=x2 . Karena korelasi antara X1 dan X2 fungsi biaya adalah lembah sempit.

Gambar di bawah ini menggambarkan jalur solusi dari elasticnet regresi dengan dua berbeda L1 parameter rasio, sebagai fungsi dari λ parameter kekuatan.

  • Untuk kedua simulasi: ketika λ=0 maka solusinya adalah solusi OLS di kanan bawah, dengan fungsi biaya berbentuk lembah yang terkait.
  • Ketika λ meningkat, regularisasi akan masuk dan solusinya cenderung (0,0)
  • Perbedaan utama antara kedua simulasi adalah parameter rasio L1 .
  • LHS : untuk kecil L1 rasio, fungsi biaya regularized terlihat banyak seperti regresi Ridge dengan kontur bulat.
  • RHS : untuk besar L1 rasio, fungsi biaya terlihat banyak seperti regresi Lasso dengan kontur bentuk berlian yang khas.
  • Untuk rasio L1 menengah (tidak ditampilkan) fungsi biaya adalah campuran keduanya

masukkan deskripsi gambar di sini


Memahami efek dari parameter

The ElasticNet diperkenalkan untuk melawan beberapa keterbatasan Lasso yaitu:

  • Jika ada lebih banyak variabel p daripada titik data n , p>n , laso memilih paling banyak variabel n .
  • Lasso gagal melakukan seleksi yang dikelompokkan, terutama di hadapan variabel yang berkorelasi. Ini akan cenderung untuk memilih satu variabel dari grup dan mengabaikan yang lain

Dengan menggabungkan penalti L1 dan kuadrat L2 kita mendapatkan keuntungan dari keduanya:

  • L1 menghasilkan model yang jarang
  • L2 menghilangkan batasan jumlah variabel yang dipilih, mendorong pengelompokan dan menstabilkanjalur regularisasiL1 .

Anda dapat melihat ini secara visual pada diagram di atas, singularitas pada simpul mendorong sparsity , sedangkan tepi cembung yang ketat mendorong pengelompokan .

Berikut ini visualisasi yang diambil dari Hastie (penemu ElasticNet)

masukkan deskripsi gambar di sini

Bacaan lebih lanjut

Xavier Bourret Sicotte
sumber
2

Izinkan saya menambahkan beberapa komentar yang sangat praktis terlepas dari usia pertanyaan. Karena saya bukan pengguna R, saya tidak bisa membiarkan kode berbicara, tetapi harus dimengerti.

  1. αkf1,...,fkf(x)=1kifi(x)f(x)=i=1kfi(x)k

  2. Satu keuntungan dari resampling adalah Anda dapat memeriksa urutan skor tes, yang di sini adalah skor cv. Anda harus selalu tidak hanya melihat rata-rata tetapi pada deviasi std (itu tidak terdistribusi normal, tetapi Anda bertindak seolah-olah). Biasanya Anda menampilkan ini katakan sebagai 65,5% (± 2,57%) untuk akurasi. Dengan cara ini Anda dapat mengetahui apakah "penyimpangan kecil" lebih mungkin terjadi secara kebetulan atau secara struktural. Lebih baik bahkan untuk memeriksa urutan lengkap . Jika selalu ada satu lipatan untuk beberapa alasan, Anda mungkin ingin memikirkan kembali cara Anda melakukan split Anda (itu mengisyaratkan desain eksperimental yang salah, juga: apakah Anda mengacak?). Di scikit-pelajari GridSearchCVdetail toko tentang kedaluwarsa lipatan di cv_results_( lihat di sini ).

  3. αL1αL2

uwwach
sumber