1

想要计算 R 中 gbm(梯度提升机)包创建的模型的 R-Squared。在运行 gbm 函数进行 5 折交叉验证后,将交叉验证的拟合值与结果变量的观察值相关联,并对结果。这是推导交叉验证 R-Squared 以评估模型拟合的有效方法吗?代码如下:

>Test_gbm1 <- gbm(YVar ~ ., distribution="gaussian", data=Test_Data, n.trees=15000, interaction.depth=1, n.minobsinnode=3, shrinkage=0.001, bag.fraction=0.5, train.fraction=1, cv.folds=5, keep.data=TRUE, verbose=FALSE, n.cores=NULL)
>CV_RSq <- (cor(Test_gbm1$cv.fitted, Test_Data$YVar))^2
>Train_RSq <- (cor(Test_gbm1$fit, Test_Data$YVar))^2

输出

训练_RSq

[1] 0.9762177

CV_RSq

[1] 0.8918581

这些结果对我来说很有意义:训练模型 R-Squared > CV R-Squared。train.fraction=1 也是有意义的,因为保留测试样本是多余的(由于交叉验证)。这种为 gbm 计算 R-Squared 的方法似乎有效吗?

4

0 回答 0