2016-12-17 2 views
1

임의의 포리스트를 사용하여 시계열 모델을 작성하려고합니다.랜덤 포리스트 오류 :`[.data.frame` (data,, all.vars (Terms), drop = FALSE) 오류 : 정의되지 않은 열

[.data.frame (데이터, all.vars (약관), 드롭 = FALSE)에 오류 : 선택 정의되지 않은 열

나는 알고있다 그러나, 나는 같은 실수를 얻을 때마다 나는있는 코드를 실행 무작위적인 숲 뒤에있는 이론의 대부분은 꽤 좋지만 실제로 그것을 사용하는 코드는별로 없습니다. 나는 누군가가 내 오류 (들)을 발견 할 수 있기를 바랍니다

df.ts <- structure(list(ts.t = c(315246, 219908, 193014, 231970, 248246, 
+ 247112, 268218, 263637, 264306, 245730, 256548, 227525, 304468, 
+ 229614, 202985), ts1 = c(233913, 315246, 219908, 193014, 231970, 
+ 248246, 247112, 268218, 263637, 264306, 245730, 256548, 227525, 
+ 304468, 229614), ts2 = c(253534, 233913, 315246, 219908, 193014, 
+ 231970, 248246, 247112, 268218, 263637, 264306, 245730, 256548, 
+ 227525, 304468), ts3 = c(226650, 253534, 233913, 315246, 219908, 
+ 193014, 231970, 248246, 247112, 268218, 263637, 264306, 245730, 
+ 256548, 227525), ts6 = c(213268, 242558, 250554, 226650, 253534, 
+ 233913, 315246, 219908, 193014, 231970, 248246, 247112, 268218, 
+ 263637, 264306), ts12 = c(333842, 210279, 193051, 174262, 216712, 
+ 144327, 213268, 242558, 250554, 226650, 253534, 233913, 315246, 
+ 219908, 193014)), .Names = c("ts.t", "ts1", "ts2", "ts3", "ts6", "ts12"), row.names = 13:27, class = "data.frame") 

: 다음 데이터 세트의 코드를 실행할 수 있습니다, 재현 예를 들어

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") 

: 여기

내 코드입니다

감사합니다.

답변

2

수식은에있는 변수 이름과 일치해야합니다.. 예 : y ~ .data의 다른 모든 변수를 사용하여 y을 예측합니다. 또는 formuladata 대신 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")