`train.error`在gbm中实际上代表什么?

4
考虑下面的短R脚本。似乎boost.hitters$train.error与训练集的原始残差或平方误差不匹配。
我找不到有关train.error的文档,所以想知道有没有人知道train.error在这里实际代表什么以及如何计算?
library(ISLR)
library(gbm)

set.seed(1)

Hitters=na.omit(Hitters)
Hitters$Salary = log(Hitters$Salary)

boost.hitters=gbm(Salary~.,data=Hitters, n.trees=1000,interaction.depth=4, shrinkage= 0.01)
yhat.boost=predict(boost.hitters,newdata=Hitters,n.trees=1000)

mean(boost.hitters$train.error^2)
mean(boost.hitters$train.error)

mean((yhat.boost-Hitters$Salary)^2)

输出:

[1] 0.03704581
[1] 0.1519719
[1] 0.07148612
1个回答

6

我向我的大学教授请教了此问题。

显然,train.error代表每个树被加入后的训练误差(即MSE)。因此,我计算得到的误差等于最后一棵树的训练误差,因此在我的示例中:

mean((yhat.boost-Hitters$Salary)^2) == boost.hitters$train.error[1000] 

1
所以实际上它是均方误差。感谢您以简单的方式表示它。 - KarthikS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接