-1
我試圖使用R
的gbm
迴歸模型。 我想計算交叉驗證預測響應值與真實響應值之間的確定係數(R平方)。但gbm.object
的cv.fitted
值僅提供1- train.fraction
的預測響應值。所以爲了得到我想要的東西,我需要找到哪些觀察值對應於cv.fitted
值。GBM交叉驗證
任何想法如何獲取該信息?
我試圖使用R
的gbm
迴歸模型。 我想計算交叉驗證預測響應值與真實響應值之間的確定係數(R平方)。但gbm.object
的cv.fitted
值僅提供1- train.fraction
的預測響應值。所以爲了得到我想要的東西,我需要找到哪些觀察值對應於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
函數和cv.folds
參數來執行gbm
函數。這有助於避免過度配合。