Saya mencoba menentukan alfa apa yang akan digunakan dalam glmnet
fungsi saya , tetapi file bantuan memberitahu saya:
Perhatikan bahwa cv.glmnet TIDAK mencari nilai untuk alpha. Nilai spesifik harus diberikan, jika alpha = 1 diasumsikan secara default. Jika pengguna ingin memvalidasi silang alpha juga, mereka harus memanggil cv.glmnet dengan vektor foldid yang sudah dihitung sebelumnya , dan kemudian menggunakan vektor lipatan yang sama ini dalam panggilan terpisah ke cv.glmnet dengan nilai alpha yang berbeda.
Namun, saya tidak mengerti:
- Apa vektor / argumen foldid itu.
- Cara membuat vektor foldid
- Cara menggunakan argumen foldid.
Setiap bantuan dengan ini akan sangat dihargai!
r
lasso
ridge-regression
glmnet
ahli hutan
sumber
sumber
Jawaban:
fold.id
memungkinkan pengguna untuk menentukan sebelumnya lipatan validasi silang untukcv.glmnet
. Misalnya, jika saya memiliki beberapa dataKemudian melewati kolom yang ditunjukkan sebagai
fold.id
argumen untukcv.glmnet
akan menyebabkan (misalnya) dua pengamatan pertama berada di lipatan yang sama, dan pengamatan ketiga dan keempat berada di lipatan yang sama (berbeda).Para penulis menyarankan bahwa jika Anda ingin memilih antara beberapa kumpulan berdasarkan estimasi validasi silang dari beberapa kesalahan pada optimal , maka itu adalah praktik terbaik untuk menggunakan struktur lipatan yang sama di setiap validasi silang Anda saat menentukan masing-masing .α λα λα
sumber
rbinom(now(X), n.folds, rep(1/n.folds, n.folds))
.Menurut Glmnet Vignette , salah satu cara untuk mengatur
foldid
glmnet adalah dengan:Dan kemudian berlaku untuk serangkaian alfa:
The
sample()
Fungsi dasarnya memungkinkan Anda untuk menghasilkan vektor dari nomor acak dalam rentang Anda pasokan (= 1: nfolds) untuk panjang respon variabel matriks y . Dengan cara ini, Anda menetapkan setiap baris matriks input ke lipatan acak (tetapi sekarang disetel).sumber