ฉันสงสัยว่าจะเข้าใกล้การฝึกอบรมและทดสอบแบบจำลอง LASSO โดยใช้ glmnet ใน R ได้อย่างไร
- โดยเฉพาะฉันสงสัยว่าจะทำอย่างไรหากขาดชุดข้อมูลการทดสอบภายนอกทำให้ฉันต้องใช้การตรวจสอบข้าม (หรือวิธีการอื่นที่คล้ายคลึงกัน) เพื่อทดสอบแบบจำลอง LASSO ของฉัน
ให้ฉันทำลายสถานการณ์ของฉัน:
ฉันมีชุดข้อมูลเพียงชุดเดียวเพื่อแจ้งและฝึกอบรมโมเดล glmnet ของฉัน ดังนั้นฉันจะต้องใช้การตรวจสอบข้ามเพื่อแยกข้อมูลของฉันเพื่อสร้างวิธีทดสอบโมเดลของฉัน
ฉันกำลังใช้อยู่cv.glmnet
ซึ่งตามรายละเอียดแพ็คเกจ :
ทำการตรวจสอบความถูกต้องข้ามของ k-fold สำหรับ glmnet, สร้างพล็อตและส่งกลับค่าสำหรับแลมบ์ดา
การตรวจสอบข้ามถูกดำเนินการใน
cv.glmnet
การเลือกแลมบ์ดาที่ดีที่สุดหรือเป็นวิธีการตรวจสอบข้ามโดยทั่วไปหรือไม่- กล่าวอีกนัยหนึ่งฉันยังต้องทำอีกขั้นตอนการตรวจสอบข้ามเพื่อ "ทดสอบ" โมเดลของฉันหรือไม่
ฉันทำงานกับข้อสันนิษฐานที่ว่า "ใช่แล้ว"
ในกรณีนี้ฉันจะตรวจสอบcv.glmnet
รุ่นของฉันได้อย่างไร
ฉันต้องทำด้วยตนเองหรืออาจเป็น
caret
ฟังก์ชั่นที่มีประโยชน์สำหรับรุ่น glmnet หรือไม่?ฉันจะใช้ "ลูป" สองจุดศูนย์กลางของการตรวจสอบความถูกต้องไขว้หรือไม่ ... ฉันใช้ "ลูปด้านใน" ของ CV ผ่าน
cv.glmnet
เพื่อกำหนดค่าแลมบ์ดาที่ดีที่สุดในแต่ละkเท่าของ "ลูปภายนอก" ของการประมวลผลการตรวจสอบความถูกต้องข้าม ?หากฉันทำการตรวจสอบความถูกต้องของ
cv.glmnet
รูปแบบการตรวจสอบความถูกต้องไขว้ฉันจะแยกโมเดล "ดีที่สุด" (จากแลมบ์ดา "ที่ดีที่สุด") จากแต่ละcv.glmnet
รุ่นในแต่ละช่วงของการตรวจสอบไขว้ภายนอก- หมายเหตุ: ฉันกำหนด "ดีที่สุด" รูปแบบเป็นรูปแบบที่เกี่ยวข้องกับแลมบ์ดาที่ผลิต MSE ภายใน 1 SE ขั้นต่ำที่ ... นี้เป็น
$lambda.1se
ในcv.glmnet
รูปแบบ
- หมายเหตุ: ฉันกำหนด "ดีที่สุด" รูปแบบเป็นรูปแบบที่เกี่ยวข้องกับแลมบ์ดาที่ผลิต MSE ภายใน 1 SE ขั้นต่ำที่ ... นี้เป็น
บริบท:
ฉันพยายามที่จะทำนายอายุต้นไม้ ("อายุ") ตามเส้นผ่าศูนย์กลางต้นไม้ ("D"), D ^ 2 และสปีชีส์ ("factor (SPEC)") [สมการที่เกิด: Age ~ D + factor(SPEC) + D^2
] ฉันมีแถวข้อมูล ~ 50K แต่ข้อมูลนั้นยาว (ติดตามบุคคลตลอดเวลา) และประกอบด้วย ~ 65 สปีชีส์