ฉันกำลังทำการถดถอยโลจิสติกส์แบบยืดหยุ่นบนชุดข้อมูลด้านการดูแลสุขภาพโดยใช้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.1942612
alpha=0.8
มันมีความปลอดภัยที่จะไปด้วยalpha=0.8
? หรือถ้ามีความแปรปรวนฉันควรเรียกใช้อีกครั้งcv.glmnet
ด้วยการตรวจสอบความถูกต้องไขว้มากกว่าเดิม (เช่นแทน ) หรืออาจเพิ่มจำนวนทีละมากขึ้นระหว่างและเพื่อให้ได้ภาพเส้นทางที่ผิดพลาดของ cv?10 αalpha=0.0
1.0
cv.glmnet()
โดยไม่ผ่านการfoldids
สร้างจากเมล็ดสุ่มที่รู้จัก
caret
แพคเกจที่สามารถทำซ้ำ CV และปรับแต่งสำหรับอัลฟาและแลมบ์ดา (รองรับการประมวลผลแบบมัลติคอร์!) จากหน่วยความจำฉันคิดว่าglmnet
เอกสารแนะนำไม่ให้ปรับอัลฟ่าในแบบที่คุณทำที่นี่ มันแนะนำเพื่อให้ foldidscv.glmnet
คงที่หากผู้ใช้ปรับแต่งสำหรับอัลฟานอกเหนือไปจากการปรับแต่งสำหรับแลมบ์ดาให้บริการโดย