赞
踩
以决策树为基函数的提升方法称为提升树。其中,分类问题采用二叉分类树,回归问题采用二叉回归树。sklearn中的提升树采用的是CART树。模型可以表示为决策树的加法模型:
其中,表示决策树,为决策树的参数,为树的个数。
提升树算法采用前向分步算法。首先,初始确定初始提升树为。第步的模型是
其中,为当前模型,通过经验风险极小化确定下一棵决策树的参数
由于树的线性组合能很好地拟合训练数据,即使数据中的输入与输出关系很复杂也是如此,所以提升树是一个高功能的学习算法。
不同提升树算法的区别在于所采用的损失函数不同。例如,分类树采用指数损失函数;回归树采用平方误差损失函数;一般决策树采用一般损失函数。
在之前的文章中已经介绍过二叉回归树,在这里不在进行赘述。对于回归问题,提升树采用平方误差损失函数,即
带入第步得到的提升树模型,得到
其中,为训练数据真实值与当前模型取值的差,即拟合数据的残差。要是上述的损失函数最小,只需训练的模型更好地拟合当前模型的残差即可。
回归问题的提升树算法可描述如下:
输入:训练数据集D
输出:提升树
训练过程:
① 初始化
② 对
(a)计算残差
(b)拟合残差,学习一个二叉回归树,得到
(c)更新
③ 得到回归问题提升树
对于二分类问题,只需要将AdaBoost算法中的基学习器限制为二类分类树(只有一个根结点和两个叶子结点,高度为2的二叉树),基分类器的权重全部置为1即可。训练过程中用指数损失函数来调整样本数据的权重,从而让每个基分类器学习到不同的内容。
首先介绍梯度下降法的整体思想。假设你现在站在某个山峰的顶峰,在天黑前要到达山底,在不考虑安全性的基础上,如何下山最快?
最快的方法是:以当前所在的位置为基准点,按照该点最陡峭的方向向山底前进。走一段距离后,在重新以当前点为基准点,重复上述操作,知道到底山底(最低点)。在这个过程中,需要不停地去重新定位最陡峭的方向,才不会限于局部最优。
在下山过程中会面临两个问题:
当前位置的梯度表示为,取步长,则下一步所在的位置如下:
总结:梯度下降用来求某个函数取最小值时,自变量对应的取值。
在机器学习任务中,梯度下降一般运用在通过损失函数最小化求解模型参数中。使用梯度下降算法求解最优模型参数的过程如下:
(1)确定当前位置处的损失函数的梯度;
(2)用步长乘以损失函数的梯度,得到当前位置下降的距离,即:;
(3)判断梯度下降的距离是否小于阈值,如果小于,则算法终止,当前的即为求得的最优参数;否则进入步骤(4);
(4)更新,其更新表达式为。更新后继续转入步骤(1)。
从泰勒公式的角度理解梯度下降:
(1)首先,给出迭代公式:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。