15 votos

Significado de salida términos en gbm paquete?

Yo estoy usando el gbm paquete para la clasificación. Como era de esperar, el resultado es bueno. Pero estoy tratando de entender la salida del clasificador. Hay cinco términos de la producción.

`Iter   TrainDeviance   ValidDeviance   StepSize   Improve`

Podría alguien explicar el significado de cada término, especialmente en el sentido de Mejorar.

1voto

Psycho Bob Puntos 661

Usted debe encontrar estas están relacionadas a determinar el mejor valor para el número de funciones de base - es decir, iteraciones - es decir, el número de árboles en el modelo aditivo. No puedo encontrar la documentación que describe exactamente lo que son, pero aquí está mi mejor conjetura y tal vez alguien lo puede comentar.

Tome las siguientes del manual:

library(gbm)
# A least squares regression example
# create some data
N <- 1000
X1 <- runif(N)
X2 <- 2*runif(N)

X3 <- ordered(sample(letters[1:4],N,replace=TRUE),levels=letters[4:1])
X4 <- factor(sample(letters[1:6],N,replace=TRUE))
X5 <- factor(sample(letters[1:3],N,replace=TRUE))
X6 <- 3*runif(N)
mu <- c(-1,0,1,2)[as.numeric(X3)]
SNR <- 10 # signal-to-noise ratio
Y <- X1**1.5 + 2 * (X2**.5) + mu
sigma <- sqrt(var(Y)/SNR)
Y <- Y + rnorm(N,0,sigma)
# introduce some missing values
X1[sample(1:N,size=500)] <- NA
X4[sample(1:N,size=300)] <- NA
data <- data.frame(Y=Y,X1=X1,X2=X2,X3=X3,X4=X4,X5=X5,X6=X6)
# fit initial model
gbm1 <- gbm(Y~X1+X2+X3+X4+X5+X6, # formula
data=data, # dataset
var.monotone=c(0,0,0,0,0,0), # -1: monotone decrease,
# +1: monotone increase,
# 0: no monotone restrictions
distribution="gaussian", # bernoulli, adaboost, gaussian,
# poisson, coxph, and quantile available
n.trees=3000, # number of trees
shrinkage=0.005, # shrinkage or learning rate,
# 0.001 to 0.1 usually work
interaction.depth=3, # 1: additive model, 2: two-way interactions, etc.
bag.fraction = 0.5, # subsampling fraction, 0.5 is probably best
train.fraction = 0.5, # fraction of data for training,
# first train.fraction*N used for training
n.minobsinnode = 10, # minimum total weight needed in each node
cv.folds = 5, # do 5-fold cross-validation
keep.data=TRUE, # keep a copy of the dataset with the object
verbose=TRUE) # print out progress

El número de iteraciones (Iter) es de 3000, que es el número de árboles seleccionados para ser construido (de 1 a 3000 aunque no cada uno se muestra). El proceso completo se repite 5 veces por el camino, porque hemos seleccionado cv.pliegues=5.

StepSize es la contracción o la tasa de aprendizaje seleccionado (0.005 aquí).

Creo que Improve es la reducción en la desviación (pérdida de función) mediante la adición de otro árbol, y se calcula mediante la hacia fuera-de-bolsa (OOB) registros (nota no va a ser calculado si la bolsa.fracción no es <1).

A continuación, para cada iteración, el TrainDeviance ValidDeviance es el valor de la función de pérdida en los datos de entrenamiento y mantener los datos (un solo fuera de juego). El ValidDeviance no ser calculado si train.fraction no es <1.

Has visto este que describe los 3 tipos de métodos para determinar el número óptimo de los árboles?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X