数据科学与R语言大数据玩转大数据

R 集成算法④ 梯度提升树

2018-01-18  本文已影响20人  柳叶刀与小鼠标

介绍

Boosting算法是在算法开始时,为每一个样本赋上一个相等的权重值,也就是说,最开始的时候,大家都是一样重要的。 在每一次训练中得到的模型,会使得数据点的估计有所差异,所以在每一步结束后,我们需要对权重值进行处理,而处理的方式就是通过增加错分点的权重,这样使得某些点如果老是被分错,那么就会被“严重关注”,也就被赋上一个很高的权重。 然后等进行了N次迭代,将会得到N个简单的基分类器(basic learner),最后将它们组合起来,可以对它们进行加权(错误率越大的基分类器权重值越小,错误率越小的基分类器权重值越大)、或者让它们进行投票等得到一个最终的模型。

原理

特点

  • GBM优点:
    • 可以和随机森林这样的高性能算法竞争
    • 能保持可靠的预测表现,预测结果比简单模型差的情况非常罕见
    • 常常被kaggle等竞赛的获胜者使用
    • 能处理缺失数据
    • 无需进行特征缩放
    • 能处理的因子水平比随机森林高
    • 没有已知的对特征变量数目的限制。

参数

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)

上一篇下一篇

猜你喜欢

热点阅读