Saya ingin menggunakan GLM dan Elastic Net untuk memilih fitur-fitur yang relevan + membangun model regresi linier (yaitu, baik prediksi dan pemahaman, sehingga akan lebih baik dibiarkan dengan parameter yang relatif sedikit). Outputnya kontinu. Ini gen per 50 kasus. Saya telah membaca tentang paket tersebut, tetapi saya tidak 100% yakin tentang langkah-langkah yang harus diikuti:glmnet
Lakukan CV untuk memilih lambda:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) diberi data input, apakah Anda memilih nilai alpha yang berbeda?
(Q2) apakah saya perlu melakukan hal lain sebelum membuat model?Sesuai dengan model:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(Q3) ada yang lebih baik dari "kovarians"?
(Q4) Jika lambda dipilih oleh CV, mengapa langkah ini perlunlambda=?
(Q5) apakah lebih baik digunakanlambda.minataulambda.1se?Dapatkan koefisien, untuk melihat parameter mana yang jatuh ("."):
predict(model, type="coefficients")Di halaman bantuan ada banyak
predictmetode (misalnya,predict.fishnet,predict.glmnet,predict.lognet, dll). Tapi setiap prediksi "polos" seperti yang saya lihat pada contoh.
(Q6) Haruskah saya menggunakanpredictataupredict.glmnetatau lainnya?
Terlepas dari apa yang saya baca tentang metode regularisasi, saya cukup baru dalam R dan dalam paket statistik ini, jadi sulit untuk memastikan apakah saya mengadaptasi masalah saya ke kode. Setiap saran akan disambut.
PEMBARUAN
Berdasarkan "Seperti yang disebutkan sebelumnya, objek kereta kelas berisi elemen yang disebut finalModel, yang merupakan model yang sesuai dengan nilai parameter tuning yang dipilih oleh resampling. Objek ini dapat digunakan dengan cara tradisional untuk menghasilkan prediksi untuk sampel baru, menggunakan itu fungsi prediksi model. "
Menggunakan caretuntuk menyetel alfa dan lambda:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
Apakah fitMmengganti langkah 2 sebelumnya? Jika demikian, bagaimana cara menentukan opsi glmnet ( type.gaussian="naive",lambda=cv$lambda.min/1se) sekarang?
Dan berikut predictlangkah, bisa saya ganti modelke fitM?
Jika aku melakukan
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
apakah masuk akal sama sekali atau saya salah mencampur kedua kosa kata paket?