Adaboost
神经网络也在做降维度这件事,自适应提升算法。对于大规模冗余特征是一个比较好的算法。假设数据集,假设为 2 分类问题
- 数据集
- 输出
接下来介绍基本算法流程
- 输入数据:
- 输出分类器:
先找一个分类器,只用一个特征来进行分类,要不没有训练,从采样,更多采样那些分错的样本,而且减少对那些分对样本。这样有了两个识别器,对于训练数据集进行有区别采样,两个识别器都对其分错样本给更大权重,在这个训练集上表现更好,把这些弱识别器取加权平均值。
<img src="../basic_machine_learning/images/adaboosting.jpeg">
<img src="./images/adaboosting__002.jpeg">
推导过程
初始化采样权重
对 (M 是弱分类器个数) 用 采样 N 个训练样本,在训练样本上获取弱分类器 可以选择一个特征或者几个特征来构成分类器,作者是有放回的采样
计算加权错误率
识别器 的权重
<img src="./images/log_plot.jpeg">
越小越大-
更新权值分布
小于 0.5 > 0
<img src="./images/exp_plot.png">
起归一化作用。 回倒第 2 步骤
-
最终识别器
定理
随着 M 增加,AdaBoost 最终分类器 在训练样本上将会越来越小。证明这个定理才能够清楚为什么会在训练集。AdaBoost 不会测试集上发生过拟合的训练器,不是那么容易过拟合,每一个分类器的效果都是若分类器,不能做那么好,对于数据集也不会做的那么差,这些分类器组合,每一个分类器,整个系统会特别稳定,接下来尝试证明一下这个定理。
错误率 ,
若接下来假设
接下来证明