【统计学习】Boosting族算法
和bagging不同的是,分类器是串行的。必须先生成第一个再生成第二个。。。
D2解决错误
D3解决争端
boosting分类器比bagging少得多
Stacking
用原始数据集训练得到k个分类器,然后用结果二次训练得到分类器的权重。
Adboost
Addictive Model
AdaBoost是最著名的Boosting族算法。开始时,所有样本的权重相同,训练得到第一个基分类器。从第二轮开始,每轮开始前都先根据上一轮基分类器的分类效果调整每个样本的权重,上一轮分错的样本权重提高,分对的样本权重降低。之后根据新得到样本的权重指导本轮中的基分类器训练,即在考虑样本不同权重的情况下得到本轮错误率最低的基分类器。重复以上步骤直至训练到约定的轮数结束,每一轮训练得到一个基分类器。
可以想象到,远离边界(超平面)的样本点总是分类正确,而分类边界附近的样本点总是有大概率被弱分类器(基分类器)分错,所以权值会变高,即边界附近的样本点会在分类时得到更多的重视。
符号 | 含义 |
---|---|
$D=\{(\vec {x_i)},y_i\,\in[1,m]\}$ | 训练集,共m个样本 |
$T$ | 训练轮数 |
$D_t(x)$ | 第t轮样本权重分布 |
$h_t$ | 第t轮得到的基分类器 |
$\alpha_t$ | 第t轮得到的基分类器的权重 |
$\epsilon_t$ | 第t轮$h_t$的错误率 |
$P_A(D)$ | 强分类器A在数据集D上的最终准确率 |
第一轮完成
接下来第二轮
GBDT(梯度提升树)
GBDT即梯度提升树,提升方法依然采用的是加法模型与前向分布算法。以决策树为基函数的提升方法称为提升树。对分类问题决策树是二叉分类树,对回归问题决策树是二叉决策树。例如前文中的例子中所使用的决策树桩即为一个根节点直接连接两个叶节点的简单决策树。
GBDT与Adboost最主要的区别在于两者如何识别模型的问题。Adaboost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。GBDT通过负梯度来识别问题,通过计算负梯度来改进模型。