机器学习元算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/newmemory/article/details/79996556

元算法将不同的分类器组合起来,具体使用有多种形式,可以是不同算法的集成,也可以是不同算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成。

一、bagging:基于数据随机重抽样的分类器构建算法

自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S次后得到S个新数据集的一种技术。新书记集和原始数据集大小相等。每个数据集都是通过在原始数据集中随机选择一个样本来进行替换得到的。替换意味着可以多次地选择同一样本,这一性质就允许新数据集中可以有重复的值,而原始数据集中某些值在新集合中则不出现。
在S个数据集建好之后,将某个学习算法分别作用于每个数据集就得到了S个分类器。当对新数据进行分类时,可以应用这S个分类器进行分类,选择分类器投票结果中最多的类别作为最后的分类结果。随机森林是比较常见的bagging方法。

二、boosting

boosting是一种与bagging很类似的技术。boosting通过集中关注被已有分类器错分的那些数据来获得新的分类器。由于boosting分类的结果是基于所有分类器的加权求和结果的,因此boosting与bagging不太一样。bagging中分类器的权重是相等的,而boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

三、AdaBoost

AdaBoost是boosting方法的一个最流行的版本。弱分类器中的是指分类器的性能比随机猜测要略好,但也不会好太多,即在二分类的情况下弱分类器的错误率会高于50%,而“强”分类器的错误率将会低很多,这是AdaBoost算法的理论问题来源。

AdaBoost的运行过程:

训练数据中的每个样本,并赋予一个权重,这些权重构成了向量D。一开始这些权重都初始化为相等值。首先在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后再同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本的权重就会提高。为了从所有的弱分类器中得到最终的分类结果,AdaBoost对每个分类器都分配了一个权重alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。错误率 = 未正确分类的样本数目 / 所有样本数目

猜你喜欢

转载自blog.csdn.net/newmemory/article/details/79996556