Machine Learning --- Boosting & AdaBoost & Bootstrap

一、Boosting基本思想

思想很朴素,“三个臭皮匠顶个诸葛亮”,由若干个弱分类器可组合成强分类器,通过调整样本的权重(概率)来迭代训练弱分类器(如decision tree),最后形成性能优异的强分类器(如SVM)。主要分为两个步骤:1.改变训练样本的权重分布;2.将弱分类器组合起来。算法内容如下:

二、AdaBoost(多个弱分类器的线性组合)

在Boosting思想下,AdaBoost算法诞生了(具体化了权重分配与弱分类器组合),算法内容很简单如下:

image

图例如下:

imageimageimage

image

image

训练误差分析:

弱分类器的错误率(因为弱分类器总比随机猜测好,随机猜测错误率0.5):

image

则训练误差(训练误差随循环次数T指数下降):

因此权重更新公式化简为:分错时Dt+1=Dt/(2ε)  分对时Dt+1=Dt/(2(1-ε))

当训练次数T很大时通常也不会过拟合,下图采用决策树C4.5做Boosting:

image

三、Bootstrap自助法(有放回采样,类似大数定理,用来估计分布的方差/期望)

Bootstrap是重采样技术的一种,重采样除了Bootstrap法还有刀切法(jackknife)。Bootstrap用来计算任意分布的标准误差(或方差)、偏差和置信区间,是一种基于数据的模拟方法。基本思想:利用样本数据计算统计量和估计样本分布。通过从原始数据X1~n进行b次有放回采样n个数据,得到bootstrap样本Xb1~n 。在一个bootstrap样本中不包含某个原始样本的概率为:

image

从T的分布中进行b次Bootstrap重采样,当b无穷大时,bootstrap样本均值无限逼近该分布的期望E(T),同样可用bootstrap样本的方差近似分布的方差V(T)。

例:求均值

X=(3.12, 0, 1.57, 19.67, 0.22, 2.2),bootstrap为:

X1=(1.57, 0.22, 19.67, 0, 0.22, 3.12),X2=(0, 2.2, 2.2, 2.2, 19.67, 1.57),X3=(0.22, 3.12, 19.67, 3.12, 2.2, 0.22)

mean(X)=4.46≈mean(mean(X1)+mean(X2)+mean(X3))=4.4

原文地址:https://www.cnblogs.com/jizhiyuan/p/3423050.html