Saya melakukan regresi logistik elastis-bersih pada set data perawatan kesehatan menggunakan glmnet
paket 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 :
[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.1942612
alpha=0.8
Apakah aman untuk digunakan alpha=0.8
? Atau, mengingat variasinya, haruskah saya menjalankan kembali cv.glmnet
dengan lebih banyak lipatan validasi silang (mis. bukannya ) atau mungkin jumlah antara dan untuk mendapatkan gambaran yang jelas tentang jalur kesalahan cv?10 αalpha=0.0
1.0
caret
paket yang dapat melakukan cv dan tune berulang untuk kedua alpha & lambda (mendukung pemrosesan multicore!). Dari memori, saya pikirglmnet
saran 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 olehcv.glmnet
.cv.glmnet()
tanpa melewati yangfoldids
diciptakan dari benih acak yang dikenal.Jawaban:
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
Penggunaan Sklearn
Ada parameter alternatif menggunakana dan b juga ..
Untuk menghindari kebingungan, saya akan menelepon
Memvisualisasikan dampak parameter
Pertimbangkan set data simulasi di manay 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 berbedaL1 parameter rasio, sebagai fungsi dari λ parameter kekuatan.
Memahami efek dari parameter
The ElasticNet diperkenalkan untuk melawan beberapa keterbatasan Lasso yaitu:
Dengan menggabungkan penaltiL1 dan kuadrat L2 kita mendapatkan keuntungan dari keduanya:
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)
Bacaan lebih lanjut
sumber
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.
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
GridSearchCV
detail toko tentang kedaluwarsa lipatan dicv_results_
( lihat di sini ).sumber