Adaboost, boosting 和bagging的比较

Adaboost 算法很有名,全称是adaptive boosting。 曾被称为数据挖掘十大算法之一。 davide lowe那一篇关于人脸识别的文章中就用到了这个算法。 现在总结一些这个算法。

Adaboost是一种基于boost思想的一种自适应的迭代式算法。 通过在同一个训练数据集上训练多个弱分类器(weak classifier), 然后把这一组弱分类器ensmble起来, 产生一个强分类器(strong classifier)。可以说是一个meta algorithms。

该算法的优点如下:

(1)  具有较低的泛化误差(low generalization)

(2)  改善了分类器的分类正确率

(3) 可以将这个算法配合多个分类算法使用。 例如, 我们可以选择C4.5, CART, SVM, 贝叶斯分类器, 或者decision stump等作为我们的弱分类器。

(4)容易coding

(5)不容易出现overfiting(过拟合)现象

缺点如下:

对outliers(异常点)非常的sensitive。  因为异常点容易分错, 会逐级影响后面的产生的弱分类器。

Adaboost每一轮迭代的时候都会训练一个新的弱分类器。 直至达到某个预定的足够小的错误率。  主要过程如下:

输入的训练样本数据集: N 个训练样本 其中xi表示输入样本的特征向量, yi表示样本的label, 取值为-1和1两类。

下面按照如下步骤迭代T次, 得到T个弱分类器。 最后按更新的权重进行叠加, 最终得到一个强分类器。 


并使用这个强分类器去对新的输入样本的特征向量计算出其对应的label。


训练步骤:

Adaboost, boosting 和bagging的比较_第1张图片


Adaboost的自适应在于:最开始, 所有的训练样本具有相同权重。  被前一个分类器分错的样本会被用于训练下一个分类器, 即提高这个分错的样本被选中进入下一个弱分类器选中的概率, 分对的样本被选中的概率会被降低。 Adaboost方法对于噪声数据和异常数据敏感。 Adaboos使用的弱分类器的分类效果只要比random guess(正确率为0.5)好可以了。 究竟正确率为多少, 不管, 只要大于0.5就好了。 最终, 我们会得到一个较好的模型。 对于错误率高于0.5的弱分类器也是有用的。  因为最终得到的多个弱分类器进行线性叠加的时候, 可以赋给它们系数, 同样也能提升分类效果。 

Adaboost, boosting 和bagging的比较_第2张图片

Adaboost是boosting思想的运用, 弱分类器可以是一个decision stump classifier。 一个decision stump 就是具有一个节点的决策树。 一个decision stump 一次对一个特征进行决策。 这个decision tree只做一次split, 所以是一个stump。

bagging: 也是machine learning领域的一个ensemble meta-algorithm, 这个算法能够降低variance, 并且可以避免过拟合(overfitting)。 bagging算法常常用于决策树算法(decision tree)。 bagging是用于model averaging 办法的一个特例。

对于分类问题, 有很多的emsemble methods, boosting是一个, 令一个方法就是bagging。 bagging就是从给定的原始样本集有放回的取样,我们做S次的有选择抽样, 没次抽样到和原始样本集大小相同的size, 注意, 这样我们就得到了S个新的, 和原始样本相同的size的样本集, 注意, 由于是有选择的采样, 所以新的样本集中可能有完全相同的样本。 我们用这S个 新的训练样本集分别训练S个单独的分类器。 当新来一个输入样本特征向量时候, 我们使用这S个分类器对这个样本分类,最后take majority vote, 确定这个样本的label。 

 Adaboost, boosting 和bagging的比较_第3张图片

注意bagging的训练样本集的选择是随机的。各轮训练样本集之间是独立的。 bagging的m个分类器的分类函数是并行生成的。 进行测试的时候采用的是投票机制。 boosting的各轮样本集的选择和前面各轮的学习结果有关, boosting的各个预测函数只能顺序生成的, 所以训练比较耗时间。 预测的时候采用的是weighted sum。  bagging可通过并行训练节省训练时间,bagging和boosting都可以提高分类的准确性。 大多数数据集中, boosting的准确率是比bagging高。

 




你可能感兴趣的:(Machine,Learning,综合)