Adaboost中的提高错误样本数量来降低错误率

首先来介绍一下adaboost

Boosting 是一族可将弱学习器升为强学习器算法。这类算法的工作机制类似:

(1)先从初始训练集训练出一个基学习器

(2)在根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练 样本在后续得到最大的关注。

(3)然后基于调整后的样本分布来训练下一个基学习器;

(3)如此重复进行,直至基学习器数目达到实现指定的值 T 为止。

(4 )再将这 T 个基学习器进行加权结合得到集成学习器。

Boosting 算法的著名代表就是 Adaboost 算法。

因此,对于 Boosting 算法,存在两个问题:

1. 在每一轮中如何调整训练集,使训练的弱分类器得以进行;(调整样本权值)

2. 如何将各个弱分类器联合起来形成强分类器。 (调整模型权值)

AdaBoost(adaptive Boosting)自适应boosting,AdaBoost 把多个不同的弱分类算法,用一种非随机的方式组合起来,表现出惊人的性 能。

1,可以使用各种方法构建子分类器,Adaboost 算法提供的是框架;

2,子分类器容易构造;

3,速度快,且基本不用调参数;

4,泛化错误率低。

adaboost的使用步骤:

(1)先从初始训练集训练出一个基学习器

(2)在根据基学习器的表现对训练样本分布进行调整,提高错误样本数量,提高正确分类器的权重,然后进行下一次的计算。如此重复进行,直至基学习器数目达到实现指定的值 T 为止。

(3 )再将这 T 个基学习器进行加权结合得到集成学习器。

重点:为什么要提高错误样本的个数来降低错误率呢?

adaboost之所以每次训练后,将分类器错误的权值加大,是因为如果加大后,下一次计算的错误率就会加大,这样,在我们最后一步分类器的整合的时候,它整合原理就是加大误差率小的权重,减少误差率大的权重,这样误差率大的在整体的分类器中占得比率就下降了,整体的误差就下降了。

具体点:

1.错误率x=未正确分类的样本/所有样本;

2.使用权重系数alpha计算公式:a=1/2log(1-e/e),其中e就是错误的样本, 这个函数式递减函数,即e越大a越小,

3.整合公式:H(x)=sign(sum(a * h(x)));(可以查一下公式)

所以在最后一次的分类器的整合的时候,对应的错误的分类器所占得比率就会降低,而整体的错误率就会降低。adaboost的原理就是基于boosting 之上将多个弱分类器整合一起成为强分类器,其实多个弱学习器通过组合也可以成为强学习器。

这里提高错误点的权值,当下一次分类器再次分错了这些点之后,会提高整体的错误率,这样就导致 a 变的很小,最终导致这个分类器在整个混合分类器的权值变低。

也就是说,这个算法让优秀的分类器占整体的权值更高,而错误率高的分类器权值更低。整体的错误率就高了。

猜你喜欢

转载自blog.csdn.net/Baron_ND/article/details/82250572