这是我遇到的一个具有挑战性但安静有趣的冲突......我希望我真的能做到这一点,希望有人能在这里帮助我
这是“R”
这是我正在运行的代码,用于从训练中获取 X1 的 R 平方
model=randomForest(X1~.,data=training,importance=TRUE,keep.forest=TRUE)
predicted=predict(model,newdata=testing[,-1])
actual=testing$X1
rsq=1-sum((actual-predicted)^2)/sum((actual-mean(actual))^2)
print(rsq)
这是培训负责人,让您知道它的样子
head(training)
X1 X2 X3 X4 X5 X6
68 -3.556526 4.588409 -2.756521 -2.742035 11.542023 -18.405807
23 -1.915947 -0.179710 -0.240580 -0.278259 -0.284058 0.553627
129 -24.252174 -4.869564 4.800001 -14.608688 5.255074 -20.228981
5 -1.637680 -1.147827 -2.005795 -1.121750 0.101440 -1.608688
147 -68.289856 -0.626083 19.933334 -6.637680 15.379715 -11.515945
其中有多达 X77 个,其中行数为 73。
我的目标是制作一个循环
model=randomForest(X1~.,data=training,importance=TRUE,keep.forest=TRUE)
predicted=predict(model,newdata=testing[,-1])
actual=testing$X1
rsq=1-sum((actual-predicted)^2)/sum((actual-mean(actual))^2)
print(rsq)
高达 X77
直到
model=randomForest(X77~.,data=training,importance=TRUE,keep.forest=TRUE)
predicted=predict(model,newdata=testing[,-77])
actual=testing$X77
rsq=1-sum((actual-predicted)^2)/sum((actual-mean(actual))^2)
print(rsq)
所以我可以达到 77 的 r 平方
我的最终目标只是取那些 77 r-squared 的平均值
给 Maxim.K 和其他人
rsq=function(i){
model=randomForest(testing[,1]~.,data=training,importance=TRUE,keep.forest=TRUE)
predicted=predict(model,newdata=testing[,-i])
actual=testing[,i]
1-sum((actual-predicted)^2)/sum((actual-mean(actual))^2)
}
rsq=function(i){
model=randomForest(Xi~.,data=training,importance=TRUE,keep.forest=TRUE)
predicted=predict(model,newdata=testing[,-i])
actual=testing[,i]
1-sum((actual-predicted)^2)/sum((actual-mean(actual))^2)
}
我知道第二个在逻辑上没有意义,但这就是我需要的。所以 testing$X1 是 testing[,1],但它不起作用把 testing[,1] 我必须把它放在“X1”的形式
我该怎么做……?