0

これは私が抱えている挑戦的でありながら静かな興味深い対立です...本当にこれができたらいいのにと思います。誰かが私を助けてくれることを願っています

これは「R」です

これは、トレーニングから X1 の R-squared を取得するために実行しているコードです。

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

行数が 73 である X77 までの 1 つがあります。

私の目的はループを作ることです

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-2 乗を平均することです。


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

2番目のものは論理的に意味がないことはわかっていますが、それが必要です。したがって、testing$X1 は testing[,1] ですが、testing[,1] を入れると機能しません。「X1」の形式で入れる必要があります。

どうすれば…?

4

1 に答える 1