adboost方法(转载)

时间:2021-12-03 16:55:34

转载链接:http://blog.csdn.net/google19890102/article/details/46376603

一、集成方法(Ensemble Method)

    集成方法主要包括Bagging和Boosting两种方法,随机森林算法是基于Bagging思想的机器学习算法,在Bagging方法中,主要通过对训练数据集进行随机采样,以重新组合成不同的数据集,利用弱学习算法对不同的新数据集进行学习,得到一系列的预测结果,对这些预测结果做平均或者投票做出最终的预测。AdaBoost算法和GBDT(Gradient Boost Decision Tree,梯度提升决策树)算法是基于Boosting思想的机器学习算法。在Boosting思想中是通过对样本进行不同的赋值,对错误学习的样本的权重设置的较大,这样,在后续的学习中集中处理难学的样本,最终得到一系列的预测结果,每个预测结果有一个权重,较大的权重表示该预测效果较好,详细的思想可见博文“简单易学的机器学习算法——集成方法(Ensemble Method)”。

二、AdaBoost算法思想

    AdaBoost算法是基于Boosting思想的机器学习算法,其中AdaBoost是Adaptive Boosting的缩写,AdaBoost是一种迭代型的算法,其核心思想是针对同一个训练集训练不同的学习算法,即弱学习算法,然后将这些弱学习算法集合起来,构造一个更强的最终学习算法。
    为了构造出一个强的学习算法,首先需要选定一个弱学习算法,并利用同一个训练集不断训练弱学习算法,以提升弱学习算法的性能。在AdaBoost算法中,有两个权重,第一个数训练集中每个样本有一个权重,称为样本权重,用向量adboost方法(转载)表示;另一个是每一个弱学习算法具有一个权重,用向量adboost方法(转载)表示。假设有adboost方法(转载)个样本的训练集adboost方法(转载),初始时,设定每个样本的权重是相等的,即adboost方法(转载),利用第一个弱学习算法adboost方法(转载)对其进行学习,学习完成后进行错误率adboost方法(转载)的统计:
 
adboost方法(转载)
 
其中,adboost方法(转载)表示被错误分类的样本数目,adboost方法(转载)表示所有样本的数目。这样便可以利用错误率adboost方法(转载)计算弱学习算法adboost方法(转载)的权重adboost方法(转载)
 
adboost方法(转载)
 
    在第一次学习完成后,需要重新调整样本的权重,以使得在第一分类中被错分的样本的权重,使得在接下来的学习中可以重点对其进行学习:
 
adboost方法(转载)
 
其中,adboost方法(转载)表示对第adboost方法(转载)个样本训练正确,adboost方法(转载)表示对第adboost方法(转载)个样本训练错误。adboost方法(转载)是一个归一化因子:
 
adboost方法(转载)
 
这样进行第二次的学习,当学习adboost方法(转载)轮后,得到了adboost方法(转载)个弱学习算法adboost方法(转载)及其权重adboost方法(转载)。对新的分类数据,分别计算adboost方法(转载)个弱分类器的输出adboost方法(转载),最终的AdaBoost算法的输出结果为:
 
adboost方法(转载)
 
其中,adboost方法(转载)是符号函数。具体过程可见下图所示:
adboost方法(转载)
(图片来自参考文件1)
 

三、AdaBoost算法流程

    上述为AdaBoost的基本原理,下面给出AdaBoost算法的流程:
adboost方法(转载)
(来自参考文献2)
 
四、实际的例子
   AdaBoost算法是一种具有很高精度的分类器,其实AdaBoost算法提供的是一种框架,在这种框架下,我们可以使用不同的弱分类器,通过AdaBoost框架构建出强分类器。下面我们使用单层决策树构建一个分类器处理如下的分类问题:
adboost方法(转载)
决策树算法主要有ID3,C4.5和CART,其中ID3和C4.5主要用于分类,CART可以解决回归问题。ID3算法可见博文“简单易学的机器学习算法——决策树之ID3算法”,CART算法可见博文“简单易学的机器学习算法——CART之回归树”。对于单层决策树是无法求解上面这样的问题的。
(后面有Python相关代码)
其他链接:
与一个具体的例子和详细的证明:http://blog.51cto.com/baidutech/743809