Ya, intersep termasuk dalam model glmnet , tetapi itu tidak diatur (lih. Jalur Regularisasi untuk Model Linear Umum melalui Koordinat Keturunan , hal. 13). Rincian lebih lanjut tentang implementasi tentu bisa diperoleh dengan hati-hati melihat kode (untuk keluarga gaussian, itu adalah elnet()
fungsi yang dipanggil oleh glmnet()
), tetapi di Fortran.
Anda bisa mencoba dihukum paket, yang memungkinkan untuk menghapus mencegat dengan melewati unpenalized = ~0
ke penalized()
.
> x <- matrix(rnorm(100*20),100,20)
> y <- rnorm(100)
> fit1 <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE)
> fit2 <- lm(y ~ 0+x)
> plot((coef(fit1) + coef(fit2))/2, coef(fit2)-coef(fit1))
Untuk mendapatkan regularisasi Lasso, Anda dapat mencoba sesuatu seperti
> fit1b <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE, lambda1=1, steps=20)
> show(fit1b)
> plotpath(fit1b)
Seperti yang dapat dilihat pada gambar berikut, ada sedikit perbedaan antara parameter regresi yang dihitung dengan kedua metode (kiri), dan Anda dapat memplot solusi jalur Lasso dengan sangat mudah (kanan).