Saya ingin mendapatkan koefisien untuk masalah LASSO
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.
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.
sumber
glmnet
dan 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.Jawaban:
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.
sumber
LASSO adalah non-unik dalam kasus di mana beberapa fitur memiliki collinearity yang sempurna. Inilah eksperimen pikiran sederhana untuk membuktikannya.
sumber
Lars dan Glmnet memberikan solusi yang berbeda untuk masalah Lasso, karena mereka menggunakan fungsi objektif yang sedikit berbeda dan standartisasi data yang berbeda. Anda dapat menemukan kode detail untuk reproduksi dalam pertanyaan terkait Mengapa Lars dan Glmnet memberikan solusi berbeda untuk masalah Lasso?
sumber