-1
R
の回帰モデルgbm
を使用しようとしています。 クロス検証予測応答値と真の応答値との間の決定係数(R 2乗)を計算したい。しかしながら、gbm.object
のcv.fitted
の値は、1-の予測された応答値のみを提供する。だから、私が望むものを得るためには、どの観測値がcv.fitted
の値に対応しているかを知る必要があります。GBMクロス検証
どのように情報を取得するか考えていますか?
R
の回帰モデルgbm
を使用しようとしています。 クロス検証予測応答値と真の応答値との間の決定係数(R 2乗)を計算したい。しかしながら、gbm.object
のcv.fitted
の値は、1-の予測された応答値のみを提供する。だから、私が望むものを得るためには、どの観測値がcv.fitted
の値に対応しているかを知る必要があります。GBMクロス検証
どのように情報を取得するか考えていますか?
質問を正しく理解している場合は、予測機能を使用して簡単にモデル予測を行うことができます。
dat <- data.frame(y = runif(1000), x=rnorm(1000))
gbmMod <- gbm::gbm(y~x, data=dat, n.trees=5000, cv.folds=0)
summary(lm(predict(gbmMod, n.trees=5000) ~ dat$y))$adj.r.squared
しかし、データを側面に保持してテストデータのモデル精度を評価するべきではありませんか?これは私がトレーニングセット(70%)およびテストセット(30%)にデータを分割する場合は、次のように対応するであろう:
inds <- sample(1:nrow(dat), 0.7*nrow(dat))
train <- dat[inds, ]
test <- dat[-inds, ]
gbmMod2 <- gbm::gbm(y~x, data=train, n.trees=5000)
preds <- predict(gbmMod2, newdata = test, n.trees=5000)
summary(lm(preds ~ test[,1]))$adj.r.squared
それはgbm
の樹木の数を調整することができることも注目に値しますgbm.perf
関数とgbm
関数の引数をcv.folds
とします。これは過適合を避けるのに役立ちます。