Обработка факторов в классификации карет со случайным лесом - PullRequest
0 голосов
/ 24 мая 2018

Я запускаю случайные леса из каретки в следующем коде:

library(quantmod)
library(Hmisc)
library(caret)

daysback=1
mlmodels=c("rf","knn")
my.df <- getSymbols(Symbols = "^FTSE", auto.assign = FALSE)
my.df=na.approx(my.df)
difvar=100*(my.df[,4]-my.df[,1])/my.df[,1]
data<-as.data.frame(difvar)
dframe=data.frame(ds=as.Date(rownames(data)),y=as.factor(sign(data[,1])))
for (i in 1:365) {
  eval(parse(text=paste0("dframe$y",i,"=Lag(dframe$y, +",i,")")))
}
dframe$year=as.numeric(format(dframe$ds,"%Y"))
dframe$month=as.numeric(format(dframe$ds,"%m"))
dframe$day=as.numeric(format(dframe$ds,"%d"))
dframe$dow=as.numeric(factor(weekdays(dframe$ds), levels = c("Monday", "Tuesday", "Wednesday", 
                                                             "Thursday", "Friday", "Saturday", "Sunday"),
                             ordered = TRUE))
dframe=dframe[complete.cases(dframe),]
start=nrow(dframe)-daysback
end=nrow(dframe)
actual_sign=data.frame(act=sign(dframe$y),date=dframe$ds)

#Run each model for m symbol

  rf_f=data.frame()
  res=list()

  ##Forecast data prep
  for (j in start:end){
    print(j)
    dframetmp=dframe[1:j,]

    m_rf = train(y~.-ds, data=dframetmp, method="rf")

  }

Как видите, все мои y и x являются категориальными переменными.Год, месяц, день, день недели и запаздывающие значения y, что также является категоричным.Помимо добавления некоторого кода для преобразования всех этих факторов, мне нужно делать что-то еще, например, создавать фиктивные переменные?Любое предложение по оптимизации?

Спасибо большое, Джордж

...