正则化中的错误

时间:2016-07-20 07:19:45

标签: r

我正在使用ML_Hackers_for_masters第6章文本回归中的示例并使用书中提供的代码,但是当我运行下面给出的代码时

ranks <- read.csv(file.path( 'oreilly.csv'),stringsAsFactors = FALSE)

set.seed(1) 
library('glmnet')
performance <- data.frame()
for (lambda in c(0.1, 0.25, 0.5, 1, 2, 5)) {
  for (i in 1:50) {
    indices <- sample(1:100, 80)
    training.x <- x[indices,]
    training.y <- y[indices]
    test.x <- x[-indices,]
    test.y <- y[-indices]
    glm.fit <- glmnet(training.x, training.y)
    predicted.y <- predict(glm.fit, test.x, s = lambda)
    rmse <- sqrt(mean((predicted.y - test.y) ^ 2))
    performance <- rbind(performance, data.frame(Lambda = lambda, Iteration = i, RMSE = rmse))
    }
  }
  

x [indices,]中的错误:维数不正确

请建议我如何删除此错误。在此先感谢

1 个答案:

答案 0 :(得分:0)

从你的代码中,我无法理解什么是x。请检查x的尺寸。 错误消息基本上意味着x是一个向量或类似的东西。我可以使用下面的代码重现错误。

x <- c(1:100)
ind <- sample(1:100, 80)
x[ind,]

Error in x[ind, ] : incorrect number of dimensions

从这段代码你可以理解,因为x是一个向量,我试图对它应用矩阵运算,因此错误。

希望这会有所帮助。