AdaBoost(Adaptive boosting)元算法

元算法:将不同分类器组合起来的结果,也叫集成方法。

AdaBoost优点:泛化错误率,易编码,可应用在大部分分类器,无参数调整;缺点:对离群点敏感;适用于:数值型和标称型。

  • 自举汇聚法(Bootstrap aggregating,

    bagging方法):从原始数据集中随机选择1个样本,然后随机选择另一个样本替换这个样本。对原始数据集中进行S次这样的操作,分别得到S个新数据集。某个学习算法分别作用于新数据集得到S个分类器。用S个分类器进行分类得到的投票结果中最多的类别作为最终的分类结果。(bagging中各分类器权重是相等的。)

  • Boosting:boosting通过集中关注被已有分类器错分的那些数据获得新的分类器。其中分类器权重不相等,对应分类器在上一代迭代中的成功度\(\alpha\)。

    • 每个样本的权重的向量D初始化:全为1/m

    • 在原数据集上训练出一个弱分类器并计算其错误率\(\varepsilon_{1}\);

    • 原数据集中分对的样本权重降低,分错的样本权重升高,计算累计加权的估计结果

    \[\ \alpha = \frac{1}{2}\ln{(\frac{1 - \varepsilon_{i}}{\varepsilon_{i}})}
    \]

    \[D_{i}^{\text{new}} = \left\{ \begin{matrix} \frac{D_{i}^{\text{old}}e^{-
    \]

\frac{D_{i}{\text{old}}e{\alpha}}{Sum(D)},\ \ if\ \mathbf{x}_{i}\text{

is\ devided\ wrongly} \ \end{matrix} \right.$$

  • 重复b-c共?次,得到累计加权的估计结果,其符号即表示最终的分类结果。

建立弱分类器的伪代码:

将最小错误率minError设为$+ \infty$
对数据集中的每一个特征(第一层循环):
对每个步长(第二层循环):
对每个不等号(第三层循环):
建立一棵单层决策树并利用加权数据集对他进行测试
如果错误率低于minError,则将当前单层决策树设为最佳单层决策树
返回最佳单层决策树

AdaBoost算法的伪代码:

对每次迭代:
找到最佳的单层决策树,将其加入到单层决策树数组
计算$\alpha$,计算新的样本权重向量D
**更新累计类别估计值**
如果错误率等于0.0,退出循环

最新文章

  1. 剑指Offer-【面试题02:实现Singleton 模式——七种实现方式】
  2. HTML中em与b等的区别
  3. [linux] scp无密码拷贝
  4. 128. Longest Consecutive Sequence(leetcode)
  5. C#与数据库访问技术总结(九)之实例
  6. Lucene实战构建索引
  7. Java基础-序列化
  8. ASP.NET Web – 输入的有效性验证
  9. VC++2010添加菜单
  10. php开发客服系统(持久连接+轮询+反向ajax)
  11. javascript中原型链与instanceof 原理
  12. awk 里的substr()
  13. [bzoj省选十连测推广赛2]T2七彩树
  14. vscode添加prettier格式化自动加分号问题
  15. linux下如何编译安装gcc-8.3.0
  16. ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法
  17. [Canvas]动态背景
  18. 使用canvas绘制扇形图
  19. Struts S2-052漏洞利用之Meterpreter(CVE-2017-9805)
  20. 怎么处理stdClass::__set_state

热门文章

  1. Forbidden (CSRF token missing or incorrect.):错误解决办法
  2. kafka具体解释四:Kafka的设计思想、理念
  3. [书接上一回]在Oracle Enterprise Linux (v5.7) 中安装DB - (4/4)
  4. Oracle 11g+Windows10 x64安装、配置过程记录
  5. Python2视频教程
  6. Oracle 附加日志(supplemental log)
  7. Docker 基础学习(一)
  8. [python 学习]正则表达式
  9. [python 学习] requests 库的使用
  10. spark与Hadoop的区别