机器学习(一)集成学习

1. 关于集成学习的概念

  集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。

1.1 为什么要集成

1)模型选择   假设各弱分类器间具有一定差异性(如不同的算法,或相同算法不同参数配置),这会导致生成的分类决策边界不同,也就是说它们在决策时会犯不同的错误。将它们结合后能得到更合理的边界,减少整体错误,实现更好的分类效果。

2) 数据集过大或过小   数据集较大时,可以分为不同的子集,分别进行训练,然后再合成分类器。   数据集过小时,可使用自举技术(bootstrapping),从原样本集有放回的抽取m个子集,训练m个分类器,进行集成。

3)分治   若决策边界过于复杂,则线性模型不能很好地描述真实情况。因此先训练多个线性分类器,再将它们集成。

4)数据融合(Data Fusion)   当有多个不同数据源,且每个数据源的特征集抽取方法都不同时(异构的特征集),需要分别训练分类器然后再集成

1.2 集成学习常用算法

1)boosting的弱分类器形成是同一种机器学习算法,只是其数据抽取时的权值在不断更新,每次都是提高前一次分错了的数据集的权值,最后得到T个弱分类器,且分类器的权值也跟其中间结果的数据有关。

2)Bagging算法也是用的同一种弱分类器,其数据的来源是用bootstrap算法得到的(有放回抽样,一个instance被前面分错的越厉害,它的概率就被设的越高)。

3)Stacking算法分为两个阶段,首先我们使用多个基础分类器来预测分类;然后,一个新的学习模块与它们的预测结果结合起来,来降低泛化误差。

1.3 集成学习有效的前提

1)每个弱分类器的错误率不能高于0.5 2)弱分类器之间的性能要有较大的差别,否则集成效果不是很好

1.4 集成学习分类

  集成学习按照基本分类器之间的关系可以分为异态集成学习和同态集成学习。异态集成学习是指弱分类器之间本身不同,而同态集成学习是指弱分类器之间本身相同只是参数不同。

不同算法的集成 同一种算法在不同设置下的集成 数据集的不同部分分配给不同分类器之后的集成

1.5 基本分类器之间的整合方式

简单投票,贝叶斯投票,基于D-S证据理论的整合,基于不同的特征子集的整合

2. Adaboost算法

2.1 AdaBoost元算法

  基于数据集多重抽样的分类器

  Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)

  Adaboost算法本身是通过改变数据权值分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据送给下层分类器进行训练,最后将每次得到的分类器最后融合起来,作为最后的决策分类器.

  关于弱分类器的组合,Adaboost算法采用加权多数表决的方法。具体来说,就是加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率较大的弱分类器的权值,使其在表决中起较小的作用

2.2 Adaboost算法思路

输入:     分类数据;弱算法数组 输出:     分类结果

流程:

  • Step1 给训练数据集中的每一个样本赋予权重,权重初始化相等值,这些权重形成向量D。一般初始化所有训练样例的权重为1 / N,其中N是样例数
  • Step2 在训练集上训练出弱分类器并计算该分类器的错误率
  • Step3 同一数据集上再次训练分类器,调整样本的权重,将第一次分对的样本权重降低,第一次分错的样本权重提高
  • Step4 最后给每一个分类器分配一个权重值alpha,alpha = 0.5*ln((1-错误率)/错误率)
  • Step5 计算出alpha值后,可以对权重向量D进行更新,以使得正确分类的样本权重降低而错分样本的权重升高。

  计算出D之后,AdaBoost又开始进入下一轮迭代。Adaboost算法会不断地重复训练和调整权重的过程,知道训练错误率为0或者弱分类器的数目达到用户指定的值为止

2.3 Adaboost算法核心思想

  1. “关注”被错分的样本,“器重”性能好的弱分类器;
    1. 不同的训练集,调整样本权重
    2. “关注”,增加错分样本权重
    3. “器重”,好的分类器权重大

样本权重间接影响分类器权重

2.4 Adaboost 算法优缺点

优点:

  1. Adaboost是一种有很高精度的分类器;
  2. 可以使用各种方法构建子分类器,Adaboost算法提供的是框架;
  3. 当使用简单分类器时,计算出的结果是可以理解的,而弱分类器构造及其简单;
  4. 简单,不用做特征筛选;
  5. 不用担心overfitting(过拟合)问题。

2.5 Adaboost算法应用场景

  1. 用于二分类或多分类的应用场景;
  2. 用于做分类任务的baseline–无脑化,简单,不会overfitting,不用调分类器;
  3. 用于特征选择(feature selection) ;
  4. Boosting框架用于对bad case的修正,只需要增加新的分类器,不需要变动原有分类器。

2.6 Adaboost 算法Python实现

3. Boosting算法中代表性算法GBDT

3.1 GBDT

  GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。

3.2 GBDT主要由三个概念组成

  1. Regression Decision Tree(及DT 回归决策树)
  2. Gradient Boosting(即GB)
  3. Shrinkage(算法的一个重要演进分枝)

3.2.1 DT:回归树Regression Decision Tree

  回归树总体流程也是类似,不过在每个节点(不一定是叶子节点)都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化均方差–即(每个人的年龄-预测年龄)^2 的总和 / N,或者说是每个人的预测误差平方和 除以 N。

3.2.2 GB:梯度迭代 Gradient Boosting

  Boosting,迭代,即通过迭代多棵树来共同决策。   GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。这就是Gradient Boosting在GBDT中的意义。

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李智的专栏

PRML笔记

其中,除以NN让我们能够以相同的基础对比不同大小的数据集,平方根确保了ERMSE_{RMS}与目标变量tt使用相同的规模和单位进行度量。

872
来自专栏自然语言处理

谈谈学习模型的评估1

李航《统计学习方法》一书:统计学习方法是由模型、策略和算法构成的,即统计学习方法的三要素构成,简化:方法=模型+策略+算法

792
来自专栏鸿的学习笔记

十张图解释机器学习

3.奥卡姆剃刀:贝叶斯推理表现出奥卡姆剃刀原理了。 这个图给出了为什么复杂的模型会变得不那么可能了。 水平轴表示可能的数据集D的空间。贝叶斯定理奖励模型的比例与...

801
来自专栏IT派

机器学习面试题目总结

如果你觉得好的话,不妨分享到朋友圈。 1.机器学习中特征的理解 def:特征选择和降维 特征选择:原有特征选择出子集,不改变原来的特征空间 降维:将原有的特征...

4265
来自专栏一直在跳坑然后爬坑

深入理解向量进行矩阵变换的本质

向量的理解 上图表述的是平面上一点,在以i和j为基的坐标系里的几何表示,这个点可以看作(x,y)也可以看作是向量ox与向量oy的和。

2274
来自专栏老秦求学

Deep Learning Tutorial 李宏毅(一)深度学习介绍

大纲 深度学习介绍 深度学习训练的技巧 神经网络的变体 展望 深度学习介绍 深度学习介绍 深度学习属于机器学习的一种。介绍深度学习之前,我们先大致了解一下机器学...

43210
来自专栏SIGAI学习与实践平台

机器学习中的目标函数总结

几乎所有的机器学习算法最后都归结为求解最优化问题,以达到我们想让算法达到的目标。为了完成某一目标,需要构造出一个“目标函数”来,然后让该函数取极大值或极小值,从...

5471
来自专栏IT派

机器学习之集成学习

1. 关于集成学习的概念   集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类...

3286
来自专栏机器学习算法与Python学习

机器学习(19)之支持向量回归机

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 机器学习(15)之支持向量机原...

3515
来自专栏SIGAI学习与实践平台

深度多目标跟踪算法综述

基于深度学习的算法在图像和视频识别任务中取得了广泛的应用和突破性的进展。从图像分类问题到行人重识别问题,深度学习方法相比传统方法表现出极大的优势。与行人重识别问...

1753

扫码关注云+社区