การคาดการณ์โดยใช้ glmnet ใน R


13

ฉันกำลังพยายามสร้างแบบจำลองข้อมูลโดยใช้glmnetแพคเกจในอาร์สมมติว่าฉันมีข้อมูลต่อไปนี้

training_x <- data.frame(variable1 = c(1, 2, 3, 2, 3),
                         variable2 = c(1, 2, 3, 4, 5))
y <- c(1, 2, 3, 4, 5)

(นี่คือการทำให้เข้าใจง่ายข้อมูลของฉันมีความซับซ้อนมากขึ้น) จากนั้นฉันใช้รหัสต่อไปนี้เพื่อสร้างโมเดล glmnet

x <- as.matrix(training_x)
library(glmnet)
GLMnet_model_1 <- glmnet(x, y, family="gaussian", alpha=0.755,
                         nlambda=1000, standardize=FALSE, maxit=100000)

ฉันกำลังใช้standardize=FALSEเพราะข้อมูลในชีวิตจริงของฉันได้มาตรฐานแล้ว จากนั้นฉันต้องการทำนายชุดข้อมูลใหม่ สมมติว่าข้อมูลใหม่ของฉันคือ:

newdata <- as.matrix(data.frame(variable1 = c(2, 2, 1, 3), 
                                variable2 = c(6, 2, 1, 3)))
results <- predict(object=GLMnet_model_1, newx, type="response")

ฉันคาดว่าผลลัพธ์จะมี 4 องค์ประกอบ (การคาดการณ์newdata) แต่มันให้เมทริกซ์ 4x398 แทน ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


14

คุณต้องระบุค่าแลมบ์ดาที่คุณต้องการทำนายการตอบสนอง สิ่งที่คุณต้องทำคือการโทรเช่น:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.