ฉันสงสัยว่าจะเข้าใกล้การฝึกอบรมและทดสอบแบบจำลอง 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 สปีชีส์