机器学习笔记03 -- GBDT回归、二分类、多分类问题

一、GBDT回归

1 偏差方差,过拟合欠拟合

偏差bias:是用所有可能的训练数据集训练出的所有模型的输出的平均值与真实模型的输出值之间的差异。
方差Variance:是不同的训练数据集训练出的模型输出值之间的差异。

想要结果偏差小,就要让模型复杂,参数多,但这样模型的学习能力会过强,导致方差大,在测试集上表现差,表现为过拟合
想要结果方差小,就要让模型简单,参数少,但这样会导致模型学习能力弱,导致偏差大,即表现为欠拟合

对于Bagging,投票输出或取均值输出可以减小方差,所以基模型可以取偏差小的,复杂的。过拟合->正常
对于Boosting,是不断的减小偏差,所以基模型可以取方差小的,简单的。欠拟合->正常

2 回归树建立过程

  1. 首先给出最初的弱学习器,它只有一个节点,所以直接用loss对w求导,找出导数为0对应得w,就是这个结点的权重,在loss为平方误差时,其实就是所有标签的平均值。
  2. 建立第一颗回归树,由于目标是使得每次的偏差逐步减小,即新加入的决策树的叶子节点权值w与残差(也就是负梯度)(y - Ft-1(x))之间的差值最小,所以以残差为目标值,训练本弱分类器。首先对节点考虑从哪里开始划分,依据是从该处划分使得损失函数值减小得最多,并且这个减少量要大于0,具体做法为:对每个特征的每个可能取值,假设从该点分裂,计算左右子节点的损失函数值,(即首先用损失函数对w求导,得到最优的w,然后代入损失函数得到最优损失函数),比较损失函数减小值,取最大的作为划分点。最后把刚刚的划分所对应的节点权值w计算。更新总的强学习器时,记得把新弱分类器乘上学习率再相加。
  3. 重复此步骤,直到到达设置的基分类器数目。

3 注意:

记住是用负梯度近似残差,每个决策树都是用负梯度来拟合树模型,从而扩大了损失函数的使用范围。

二、GBDT二分类

1 和回归的区别

损失函数采用:逻辑回归的对数损失函数
在这里插入图片描述

在这里插入图片描述
求使得J取最小值的theta值,用梯度下降去求。

除了有损失函数引起的负梯度计算不同,和叶子节点权值的计算公式不同,(计算公式推导的思路类似,只是由于回归采用均方误差损失函数,损失函数对w求导后可以直接推算出w;而二分类采用对数损失函数,必须泰勒展开做近似才能求导推出w)其他的和回归完全类似。

在GBDT二分类中,最后的分类概率为:
在这里插入图片描述
F(x)为最后的强分类器

最初的初始化弱分类器为
在这里插入图片描述
负梯度(近似残差)为:把F(x)代入h(x)中的x再计算。
在这里插入图片描述

三、GBDT多分类

1 多分类与二分类的区别

softmax回归的对数损失函数

softmax回归:
机器学习笔记03 -- GBDT回归、二分类、多分类问题_第1张图片
softmax回归的对数损失函数:
机器学习笔记03 -- GBDT回归、二分类、多分类问题_第2张图片

多分类问题的输出(其实和二分类没区别)

机器学习笔记03 -- GBDT回归、二分类、多分类问题_第3张图片

重点区别!

每轮训练k颗树去拟合softmax每个分支模型的负梯度,即每一类其实都对应了一个强分类器,即一组弱分类决策树,所以上式中有F1~Fk,k个函数。
机器学习笔记03 -- GBDT回归、二分类、多分类问题_第4张图片
loss等于在yi向量中对应量为1时的乘积值。
loss的负梯度也是真实值和预测值的差,和二分类一样。

实质

实质上就是把二分类的每次加1棵树,变成多分类的每次加k颗树,二分类加1颗树的时候用1组负梯度来拟合,多分类加k颗树的时候用k组负梯度来拟合。

你可能感兴趣的:(机器学习,机器学习,cart分类回归树,逻辑回归,分类算法)