AdaBoost

机器学习实战 第四周
AdaBoost
我的笔记是根据博客和视频来记录的。
一、集成方法
顾名思义,集成方法就是通过组合不同的的学习器来完成学习任务,将弱可学习分类器转换为强可学习分类器。集成方法主要包括Bagging和Boosting两种方法,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器。
1.Bagging
其主要思想为
(1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
(2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
(3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
流程图我引用了博客里的 示图
AdaBoost_第1张图片
2.Boosting
主要思路是采用重赋权(re-weighting)法迭代地训练基分类器,思想:
(1)每一轮的训练数据样本赋予一个权重,并且每一轮样本的权值分布依赖上一轮的分类结果。
(2)基分类器之间采用序列式的线性加权方式进行组合。
AdaBoost_第2张图片
二、AdaBoost
AdaBoost算法是基于Boosting思想的机器学习算法,是adaptive boosting(自适应boosting)的缩写
算法步骤如下(博客讲解较为详细我这里引用):
1、计算样本权重

训练数据中的每个样本,赋予其权重,即样本权重,用向量D表示,这些权重都初始化成相等值。假设有n个样本的训练集:
在这里插入图片描述

设定每个样本的权重都是相等的,即1/n。

2、计算错误率

利用第一个弱学习算法h1对其进行学习,学习完成后进行错误率ε的统计:
AdaBoost_第3张图片

3、计算弱学习算法权重

弱学习算法也有一个权重,用向量α表示,利用错误率计算权重α:
在这里插入图片描述

4、更新样本权重

在第一次学习完成后,需要重新调整样本的权重,以使得在第一分类中被错分的样本的权重,在接下来的学习中可以重点对其进行学习:

在这里插入图片描述
其中,h_t(x_i) = y_i表示对第i个样本训练正确,不等于则表示分类错误。Z_t是一个归一化因子:

在这里插入图片描述
这个公式我们可以继续化简,将两个公式进行合并,化简如下:

在这里插入图片描述
5、AdaBoost算法

重复进行学习,这样经过t轮的学习后,就会得到t个弱学习算法、权重、弱分类器的输出以及最终的AdaBoost算法的输出,分别如下:
AdaBoost_第4张图片

其中,sign(x)是符号函数。

大家可以结合视频的讲解,参考一下这张图可以更好了解AdaBoost
AdaBoost算法总结如下:
AdaBoost_第5张图片

接下里视频里面是通过讲解基于单层决策树构建弱分类器,然后利用AdaBoost提升分类器性能,将其变为强分类器的代码例子,可以通过博客仔细阅读和模仿试验几遍。
链接:https://blog.csdn.net/c406495762/article/details/78212124
https://www.bilibili.com/video/av36993857
https://github.com/apachecn/AiLearning/tree/master/docs/ml
https://github.com/Jack-Cherish/Machine-Learning/

你可能感兴趣的:(AdaBoost)