集成学习

在一般经验中,如果把好坏不等的东西掺到一起,那么通常结果会是比最坏的要好一些,比最好的要坏一些。这就是集成学习的出发点。如果把多个学习器结合起来,是否能获得比最好的单一学习器更好的性能呢?

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务。集成学习一般先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生。如果这些“学习器”是同一种“学习器”,我们说这样的集成是同质的;如果包含的是不同的“学习器”,则这种集成是异质的。同质集成中的个体学习器被称为“基础学习器”,异质集成中的个体学习器被称为“组件学习器”。

集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”(weak learner)尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器。(弱学习器常指泛化性能略优于随机猜测的学习器;例如在二分类问题上精度略高于50%的分类器。)

根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是“随机森林”(Random Forest)。

AdaBoost

Boosting是一族可将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值\(T\),最终将这\(T\)个基学习器进行加权结合。Boosting族算法最著名的代表是AdaBoost。下面我们以分类任务来介绍AdaBoost算法。

设训练集\(D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}\)是包含\(n\)个训练样本的集合。基分类器(就是基学习器,因为是分类任务,下面统称基分类器)的错误率\(\epsilon_i\)定义为:

\[\epsilon_i=\frac{1}{n}[\sum_{j=1}^{n}w_jI(c_i(x_j)\neq y_j)]\]

初始时,\(w_1=\frac{1}{n}\)。

其中\(I(c_i(x_j)\neq y_j)\)是一个指示函数,如果输入为真,返回1;否则返回0。基分类器\(c_i\)的重要性由如下参数给出:

\[\alpha_i=\frac{1}{2}ln{\frac{1-\epsilon_i}{\epsilon_i}}\]

如果错误率接近0,则\(\alpha_i\)具有一个很大的正值,而当错误率接近1时,\(\alpha_i\)有一个很大的负值。参数\(\alpha_i\)也被用来更新训练样本的权值。为了说明这点,假定\(w_{i}^{(j)}\)在第\(j\)轮提升迭代中赋给样本\((x_i,y_i)\)的权值。AdaBoost的权值更新机制如下式给出:

\[ w_{i}^{j+1}=\frac{w_{i}^{j}}{Z_j}*\left\{ \begin{aligned} e^{-\alpha_j}, c_j(x_i)=y_i\\ e^{\alpha_j}, c_j(x_i)\neq y_i \end{aligned} \right. \]

其中,\(Z_j\)是一个正规因子,用来确保万\(\sum_{i}w_{i}^{(j+1)}=1\)。上面的公式给出的权值更新公式增加那些被错误分类样本的权值,并减少那些已经被正确分类的样木的权值。

AdaBoost算法将每一个分类器\(c_j\)的预测值根据\(\alpha_j\)进行加权,而不是使用多数表决的方案。这种机制有助于AdaBoost惩罚那些准确率很差的模型,如那些在较早的提升轮产生的模型。另外,如果任何中间轮产生高于50%的误差,则权值将被恢复为开始的一致值\(w_i=\frac{1}{n}\),并重新进行抽样。直至迭代\(T\)轮后结束。

AdaBoost的优缺点

AdaBoost的优点

  1. 很好的利用了弱分类器进行级联。
  2. 可以将不同的分类算法作为弱分类器。
  3. AdaBoost具有很高的精度。
  4. 相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重。

    AdaBoost的缺点

  5. AdaBoost迭代次数也就是弱分类器数目不容易设定。
  6. 数据不平衡导致分类精度下降。
  7. 训练比较耗时。

转载于:https://www.cnblogs.com/bugsheep/p/7891480.html

机器学习系列-AdaBoost相关推荐

  1. 机器学习系列(三)——目标函数、损失函数以及代价函数

    机器学习基础(三) 机器学习系列(一)--基础概念及分类 机器学习系列(二)--分类及回归问题 文章目录 机器学习基础(三) 4. 代价函数 4.1 为什么要使用代价函数 4.2 目标函数的作用原理 ...

  2. 机器学习系列(4)_机器学习算法一览,应用建议与解决思路

    作者:寒小阳 时间:2016年1月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50469334 声明:版权所有,转载请联系作者并注明出 ...

  3. 机器学习系列笔记十三: 集成学习/模型聚合

    机器学习系列笔记十三: 集成学习/模型聚合 文章目录 机器学习系列笔记十三: 集成学习/模型聚合 什么是集成学习 Voting Hard Voting 模拟实现Hard Voting 集成学习 使用V ...

  4. 机器学习系列18:核函数

    https://www.toutiao.com/a6700783341630652931/ 机器学习系列18:核函数 让我们来考虑这样一个问题,现在给定一个数据集,让你划分出决策边界,该怎么办呢?数据 ...

  5. 机器学习系列19:将核函数应用于支持向量机

    https://www.toutiao.com/a6701463387273953806/ 机器学习系列19:将核函数应用于支持向量机 当我们在已知参数的情况下,如何用带有核函数的支持向量机(SVM) ...

  6. 机器学习系列16:机器学习系统设计

    https://www.toutiao.com/a6700782123118232068/ 机器学习系列16:机器学习系统设计 偏斜分类的误差评估 举个例子,我们想训练一个模型去诊断患者是否患有癌症. ...

  7. 人工智能 机器学习系列 2:代价函数

    机器学习系列 2:代价函数 现在我有一些数据集,就像上图中的叉.那么我想通过一次函数也叫线性回归函数(一条直线)去拟合这些数据,一次函数在没有确定之前,应该是这个样子的: 其中 θ0 和 θ1 都是未 ...

  8. 机器学习系列 1:监督学习和无监督学习

    https://www.toutiao.com/a6690813539747103246/ 2019-05-15 09:31:00 机器学习系列 1:监督学习和无监督学习 机器学习就是通过一大堆数据集 ...

  9. 机器学习系列之EM算法

    机器学习系列之EM算法 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要 ...

最新文章

  1. 计算机网络:单播,多播
  2. python 操作redis之——HyperLogLog (八)
  3. java环境配置常用链接
  4. 3.1_ 1_ 内存的基础知识
  5. Acrobat Pro DC 教程,如何共享 PDF 文件以供审阅?
  6. Atitit java js groupby 分组操作法
  7. 【幅频均衡带通滤波器】基于FPGA的幅频均衡带通滤波器的设计
  8. 无法打开计算机的组策略,本地组策略编辑器打不开?Win7本地组策略编辑器无法打开的解决方法...
  9. 《计算机操作系统》(慕课版)课后习题
  10. 北航计算机博士后,北京航空航天大学博士后待遇
  11. 阿里巴巴矢量图库开源http://www.iconfont.cn/collections/detail?cid=29
  12. 用户密码的存储与密码传输
  13. 加密世界“众生相”:僧侣、信徒和骗子
  14. 华为防火墙(以USG6330为例)公网直接访问问题解决
  15. 【全栈软件测试】一、测试环境和操作系统(3)VMware的安装及使用与虚拟机的创建与使用详细介绍
  16. R语言List列表和向量Vector互相转化源码和思路
  17. SRC挖洞之信息收集篇
  18. [Python图像处理] 二十九.MoviePy视频编辑库实现抖音短视频剪切合并操作
  19. Guava 之 Multiset
  20. 利用while 循环判断

热门文章

  1. 我想问一下男生,一个女生那么真诚热情又卑微的喜欢你,你们是怎么做到视而不见的呢?
  2. 宿松的小孤山在安徽省内有名吗?
  3. 农村这么好,为什么感觉大家都不想在农村生活呢?
  4. 两大思维,就可以让你轻松完成任意一个目标
  5. Qt4_写FTP客户端
  6. MySql Connector-Java下载
  7. MySql字符串截取之substring_index
  8. .git文件过大,怎么删除
  9. PAT乙级1088 三人行 (20分)
  10. ecos中的spl同步机制