机器学习(一)集成学习

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 条评论
登录 后参与评论

相关文章

来自专栏崔庆才的专栏

模型怎么调都没有提升?来试试目前最好用的词向量ELMo吧!

近年来,研究人员通过文本上下文信息分析获得更好的词向量。ELMo是其中的翘楚,在多个任务、多个数据集上都有显著的提升。所以,它是目前最好用的词向量,the-st...

900
来自专栏IT派

机器学习之集成学习

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

3156
来自专栏大数据挖掘DT机器学习

数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)

面网易数据挖掘工程师岗位,第一次面数据挖掘的岗位,只想着能够去多准备一些,体验面这个岗位的感觉,虽然最好心有不甘告终,不过继续加油。 不过总的来看,面试前有准备...

4969
来自专栏量子位

深度学习入门者必看:25个你一定要知道的概念

王瀚森 编译自 Analytics Vidhya 量子位 出品 | 公众号 QbitAI 人工智能,深度学习,机器学习……不管你在从事什么工作,都需要了解这些概...

4038
来自专栏算法channel

机器学习|支持向量机参数求解

01 — 支持向量机 支持向量机的简称为SVM,能在已知样本点很少情况下,获得很好的分类效果。 02 — SVM分类两个点 已知两个样本点,如果用SVM模型,决...

2535
来自专栏利炳根的专栏

学习笔记CB007:分词、命名实体识别、词性标注、句法分析树

概率图模型条件随机场适用观测值条件下决定随机变量有有限个取值情况。给定观察序列X,某个特定标记序列Y概率,指数函数 exp(∑λt+∑μs)。符合最大熵原理。基...

49811
来自专栏机器之心

观点 | 从信息论的角度理解与可视化神经网络

选自TowardsDataScience 作者:Mukul Malik 机器之心编译 参与:Pedro、思源 信息论在机器学习中非常重要,但我们通常熟知的是信息...

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

干货 | 自然语言处理(1)之聊一聊分词原理

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 前言 在做文本挖掘时,首先要做的预处...

3284
来自专栏CSDN技术头条

逻辑回归、决策树和支持向量机(I)

分类问题是我们在各个行业的商业业务中遇到的主要问题之一。在本文中,我们将从众多技术中挑选出三种主要技术展开讨论,逻辑回归(Logistic Regression...

2036
来自专栏大数据挖掘DT机器学习

利用回归模型预测数值型数据(代码)

机器学习算法按照目标变量的类型,分为标称型数据和连续型数据。标称型数据类似于标签型的数据,而对于它的预测方法称为分类,连续型数据类似于预测的结果为一定范围内的...

4127

扫码关注云+社区