ฉันกำลังทำการถดถอยโลจิสติกส์แบบยืดหยุ่นบนชุดข้อมูลด้านการดูแลสุขภาพโดยใช้glmnetแพ็คเกจใน R โดยเลือกค่าแลมบ์ดาในตารางของจาก 0 ถึง 1 รหัสย่อของฉันอยู่ด้านล่าง:
alphalist <- seq(0,1,by=0.1)
elasticnet <- lapply(alphalist, function(a){
cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001)
})
for (i in 1:11) {print(min(elasticnet[[i]]$cvm))}
ซึ่งส่งออกข้อผิดพลาดการตรวจสอบความถูกต้องข้ามเฉลี่ยสำหรับแต่ละค่าของอัลฟาจากถึงโดยเพิ่มขึ้น :1.0 0.1
[1] 0.2080167
[1] 0.1947478
[1] 0.1949832
[1] 0.1946211
[1] 0.1947906
[1] 0.1953286
[1] 0.194827
[1] 0.1944735
[1] 0.1942612
[1] 0.1944079
[1] 0.1948874
จากสิ่งที่ฉันได้อ่านในวรรณกรรมทางเลือกที่ดีที่สุดของคือข้อผิดพลาด cv ถูกย่อให้เล็กสุด แต่มีข้อผิดพลาดมากมายในช่วงของอัลฟา ฉันเห็นต่ำสุดในประเทศหลายแห่งที่มีข้อผิดพลาดขั้นต่ำทั่วโลกของสำหรับ0.1942612alpha=0.8
มันมีความปลอดภัยที่จะไปด้วยalpha=0.8? หรือถ้ามีความแปรปรวนฉันควรเรียกใช้อีกครั้งcv.glmnetด้วยการตรวจสอบความถูกต้องไขว้มากกว่าเดิม (เช่นแทน ) หรืออาจเพิ่มจำนวนทีละมากขึ้นระหว่างและเพื่อให้ได้ภาพเส้นทางที่ผิดพลาดของ cv?10 αalpha=0.01.0
cv.glmnet()โดยไม่ผ่านการfoldidsสร้างจากเมล็ดสุ่มที่รู้จัก


caretแพคเกจที่สามารถทำซ้ำ CV และปรับแต่งสำหรับอัลฟาและแลมบ์ดา (รองรับการประมวลผลแบบมัลติคอร์!) จากหน่วยความจำฉันคิดว่าglmnetเอกสารแนะนำไม่ให้ปรับอัลฟ่าในแบบที่คุณทำที่นี่ มันแนะนำเพื่อให้ foldidscv.glmnetคงที่หากผู้ใช้ปรับแต่งสำหรับอัลฟานอกเหนือไปจากการปรับแต่งสำหรับแลมบ์ดาให้บริการโดย