-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
函数。这有助于避免过度配合。