Bedeutung der Ausgabebegriffe im gbm-Paket?

15

Ich benutze das gbm-Paket zur Klassifizierung. Wie erwartet ist das Ergebnis gut. Aber ich versuche die Ausgabe des Klassifikators zu verstehen. Die Ausgabe enthält fünf Begriffe.

`Iter   TrainDeviance   ValidDeviance   StepSize   Improve`

Könnte jemand die Bedeutung jeden Begriff, vor allem die Bedeutung erklärt zu verbessern .

Yoanh27
quelle

Antworten:

11

Sie sollten feststellen, dass diese mit der Ermittlung des besten Werts für die Anzahl der Basisfunktionen - dh Iterationen - dh Anzahl der Bäume im additiven Modell zusammenhängen. Ich kann keine Dokumentation finden, die genau beschreibt, was das ist, aber hier ist meine beste Vermutung und vielleicht kann jemand anderes einen Kommentar abgeben.

Nimm folgendes aus dem Handbuch:

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

Die Anzahl der Iterationen ( Iter) beträgt 3000. Dies ist die Anzahl der Bäume, die zum Bauen ausgewählt wurden (1 bis 3000, obwohl nicht jeder angezeigt wird). Der gesamte Vorgang wird übrigens fünfmal wiederholt, da wir cv.folds = 5 gewählt haben.

StepSize ist die gewählte Schrumpfung oder Lernrate (hier 0,005).

Ich glaube, das Improveist die Verringerung der Abweichung (Verlustfunktion) durch Hinzufügen eines weiteren Baums und wird anhand der Out-of-Bag-Datensätze (OOB) berechnet (beachten Sie, dass dies nicht berechnet wird, wenn bag.fraction nicht <1 ist).

Dann ist für jede Iteration TrainDeviance ValidDevianceder Wert der Verlustfunktion für die Trainingsdaten und Haltedaten (ein einzelner Haltesatz). Die ValidDeviance wird nicht berechnet, wenn train.fractionnicht <1 ist.

Kennen Sie schon das zur Bestimmung der optimalen Anzahl von Bäumen , die beschreibt die drei Arten von Methoden?

B_Miner
quelle