ฟังก์ชั่น caret Train สำหรับ glmnet cross-validate สำหรับทั้ง alpha และ lambda หรือไม่?


20

ไม่ R caretแพคเกจข้ามการตรวจสอบทั้งในalphaและlambdaสำหรับglmnetรูปแบบ? ใช้รหัสนี้

eGrid <- expand.grid(.alpha = (1:10) * 0.1, 
                     .lambda = (1:10) * 0.1)

Control <- trainControl(method = "repeatedcv",repeats = 3,verboseIter =TRUE)

netFit <- train(x =train_features, y = y_train,
          method = "glmnet",
          tuneGrid = eGrid,
          trControl = Control)

บันทึกการฝึกอบรมมีลักษณะเช่นนี้

Fold10.Rep3: alpha=1.0, lambda=NA 

อะไรlambda=NAหมายถึง?


3
ฉันจะส่ง family = "binomial" และ type.measure = "auc" ไปยังรุ่น glmnet โดยใช้รถไฟได้อย่างไร
diugalde

คำตอบ:


16

train จะปรับทั้งสอง

โดยทั่วไปคุณจะต้องalphaเมื่อการฝึกอบรมและได้รับการคาดการณ์ทั่วค่าที่แตกต่างของการใช้lambda predict.glmnetบางทีคุณค่าlambda = "all"หรืออย่างอื่นจะให้ข้อมูลมากกว่า

แม็กซ์


1
ฉันจะระบุลำดับของค่าอัลฟ่าได้อย่างไร โดยไม่ให้ลำดับแลมบ์ดา?
diugalde

สิ่งที่ต้องการ: alpha.seq = seq (0,1, .01) คุณไม่จำเป็นต้องใช้วิธีการที่แน่นอนข้างต้น ดูเอกสารกำกับ caret
Redeyes10

12

คำถามเก่า แต่เมื่อเร็ว ๆ นี้ฉันต้องจัดการกับปัญหานี้และพบว่าคำถามนี้เป็นข้อมูลอ้างอิง

นี่คือวิธีการทางเลือก:

glmnet บทความ ( https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html ) เฉพาะที่อยู่ปัญหานี้แนะนำเพื่อระบุการตรวจสอบข้ามพับใช้อาร์กิวเมนต์ foldids และตรวจสอบมากกว่าตารางของ\วิธีนี้ใช้ cv folds เดียวกันเพื่อตรวจสอบความถูกต้องสำหรับแต่ละในกริดของคุณλαλα

เหตุผลนี้อาจเหนือกว่าการตรวจสอบความถูกต้องและพร้อมกันคือ cv.glmnet ตรวจสอบความถูกต้องโดยใช้ 'warm start' เพื่อเลือกαλλλλ>0λ


นี่เป็นคำตอบที่ดีกว่าเมื่อเร็ว ๆ นี้
javadba
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.