【机器学习】boosting集成学习GBDT

一、什么是集成学习:

1、集成学习的含义
集成学习:指构建多个分类器(弱分类器)对数据集进行预测,然后用某种策略将多个分类器预测的结果集成起来,作为最终预测结果。它要求每个弱分类器具备一定的“准确性”,分类器之间具备“差异性”。
2、集成学习的种类
集成学习根据各个弱分类器之间有无依赖关系,分为Boosting和Bagging两大流派:
(1)Boosting流派,各分类器之间有依赖关系,必须串行,比如Adaboost、GBDT(Gradient Boosting Decision Tree)、Xgboost
(2)Bagging流派,各分类器之间没有依赖关系,可各自并行,比如随机森林(Random Forest)

二、GBDT

1、GBDT的原理
GBDT需要将多棵树的得分累加得到最终的预测得分,且每一次迭代,都在现有树的基础上,增加一棵树去拟合前面树的预测结果与真实值之间的残差。也就是说,每一个弱分类器都将上一个弱分类器的残差,作为目标函数,去拟合。GBDT采用CART二叉树树进行分裂。
2、例子
假定训练集只有4个人:A,B,C,D,他们的年龄分别是14,16,24,26。其中A、B分别是高一和高三学生;C,D分别是应届毕业生和工作两年的员工。很简单,先随便用一个年龄比如20岁去拟合他们,然后根据实际情况不断调整。
(1)在第一棵树分枝里,14岁和16岁的样本,购物金额小于1k,被分到左边。24和26岁的样本,购物金额大于1k,被分到右边。(由于数据太少,我们限定叶子节点做多有两个,即每棵树都只有一个分枝,并且限定只学两棵树)。每拨用平均年龄15作为预测值。即如果来了一个13岁、购物金额小于1k,会被分到左边叶子节点;判断为15岁。
(2)计算预测值15与真实值(14,16)、预测值25与真实值(24,26)之间的残差;
(3)使用残差作为目标值,去训练下一刻树;
(4)在第一棵树分枝里,经常提问的有(-1,-1),经常回答的有(1,1);
(5)再去用每个节点的预测值和真实值计算残差。
(6)将所有树的预测值相加,即为最后的预测值。
现在A,B,C,D的预测值都和真实年龄一致了。简单理解:
A: 14岁高一学生,购物较少,经常问学长问题,预测年龄A = 15 – 1 = 14
B: 16岁高三学生,购物较少,经常被学弟问问题,预测年龄B = 15 + 1 = 16
C: 24岁应届毕业生,购物较多,经常问师兄问题,预测年龄C = 25 – 1 = 24
D: 26岁工作两年员工,购物较多,经常被师弟问问题,预测年龄D = 25 + 1 = 26
【机器学习】boosting集成学习GBDT_第1张图片

参考文献:
通俗理解kaggle比赛大杀器xgboost:https://blog.csdn.net/v_JULY_v/article/details/81410574

你可能感兴趣的:(机器学习)