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 の数式部分には、私が持っているよりももう少し洗練された知識が必要だと思います。
事前にサンクス、
ジクロー