随机林错误:`[.data.frame`(data,all.vars(Terms),drop=FALSE)中的错误:选择了未定义的列
我正在尝试使用随机林构建时间序列模型。但是,每次运行代码时,我都会犯同样的错误,即:随机林错误:`[.data.frame`(data,all.vars(Terms),drop=FALSE)中的错误:选择了未定义的列,r,time-series,rstudio,random-forest,R,Time Series,Rstudio,Random Forest,我正在尝试使用随机林构建时间序列模型。但是,每次运行代码时,我都会犯同样的错误,即: [.data.frame中出错(数据,所有.vars(术语),drop=FALSE): 选择未定义的列 我非常了解随机森林背后的大部分理论,但还没有运行过多少使用它的代码 这是我的密码: library(randomForest) library(caret) fitControl <- trainControl( method = "repeatedcv", number = 10, re
[.data.frame
中出错(数据,所有.vars(术语),drop=FALSE):
选择未定义的列
我非常了解随机森林背后的大部分理论,但还没有运行过多少使用它的代码
这是我的密码:
library(randomForest)
library(caret)
fitControl <- trainControl(
method = "repeatedcv",
number = 10,
repeats = 1,
classProbs = FALSE,
verboseIter = TRUE,
preProcOptions=list(thresh=0.95,na.remove=TRUE,verbose=TRUE))
set.seed(1234)
rf_grid <- expand.grid(mtry = c(1:6))
fit <- train(df.ts[,1]~.,
data=df.ts[,2:6],
method="rf",
preProcess=c("center","scale"),
tuneGrid = rf_grid,
trControl=fitControl,
ntree = 200,
metric="RMSE")
库(随机林)
图书馆(插入符号)
fitControl公式应与data
中变量的名称相对应。例如y~。
使用data
中的所有其他变量预测y
。或者,您可以使用y=df.ts[,1],x=df.ts[,-1]
而不是公式
和数据
因此,正确的语法应该是:
fit <- train(ts.t ~ .,
data=df.ts,
method="rf",
preProcess=c("center","scale"),
tuneGrid = rf_grid,
trControl=fitControl,
ntree = 200,
metric="RMSE")
fit库(随机森林)
图书馆(插入符号)
fitControl只需使用插入符号::train(var~,Data)
而不是train(Data$var~,Data=Data)
就可以了。对我来说,使用classProbs=TRUE
代替classProbs=FALSE
也可以了
fit <- train(ts.t ~ .,
data=df.ts,
method="rf",
preProcess=c("center","scale"),
tuneGrid = rf_grid,
trControl=fitControl,
ntree = 200,
metric="RMSE")
library(randomForest)
library(caret)
fitControl <- trainControl(
method = "repeatedcv",
number = 10,
repeats = 1,
classProbs = FALSE,
verboseIter = TRUE,
preProcOptions=list(thresh=0.95,na.remove=TRUE,verbose=TRUE))
set.seed(1234)
rf_grid <- expand.grid(mtry = c(1:6))
fit <- train(ts.t~.,
data=df.ts[,1:6],
method="rf",
preProcess=c("center","scale"),
tuneGrid = rf_grid,
trControl=fitControl,
ntree = 200,
metric="RMSE")