想要计算R中由gbm(Gradient Boosting Machine)包创建的模型的R-Squared。运行具有5倍交叉验证的gbm函数后,将交叉验证的拟合值与结果变量的观察值相关联并将结果平方。这是一种有效的方法来推导交叉验证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
输出
Train_RSq
[1] 0.9762177
CV_RSq
[1] 0.8918581
这些结果对我有意义:训练模型R-Squared&gt; CV R-Squared。使train.fraction = 1也是有意义的,因为提取测试样本将是多余的(由于交叉验证)。这种计算gbm R-Squared的方法似乎有效吗?