Dự đoán sử dụng glmnet trong R


13

Tôi đang cố gắng mô hình hóa một số dữ liệu bằng cách sử dụng glmnetgói trong R. Giả sử tôi có dữ liệu sau

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)

(Đây là một sự đơn giản hóa; dữ liệu của tôi phức tạp hơn nhiều.) Sau đó, tôi đã sử dụng đoạn mã sau để tạo mô hình 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)

Tôi đang sử dụng standardize=FALSEvì dữ liệu thực tế của tôi đã được chuẩn hóa. Sau đó, tôi muốn đưa ra dự đoán về một bộ dữ liệu mới. Giả sử dữ liệu mới của tôi là:

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")

Tôi mong đợi kết quả chứa 4 yếu tố (dự đoán của newdata), nhưng thay vào đó, nó mang lại cho tôi ma trận 4x398. Tôi đang làm gì sai?

Câu trả lời:


14

Bạn cần xác định giá trị nào của lambda mà bạn muốn dự đoán đáp ứng. Tất cả những gì bạn cần làm là gọi like like, vd:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.