Я пробовал регрессию Риджа на наборе данных, называемом redvnew,
- , устанавливая обучающие и тестовые наборы
set.seed(1)
train.size <- nrow(redvnew) / 2
train <- sample(1:nrow(redvnew), train.size)
test <- -train
redvnew.train <- redvnew[train, ]
redvnew.test <- redvnew[test, ]
dim(redvnew.train)
dim(redvnew.test)
Установите регрессионную модель гребня на тренировочном наборе, выбрав $ \ lambda $ путем перекрестной проверки. Сообщить об ошибке теста.
library(glmnet)
set.seed(1)
train.mat <- model.matrix(y ~ x2+log(x3)+x4+x5+x6, data = redvnew.train)
test.mat <- model.matrix(y ~ x2+log(x3)+x4+x5+x6 , data = redvnew.test)
grid <- 10 ^ seq(4, -2, length = 100)
mod.ridge <- cv.glmnet(train.mat, redvnew.train[ , "Y.house.price.of.unit.area"],
alpha = 0, lambda = grid, thresh = 1e-12)
lambda.best <- mod.ridge$lambda.min
lambda.best
ridge.pred <- predict(mod.ridge, newx = test.mat, s = lambda.best)
mean((redvnew.test[, "Y.house.price.of.unit.area"] - ridge.pred)^2)
Я получаю эту ошибку, говоря:
Ошибка в gl mnet (x, y, веса = веса, смещения = смещения, лямбда = лямбда,: количество наблюдений в y (207), не равное количеству строк x (414)
Может ли какой-либо PLS объяснить мне это? большое спасибо