一、理论篇

1、概述

生活中,当做重要决定时,通常都会考虑吸取多个人的意见而不只是一个人的意见。集成学习也是如此。集成学习就是组合多个单一的、独立的学习器,最后可以得到一个比单一学习器泛化性能更好的学习器。

正所谓“三个臭皮匠赛过诸葛亮”的道理,在机器学习数据挖掘的工程项目中,使用单一决策的弱分类器显然不是一个明智的选择,因为各种分类器在设计的时候都有自己的优势和缺点,也就是说每个分类器都有自己工作偏向,那集成学习就是平衡各个分类器的优缺点,使得我们的分类任务完成的更加优秀。

在大多数情况下,这些基本模型本身的性能并不是非常好,这要么是因为它们具有较高的偏差(例如,低自由度模型),要么是因为他们的方差太大导致鲁棒性不强(例如,高自由度模型)。集成方法的思想是通过将这些弱学习器的偏差和/或方差结合起来,从而创建一个「强学习器」(或「集成模型」),从而获得更好的性能。

集成学习的方法有以下几种:
(1)基于投票思想的多数票机制的集成分类器(MajorityVoteClassifier);
(2)基于Bagging思想的套袋集成技术(BaggingClassifier);
(3)随机森林(Random Forest);
(4)基于Boosting思想的自适应增强方法(Adaboost);
(5)分层模型集成框架Sstacking(叠加算法)。

2、Majority Voting

机器学习算法学习笔记(九):集成学习

  • 使用同一个训练集分别训练n个弱分类器;
  • 对每个弱分类器输出预测结果,并投票;
  • 每个样本取投票数最多的那个预测为该样本最终分类预测。

3、Bagging

套袋方法是由柳.布莱曼在1994年的技术报告中首先提出并证明了套袋方法可以提高不稳定模型的准确度的同时降低过拟合的程度(可降低方差)。

装袋(Bagging)个体学习器之间不存在强依赖关系

Bagging也叫做Bootstrap Aggregating,是在原始数据集选择S次后得到S个新数据集的一种技术。是一种有放回抽样
机器学习算法学习笔记(九):集成学习
【注意:套袋方法与投票方法的不同】
投票机制在训练每个分类器的时候都是用相同的全部样本,而Bagging方法则是使用全部样本的一个随机抽样,每个分类器都是使用不同的样本进行训练。其他都是跟投票方法一模一样!

  • 对训练集随机采样;
  • 分别基于不同的样本集合训练n个弱分类器;
  • 对每个弱分类器输出预测结果,并投票;
  • 每个样本取投票数最多的那个预测为该样本最终分类预测。

4、Random Forest

RF = 决策树+Bagging+随机属性选择。
机器学习算法学习笔记(九):集成学习
【RF算法流程】

  • 1.样本的随机:从样本集中用Bagging的方式,随机选择n个样本。
  • 2.特征的随机:从所有属性d中随机选择k个属性(k<d),然后从k个属性中选择最佳分割属性作为节点建立CART决策树。
  • 3.重复以上两个步骤m次,建立m棵CART决策树。
  • 4.这m棵CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类。

5、Adaboost

Adaboost最初的想法是由Robert E. Schapire在1990年提出的,这个想法叫做自适应增强方法。与Bagging相比,Boosting思想可以降低偏差。

提升(Boosting)个体学习器之间存在强依赖关系

AdaBoost是英文“Adaptive Boosting”(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大(意味着下次被抽中的概率增大),而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。

思想:将学习器的重点放在“容易”出错的样本上。可以提升学习器的性能。

【Adaboost算法可以简述为三个步骤】
(1)首先,是初始化训练数据的权值分布 D 1 D1 D1。假设有 N N N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值: w 1 = 1 / N w_1=1/N w1=1/N

(2)然后,训练弱分类器 h i h_i hi。具体训练过程中是:如果某个训练样本点,被弱分类器 h i h_i hi准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。

(3)最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换而言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

【Adaboost算法流程】
机器学习算法学习笔记(九):集成学习
【例子】给定下表所示的训练数据。假设弱分类器有 x < v x<v x<v x > v x>v x>v产生,其阈值 v v v使该分类器在训练数据集上分类误差率最低。使用Adaboost算法学习一个强分类器。
机器学习算法学习笔记(九):集成学习
机器学习算法学习笔记(九):集成学习
机器学习算法学习笔记(九):集成学习
机器学习算法学习笔记(九):集成学习

6、Stacking

Stacking集成算法可以理解为一个两层的集成,第一层含有一个分类器,把预测的结果(元特征)提供给第二层, 而第二层的分类器通常是逻辑回归,他把一层分类器的结果当做特征做拟合输出预测结果。

使用多个不同的分类器对训练集进预测,把预测得到的结果作为一个次级分类器的输入。次级分类器的输出是整个模型的预测结果。

机器学习算法学习笔记(九):集成学习

二、实战篇

待完成…

【参考资料】

  1. 李航《统计学习方法》
  2. 周志华《机器学习》
  3. Datawhale公众号

【感谢阅读!如有错误,欢迎指正,谢谢!】

相关文章:

  • 2021-05-21
  • 2021-12-24
  • 2022-01-07
  • 2022-01-16
  • 2022-01-04
  • 2021-08-03
  • 2021-05-28
  • 2021-11-06
猜你喜欢
  • 2022-12-23
  • 2021-09-26
  • 2021-11-24
  • 2022-12-23
  • 2022-01-23
  • 2021-04-07
  • 2021-10-05
相关资源
相似解决方案