glmnet พร้อม trainControl และการปรับจูนแบบกำหนดเอง
ดังที่เห็นในวิดีโอ โมเดล glmnet สามารถ fit หลายโมเดลพร้อมกันในครั้งเดียว (ซึ่งเป็นหนึ่งในข้อดีของแพ็กเกจนี้) คุณสามารถใช้ประโยชน์จากจุดนี้ได้ด้วยการส่งค่า lambda จำนวนมาก ซึ่งควบคุมระดับ penalization ในโมเดล ฟังก์ชัน train() ฉลาดพอที่จะ fit เพียงหนึ่งโมเดลต่อค่า alpha และส่งค่า lambda ทั้งหมดพร้อมกันเพื่อการ fitting แบบขนาน
ตัวอย่าง tuning grid ที่แนะนำสำหรับโมเดล glmnet คือ:
expand.grid(
alpha = 0:1,
lambda = seq(0.0001, 1, length = 100)
)
กริดนี้สำรวจค่า lambda จำนวนมาก (ในที่นี้คือ 100 ค่า) ตั้งแต่ค่าเล็กมากจนถึงค่าใหญ่มาก (คุณสามารถเพิ่มค่า lambda สูงสุดเป็น 10 ได้ แต่สำหรับแบบฝึกหัดนี้ 1 ถือเป็นขอบเขตบนที่เหมาะสมแล้ว)
หากต้องการสำรวจโมเดลน้อยลง ให้ใช้ลำดับ lambda ที่สั้นลง ตัวอย่างเช่น lambda = seq(0.0001, 1, length = 10) จะ fit 10 โมเดลต่อค่า alpha หนึ่งค่า
นอกจากนี้ tuneGrid ดังกล่าวยังให้คุณศึกษาโมเดล penalized ทั้งสองรูปแบบ ได้แก่ ridge regression และ lasso regression โดย alpha = 0 คือ pure ridge regression และ alpha = 1 คือ pure lasso regression คุณยังสามารถ fit โมเดลแบบผสม (หรือที่เรียกว่า elastic net) โดยกำหนด alpha ระหว่าง 0 ถึง 1 ตัวอย่างเช่น alpha = 0.05 จะเป็น ridge regression 95% และ lasso regression 5%
ในแบบฝึกหัดนี้ จะสำรวจเฉพาะ 2 รูปแบบสุดขั้ว ได้แก่ pure ridge และ pure lasso regression เพื่อแสดงให้เห็นความแตกต่างระหว่างทั้งสอง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning ด้วย caret ใน R
คำแนะนำการฝึกหัด
- เทรนโมเดล
glmnetบนข้อมูลoverfitโดยให้yเป็นตัวแปรตอบสนอง และตัวแปรอื่นทั้งหมดเป็นตัวแปรอธิบาย อย่าลืมใช้trainControlแบบกำหนดเองจากแบบฝึกหัดก่อนหน้า (myControl) และใช้tuneGridแบบกำหนดเองเพื่อสำรวจalpha = 0:1พร้อมค่าlambdaจำนวน 20 ค่าในช่วง 0.0001 ถึง 1 สำหรับแต่ละค่า alpha - พิมพ์
modelออกทาง console - พิมพ์ค่า
max()ของสถิติ ROC ในmodel[["results"]]โดยเข้าถึงได้ผ่านmodel[["results"]][["ROC"]]
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Train glmnet with custom trainControl and tuning: model
model <- train(
___,
___,
tuneGrid = ___(
___,
___
),
method = ___,
trControl = ___
)
# Print model to console
# Print maximum ROC statistic