Arti istilah output dalam paket gbm?


15

Saya menggunakan paket gbm untuk klasifikasi. Seperti yang diharapkan, hasilnya bagus. Tetapi saya mencoba memahami output dari classifier. Ada lima istilah dalam output.

`Iter   TrainDeviance   ValidDeviance   StepSize   Improve`

Adakah yang bisa menjelaskan arti setiap istilah, terutama arti Meningkatkan .

Jawaban:


11

Anda harus menemukan ini terkait dengan menentukan nilai terbaik untuk jumlah fungsi dasar - yaitu iterasi - yaitu jumlah pohon dalam model aditif. Saya tidak dapat menemukan dokumentasi yang menjelaskan apa sebenarnya ini, tetapi inilah tebakan terbaik saya dan mungkin orang lain dapat berkomentar.

Ambil yang berikut dari 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

Jumlah iterasi ( Iter) adalah 3000, yang merupakan jumlah pohon yang dipilih untuk dibangun (1 hingga 3000 meskipun tidak semua ditunjukkan). Proses penuh diulang 5 kali karena kami memilih cv.folds = 5.

StepSize adalah tingkat penyusutan atau pembelajaran yang dipilih (0,005 di sini).

Saya percaya itu Improveadalah pengurangan penyimpangan (fungsi kerugian) dengan menambahkan pohon lain dan dihitung menggunakan catatan out-of-bag (OOB) (perhatikan itu tidak akan dihitung jika bag.fraksi bukan <1).

Kemudian untuk setiap iterasi, TrainDeviance ValidDevianceadalah nilai dari fungsi kerugian pada data pelatihan dan menyimpan data (satu set bertahan). ValidDeviance tidak akan dihitung jikatrain.fraction bukan <1.

Pernahkah Anda melihat ini yang menggambarkan 3 jenis metode untuk menentukan jumlah pohon yang optimal?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.