目录



一:CART回归树

问题一:GBDT为什么用CART回归树,而不用CART分类树?

答:因为GBDT每次迭代要拟合的是梯度值,是连续值所以要⽤回归树

问题二:CART回归树划分最佳的划分点的判断标准是什么?

答:回归树因为样本标签是连续数值,所以再使⽤熵之类的指标 不再合适,取⽽代之的是平方误差,它能很好的评判拟合程度。

1:回归树生成算法:

(十一)机器学习---集成学习GBDT算法详解_损失函数

案例分析:

现在给定下表,要求根据身高和食物,预测体重。

身高

食物

体重

159

800

48.5

163

900

56.9

177

1200

87.3

185

1500

76.5

1:首先根据身高进行划分,一次计算损失值:

以身高159计算,划分成两类:一类的预测值是 48.5,另一类的预测值是(56.9+87.3+76.5)/3 = 73.6,所以如果现在预测身高156的人的体重,我会返回48.5,如果现在预测身高178的体重,我会返回73.6,则上半部分损失值 = (48.5-48.5)的平方,下半部分损失值=(56.9-73.6)的平方 + (87.3-73.6)的平方+ (73.6 - 76.5)的平方。

2:然后根据食物进行划分,再次计算损失值。

3:在上面两步的损失值中,肯定有一个最小的,我们就把这个最小的条件,作为划分第一次的节点。

如果假设以身高163进行划分,大于163的是一类,小于163的是一类,则划分如下图:小于163,我们预测52.7,大于163,预测81.9。

4: 然后再在两个划分完的子集中,继续划分。

(十一)机器学习---集成学习GBDT算法详解_损失函数_02

算法描述:


1:选取每个特征的每个取值,根据该值对样本进行划分成两部分。
2:分别计算每部分损失值,选取损失值最小的特征和对应的取值作为划分点,进行划分。
3:对于每部分,再用同样的方法进行划分。


二:提升树:

1:提升树介绍:


  • 1:提升树采用向前分步算法,每次得到一棵决策树,最终将决策树累加起来
  • 2: 本次模型 = 上次模型 + 当前的树
  • 3:不同的问题,我的损失函数是不同的:平方差损失(回归问题),指数损失函数(分类问题)
    (十一)机器学习---集成学习GBDT算法详解_拟合_03
    (十一)机器学习---集成学习GBDT算法详解_损失函数_04
    经过推导发现:当前的损失值 = 真实值与上次模型的差值再减去当前树的值的平方。

2:提升树的模拟案例:

(十一)机器学习---集成学习GBDT算法详解_拟合_05

(十一)机器学习---集成学习GBDT算法详解_回归树_06

(十一)机器学习---集成学习GBDT算法详解_拟合_07

(十一)机器学习---集成学习GBDT算法详解_回归树_08

(十一)机器学习---集成学习GBDT算法详解_回归树_09

3:提升树的自我理解:


1:首先会根据切分点,计算每个切分点的损失值,得到损失最小的切分点。
2:根据切分点,构建我们的初始的回归树,并且计算回归树的平方误差损失。
3:如果平方误差损失达到我们的条件,则停止。否则计算预测值和真实值差值(残差值)。
4:根据残差值构建回归树,直到平方误差损失,我们可以接受为止。


三:梯度提升:


  • 1:负梯度 = 残差:
  • 2: 损失函数对模型函数求偏导数,取负号。得到梯度。
  • 3:梯度表示的意思是啥?损失函数下降最快的方向。
    (十一)机器学习---集成学习GBDT算法详解_损失函数_10

四:GBDT算法:

  • 1:与回归树唯一的区别就是使用的是负梯度。

1:GBDT算法分析:

(十一)机器学习---集成学习GBDT算法详解_拟合_11