Boosting算法是在算法开始时,为每一个样本赋上一个相等的权重值,也就是说,最开始的时候,大家都是一样重要的。 在每一次训练中得到的模型,会使得数据点的估计有所差异,所以在每一步结束后,我们需要对权重值进行处理,而处理的方式就是通过增加错分点的权重,这样使得某些点如果老是被分错,那么就会被“严重关注”,也就被赋上一个很高的权重。 然后等进行了N次迭代,将会得到N个简单的基分类器(basic learner),最后将它们组合起来,可以对它们进行加权(错误率越大的基分类器权重值越小,错误率越小的基分类器权重值越大)、或者让它们进行投票等得到一个最终的模型。
setwd("E:\\Rwork")
library(gbm)
set.seed(1234)
data = iris
index <- sample(nrow(iris),0.75*nrow(iris))
train_data <- iris[index,]
test_data <- iris[-index,]
gbm1 <- gbm(Species~., distribution = "multinomial",
data = train_data, n.trees = 2000, shrinkage = 0.01)
gbm1
prediction <- predict.gbm(gbm1, test_data, type = "response", n.trees = 1000)
summary.gbm(gbm1)