提升方法:
对于一个复杂的问题,将多个专家的判断进行适当的综合所得出的结果,要不其中任何一个专家单独判断要好。
基本概念:
强可学习和弱可学习:
在概率近似正确(Probably Approximately Correct,PAC)学习的框架中,一个概念(一个类别)如果存在一个多项式算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的;一个概念(一个类别)如果存在一个多项式算法能够学习它,学习的正确率仅仅比随机猜测略好,那么就称这个概念是弱可学习的,理论证明(Schapire)证明强可学习和弱可学习是等价的。即在PAC学习框架中,一个概念是强可学习的充要条件是这个概念是弱可学习的。
提升方法就是从弱学习方法出发,反复学习,得到一系列弱分类器(基本分类器),然后组合弱分类器构成一个强分类器。对提升方法而言,有两个问题需要解决:1、在每一轮如何改变训练数据的权值或概率分布;2、如何将弱分类器组合成强分类器。
AdaBoost的做法:
1、提升前一轮弱分类器错误分类样本的权重,降低正确分类样本的权重,从而使后一轮弱分类器更加关注误分类样本;
2、加权多数表决方法,加大分类误差率小的弱分类器的权重,使其在表决中去决定作用;
算法描述:
输入训练数据集:,输出最终分类器函数
(1)初始化数据权重:
(2)对于
2.1:使用具有权值分布的训练数据集学习,得到基本分类器:
2.2:计算分类误差:
2.3:计算的系数:
【分类误差越大,
对
分类器的权重越大】
2.4:更新数据集权重:,其中,
(3)组合弱分类器:,最终的分类器函数:
AdaBoost误差分析:
AdaBoost误差上界:
AdaBoost二分类误差上界:
推论:如果存在,对所有
有
,则:
前向分布算法:
考虑加法模型:,其中
为基函数,
为基函数参数,
为基函数系数,显然AdaBoost分类器:
是一个加法模型,在给定训练数据和损失函数
的条件下,学习加法模型
成为经验风险极小化即损失函数极小化问题:
。
通常上式是一个复杂的优化问题。前向分布算法的优化策略是:因为学习是一个加法模型,如果能够从先往后每一步只学习一个基函数及其系数,逐步逼近优化目标函数,那么就可以简化优化过程。
具体地,每一步只优化
下一次更新:
最终的加法模型:
GBDT的做法:
梯度提升树(Gradient Boost Decision Tree, GBDT),提升方法依然采用的是加法模型与前向分布算法。以决策树为基函数的提升方法称为提升树。GBDT与Adboost最主要的区别在于两者如何识别模型的问题。Adaboost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。GBDT通过负梯度来识别问题,通过计算负梯度来改进模型。
给定当前模型,优化参数:
,设损失函数
为平方和误差,则:
,记
,因此,对于回归问题,只需要简单拟合残差即可。
Xgboost的做法:
Xgboost 的全称是eXtreme Gradient Boosting,由华盛顿大学的陈天奇博士提出,在Kaggle的希格斯子信号识别竞赛中使用,因其出众的效率与较高的预测准确度而引起了广泛的关注。GBDT算法只利用了一阶的导数信息,Xgboost对损失函数做了二阶的泰勒展开,即,并在目标函数之外加入了正则项对整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合。
Xgboost目标损失函数:
其中,t表示第t轮,表示第t轮所生成的树模型,
表示正则项,
。