我正在尝试在 R 中执行随机森林回归并且遇到了几个问题并且我自己已经修复了其中的大部分但是我无法解决最后一个问题。我有一个我想读入的文件列表,这没问题(我使用 for 循环)。
library(randomForest)
set.seed(51)
file<- c("file1","file2","file3")
targets<- c("X1.ts","ts2","ts3")
for (i in 1:length(file)){
d_names<-paste("C:\\location\folder\",drugs[i],".txt",sep="")
dataset<- read.table(d_names, header=TRUE, row.names=1)
ind<-sample(2,nrow(dataset), replace=TRUE)
#TRAINING DATASET1 PREDICTING DATASET2
train_one.rf<- randomForest(dataset[ind==1,][[1]] ~ .-targets[i], data=dataset[ind==1,], prob=c(0.7,0.3))
dset2.pred<- predict(train_one.rf, newdata=dataset[ind==2,])
#TRAINING DATASET2 PREDICTING DATASET1
train_two.rf<- randomForest(dataset[ind==2,][[1]] ~ .-targets[i], data=dataset[ind==2,], prob=c(0.7,0.3))
dset1.pred<- predict(train_two.rf, newdata=dataset[ind==1,])
}
随机森林的本质是我必须对不包括我希望预测的列的数据进行建模。为此,我必须使用:
dataset[ind==1,][[1]] ~ .-target[i]
这是我希望为每次运行随机森林添加列的名称(来自目标)的目标 [i] 。我曾尝试将其分配给一个变量,并将循环变量也放入其中,但无济于事。我想 R 中的公式部分需要一些比我更优雅的知识。
提前感谢,
乌鸦