आपको यह पता लगाना चाहिए कि आधार कार्यों की संख्या के लिए सबसे अच्छा मूल्य निर्धारित करने से संबंधित हैं - यानी पुनरावृत्तियों - यानी योजक मॉडल में पेड़ों की संख्या। मैं यह नहीं बता सकता कि ये क्या हैं, लेकिन यहाँ मेरा सबसे अच्छा अनुमान है और शायद कोई और टिप्पणी कर सकता है।
मैनुअल से निम्नलिखित लें:
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
पुनरावृत्तियों की संख्या ( Iter
) 3000 है, जो कि बनाए जाने वाले पेड़ों की संख्या है (1 से 3000 हालांकि हर एक को नहीं दिखाया गया है)। पूरी प्रक्रिया को 5 बार दोहराया जाता है क्योंकि हमने cv.folds = 5 का चयन किया है।
StepSize
सिकुड़न या सीखने की दर चयनित है (0.005 यहाँ)।
मेरा मानना है कि Improve
दूसरे पेड़ को जोड़कर डिवोर्स (हानि फ़ंक्शन) में कमी की जाती है और आउट-ऑफ-बैग (OOB) रिकॉर्ड का उपयोग करके गणना की जाती है (ध्यान दें कि यह गणना नहीं की जाएगी यदि bag.fraction <1 नहीं है)।
फिर प्रत्येक पुनरावृत्ति के लिए, TrainDeviance ValidDeviance
प्रशिक्षण डेटा पर नुकसान फ़ंक्शन का मान है और डेटा (एक होल्ड आउट सेट) को दबाए रखें। ValidDeviance की गणना नहीं की जाएगी यदि train.fraction
<1 नहीं है।
आप को देखा है यह जो पेड़ों की इष्टतम संख्या का निर्धारण करने के लिए तरीके के 3 प्रकार वर्णन करता है?