【发布时间】:2020-05-16 20:03:55
【问题描述】:
我将 R 用于数据科学,并使用 caret::train() 函数训练我的模型。
但这是我的错误
control <- trainControl(method="cv", number=10)
lassogrid <- expand.grid(
alpha=1, lambda=seq(0.001, 0.1, by=0.0005)
)
lasso_model <- train(x=train0[,-c(which(names(train0)=="SalePrice"))],
y=train0$SalePrice, method = "glmnet", trControl="control",
tuneGrid="lassogrid")
然后出现如下错误:
错误:$ 运算符对原子向量无效
当我在 Google 中搜索时,这似乎不是由于 train 功能。
但我不知道原子向量到底是什么。所以请告诉我为什么以及如何解决这个问题。
【问题讨论】:
-
我想知道我的代码中的原子向量在哪里。谢谢
-
这里是 traceback() 结果: 2. train.default(x = as.matrix(train0[, -c(which(names(train0) == "SalePrice"))]), y = train0$SalePrice, method = "glmnet", trControl = "control", tuneGrid = "lassogrid") 1. train(x = as.matrix(train0[, -c(which(names(train0) == "SalePrice") )]), y = train0$SalePrice, method = "glmnet", trControl = "control", tuneGrid = "lassogrid")
-
有几个问题,您不需要使用引号进行控制,它被解释为字符串而不是变量。其他问题可能是由于您提供数据的方法造成的,您能否通过使用
dput(head(train_df,n))提供数据来使问题更具重现性?