《机器学习高频面试题详解》1.11:AdaBoost算法
点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~
前言
大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第1.11节:AdaBoost算法。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~
目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!
本文大纲 |
|
一、原理 |
1. AdaBoost算法 |
2. AdaBoost理论解释 |
|
二、面试真题 |
1. AdaBoost算法中要解决最关键的两个问题? |
2. Adaboost使用m个基学习器和Bagging加权平均使用m个学习器之间有什么不同? |
|
3. Adaboost每轮训练都有错误分类的样本,但为何算法却能快速收敛? |
|
4. Adaboost和随机森林有什么区别? |
|
5. AdaBoost算法的优缺点? |
一、原理
1. AdaBoost算法
1)算法介绍
Adaboost(Adaptive Boosting)是一种基于Boosting算法,将“弱学习算法“提升为“强学习算法”。其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
Adaboost 算法本身是通过改变数据分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据送给下层分类器进行训练,最后将每次得到的分类器融合起来,作为最后的决策分类器
Adaboost是一种迭代算法。每轮迭代中会在新训练集上产生一个新的学习器,然后使用该学习器对所有样本进行预测,以评估每个样本的重要性,整个迭代过程直到错误率足够小或者达到一定的迭代次数为止。具体地说,算法会为每个样本赋予一个权重,每次用训练好的学习器标注/预测各个样本,如果某个样本点被预测的越正确,则将其权重降低;否则提高样本的权重。权重越高的样本在下一个迭代训练中所占的比重就越大,也就是说越难区分的样本在训练过程中会变得越重要。
Adaboost算法将基分类器的线性组合作为强分类器,同时给分类误差率较小的基分类器以更大的权值,给分类误差率较大的基分类器以小的权重值。
2)算法流程
- 初始化训练样本的权值分布,每个训练样本的权值应该相等(如果一共有N个样本,则每个样本的权值为1/N)
- 依次构造训练集并训练弱分类器。如果一个样本被准确分类,那么它的权值在下一个训练集中就会降低;相反,如果它被分类错误,那么它在下个训练集中的权值就会提高。权值更新过后的训练集会用于训练下一个分类器。
- 将训练好的弱分类器集成为一个强分类器,误差率小的弱分类器会在最终的强分类器里占据更大的权重,否则较小。
3)算法参数
2. AdaBoost理论解释
1)加法模型和前向分布算法
加法模型指的是通过若干个基分类器通过线性组合得到最后的强分类器;
前向分步学习算法值得是通过一轮轮的弱学习器学习,利用前一个强学习器的结果和当前弱学习器来更新当前的强学习器的模型。
2)Adaboost
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。