r - 使用 regsubsets 进行 Predict()

标签 r machine-learning cross-validation isl

我正在尝试复制《R 中应用统计学习简介》的结果。具体来说,第 6.5.3 节中的实验室。我完全按照实验室中的代码进行操作:

library("ISLR")
library("leaps")
set.seed(1)
train = sample(c(TRUE, FALSE), nrow(Hitters), rep = TRUE)
test = (!train)
regfit.best = regsubsets(Salary ~., data = Hitters[train,], nvmax= 19)

test.mat = model.matrix(Salary~., data = Hitters[test,]) 

val.errors = rep(NA, 19)
for (i in 1:19){
  coefi= coef(regfit.best, id = i)
  pred=test.mat[,names(coefi)]%*%coefi
  val.errors[i]=mean((Hitters$Salary[test]-pred)^2) 
}

当我运行此命令时,我仍然收到以下错误:

Warning message:
In Hitters$Salary[test] - pred :
  longer object length is not a multiple of shorter object length
Error in mean((Hitters$Salary[test] - pred)^2) : 
  error in evaluating the argument 'x' in selecting a method for function 'mean': Error: dims [product 121] do not match the length of object [148]

val.errors 是 19 个 NA 的向量。

我对 R 和验证方法还比较陌生,所以我不确定为什么它们的维度不同。

最佳答案

这实际上是一个没有继承上一小节中的步骤的问题,该小节省略了不完整的条目。

关于r - 使用 regsubsets 进行 Predict(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49480677/

相关文章:

r - 在本地环境中创建 S3 类以对对象进行排序

r - 如何计算数据框列的百分比变化,然后是下一个,等等?

regex - 在 R 中,使用正则表达式匹配多个模式并将新列添加到列表

根据另一列中的条件匹配删除重复行

python - 加载模型时如何使用 min max scaler 拟合测试数据?

machine-learning - 从一组向量中学习表示

python - 为什么我的损失趋于下降,而我的准确度却趋于零?

r - XGboost 模型始终获得 100% 的准确率?

machine-learning - 我应该先执行交叉验证然后再进行网格搜索吗?

java - Encog - 使用交叉验证方法训练神经网络并验证训练