2013-11-19 4 views
3

Рассмотрите короткий сценарий R ниже. Кажется, что boost.hitters$train.error не совпадает ни с необработанными остатками, ни с квадратами ошибок обучающего набора.Что означает `train.error` на самом деле для gbm?

Не удалось найти документацию на 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 

ответ

5

Я спросил профессор в моем университете.

По-видимому train.error представляет собой ошибку обучения (то есть MSE) после добавления каждого дерева. Таким образом, вычисленная ошибка равна ошибке обучения последнего дерева, поэтому в моем примере:

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

Таким образом, это на самом деле ошибка среднего квадрата. Спасибо, что представили его простым способом. –

Смежные вопросы