GLMNET atau LARS untuk menghitung solusi LASSO?

13

Saya ingin mendapatkan koefisien untuk masalah LASSO

||YXβ||+λ||β||1.

Masalahnya adalah fungsi glmnet dan lars memberikan jawaban yang berbeda. Untuk fungsi glmnet, saya meminta koefisien bukan hanya λ , tapi saya masih mendapatkan jawaban yang berbeda.λ/||Y||λ

Apakah ini yang diharapkan? Apa hubungan antara lars dan glmnet λ ? Saya mengerti bahwa glmnet lebih cepat untuk masalah LASSO tapi saya ingin tahu metode mana yang lebih kuat?λλ


deps_stats Saya takut bahwa ukuran dataset saya begitu besar sehingga LARS tidak bisa mengatasinya, sedangkan di sisi lain glmnet dapat menangani dataset besar saya.

mpiktas Saya ingin mencari solusi (Y-Xb) ^ 2 + L \ sum | b_j | tetapi ketika saya bertanya dari dua algoritma (lars & glmnet) untuk koefisien yang dihitung untuk L tertentu, saya mendapatkan jawaban yang berbeda ... dan saya bertanya-tanya apakah itu benar / diharapkan? atau saya hanya menggunakan lambda yang salah untuk dua fungsi.

Glen_b -Reinstate Monica
sumber
1
berikan contoh yang menggambarkan masalah Anda. Juga bagaimana Anda mendefinisikan kekuatan algoritma?
mpiktas
1
Saya telah menggunakan paket glmnet dan lars di beberapa proyek. Dalam pengalaman terbatas saya, saya BANYAK masalah dalam mengimplementasikan glmnet. Saya pikir glmnet membutuhkan beberapa perbaikan bug mengenai jenis variabel yang digunakan dalam bingkai data. Selain itu, glmnet memiliki dokumentasi yang membingungkan. Saya akhirnya menggunakan lars, dan saya sangat puas dengan hasilnya. Jangan pikirkan ukuran masalah Anda, saya pikir lars dapat mengatasinya.
deps_stats
"Masalahnya adalah fungsi glmnet dan lars memberikan jawaban yang berbeda." saya memiliki masalah yang sama. Ada jawaban?
berikan
Jawaban yang sangat berbeda untuk koefisien? Dan hanya dengan membaca posting asli, Anda benar-benar tidak boleh meminta satu solusi lambda dari glmnetdan kemungkinan juga bukan dari implementasi LARS. Mereka menyediakan berbagai macam solusi sepanjang spektrum bias vs varians. Yang membuatnya sulit untuk membandingkan koefisien aktual. Tapi tetap saja, variabel yang sama mungkin harus menjadi tidak nol dalam urutan yang sama.
Shea Parkes

Jawaban:

14

Dalam pengalaman saya, LARS lebih cepat untuk masalah kecil, masalah sangat jarang, atau masalah 'sangat luas' (fitur jauh lebih banyak daripada sampel). Memang, biaya komputasinya dibatasi oleh jumlah fitur yang dipilih, jika Anda tidak menghitung jalur regularisasi penuh. Di sisi lain, untuk masalah besar, glmnet (koordinat penurunan keturunan) lebih cepat. Di antara hal-hal lain, keturunan koordinat memiliki pola akses data yang baik (ramah-memori) dan bisa mendapatkan keuntungan dari redundansi data pada kumpulan data yang sangat besar, karena menyatu dengan kesesuaian parsial. Secara khusus, ia tidak menderita kumpulan data yang sangat berkorelasi.

Kesimpulan yang kami (pengembang inti dari scikit-learn ) telah datang juga adalah bahwa, jika Anda tidak memiliki pengetahuan apriori yang kuat tentang data Anda, Anda sebaiknya menggunakan glmnet (atau mengoordinasikan optimasi penurunan, untuk berbicara tentang suatu algoritma daripada daripada implementasi).

Tolok ukur yang menarik dapat dibandingkan dalam tesis Julien Mairal:

http://www.di.ens.fr/~mairal/resources/pdf/phd_thesis.pdf

Bagian 1.4, khususnya 1.4.5 (halaman 22)

Julien sampai pada kesimpulan yang sedikit berbeda, meskipun analisisnya tentang masalah serupa. Saya menduga ini karena dia sangat tertarik dengan masalah yang sangat luas.

Gael Varoquaux
sumber
Sebagian besar tanggapan Anda dibuat CW (di sini, tetapi juga di metaoptimize.com/qa) ... Ada alasan mengapa?
chl
1
Karena saya pikir itu baik jika orang dapat memperbaiki kesalahan ketik, kata-kata yang salah ... Saya menyukai gagasan perbaikan jawaban yang berkelanjutan. Apakah ini bertentangan dengan praktik terbaik?
Gael Varoquaux
2
Saya memperbaiki dua atau tiga kesalahan ketik secara sepintas. Tidak ada hubungannya dengan CW per se, kecuali Anda memikirkan rep yang lebih rendah yang diperlukan untuk mengedit posting Anda! Pengguna dapat menyarankan pengeditan apa pun; tetapi membuat respons Anda, CW tidak akan memungkinkan Anda untuk mendapatkan perwakilan dari mereka. Saya kira Anda tidak setelah rep, tetapi karena tanggapan Anda selalu dimasukkan dengan baik, saya hanya ingin tahu ... Ceria.
chl
1

LASSO adalah non-unik dalam kasus di mana beberapa fitur memiliki collinearity yang sempurna. Inilah eksperimen pikiran sederhana untuk membuktikannya.

yx1x2yx1x2yx1x2β1=1Pβ2=0Pβ1=0β21P

dsimcha
sumber
2
@dsmcha, maaf untuk mengatakan ini, tapi saya rasa saya tidak terlalu suka contoh itu. Responsnya identik dengan dua prediktor? Itu di luar patologis, dalam pandangan saya.
kardinal