简单易学的机器学习算法——集成方法(Ensemble Method)

一、集成学习方法的思想

前面介绍了一系列的算法,每个算法有不同的适用范围,例如有处理线性可分问题的,有处理线性不可分问题。在现实世界的生活中,常常会因为“集体智慧”使得问题被很容易解决,那么问题来了,在机器学习问题中,对于一个复杂的任务来说,能否将很多的机器学习算法组合在一起,这样计算出来的结果会不会比使用单一的算法性能更好?这样的思路就是集成学习方法。

集成学习方法是指组合多个模型,以获得更好的效果,使集成的模型具有更强的泛化能力。对于多个模型,如何组合这些模型,主要有以下几种不同的方法:

  1. 在验证数据集上上找到表现最好的模型作为最终的预测模型;
  2. 对多个模型的预测结果进行投票或者取平均值;
  3. 对多个模型的预测结果做加权平均。

以上的几种思路就对应了集成学习中的几种主要的学习框架。

二、集成学习的主要方法

1、强可学习和弱可学习

在集成学习方法中,是将多个弱模型,通过一定的组合方式,组合成一个强模型。在《统计学习方法》中介绍了“强可学习(strongly learnable)”和“弱可学习(weakly
learnable)”的概念。

在概率近似正确(probably approximately correct, PAC)学习的框架中,一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的。一个概念,如果存在一个多项式的学习算法能够学习它,学习正确率仅比随机猜测略好,那么就称这个概念是弱可学习的。Schapire指出在PAC学习框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。那么对于一个学习问题,若是找到“弱学习算法”,那么可以将弱学习方法变成“强学习算法”。

2、在验证集上找表现最好的模型

这样的方法的思想与决策树的思想类似,在不同的条件下选择满足条件的算法。

3、多个模型投票或者取平均值

对于数据集训练多个模型,对于分类问题,可以采用投票的方法,选择票数最多的类别作为最终的类别,而对于回归问题,可以采用取均值的方法,取得的均值作为最终的结果。在这样的思路里最著名的是Bagging方法.Bagging即Boostrap
Aggregating,其中,Boostrap是一种有放回的抽样方法,其抽样策略是简单的随机抽样。

在Bagging方法中,让学习算法训练多次,每次的训练集由初始的训练集中随机取出的个训练样本组成,初始的训练样本在某次的训练集中可能出现多次或者根本不出现。最终训练出个预测函数,最终的预测函数为对于分类和回归问题可采用如下的两种方法:

  1. 分类问题:采用投票的方法,得票最多的类别为最终的类别
  2. 回归问题:采用简单的平均方法

(图片来自参考文章2)

随机森林算法就是基于Bagging思想的学习算法。

4、对多个模型的预测结果做加权平均

在上述的Bagging方法中,其特点在于随机化抽样,通过反复的抽样训练新的模型,最终在这些模型的基础上取平均。而在对多个模型的预测结果做加权平均则是将多个弱学习模型提升为强学习模型,这就是Boosting的核心思想。

在Boosting算法中,初始化时对每个训练样本赋予相等的权重,如,然后用该学习算法对训练集训练轮,每次训练后,对训练失败的训练样本赋予更大的权重,也就是让学习算法在后续的学习中几种对比较难学的训练样本进行学习,从而得到一个预测函数序列,其中每个都有一个权重,预测效果好的预测函数的权重较大。最终的预测函数为对于分类和回归问题可采用如下的两种方法:

  1. 分类问题:有权重的投票方式
  2. 回归问题:加权平均

(图片来自参考文章2)

AdaBoost和GBDT(Gradient Boosting Decision Tree)是基于Boosting思想的两个最著名的算法。

参考文章

1、《统计学习方法》

2、统计学习方法——CART,
Bagging, Random Forest, Boosting

时间: 2024-11-08 13:19:19

简单易学的机器学习算法——集成方法(Ensemble Method)的相关文章

简单易学的机器学习算法——AdaBoost

一.集成方法(Ensemble Method) 集成方法主要包括Bagging和Boosting两种方法,随机森林算法是基于Bagging思想的机器学习算法,在Bagging方法中,主要通过对训练数据集进行随机采样,以重新组合成不同的数据集,利用弱学习算法对不同的新数据集进行学习,得到一系列的预测结果,对这些预测结果做平均或者投票做出最终的预测.AdaBoost算法和GBDT(Gradient Boost Decision Tree,梯度提升决策树)算法是基于Boosting思想的机器学习算法.

简单易学的机器学习算法——EM算法

一.机器学习中的參数预计问题 在前面的博文中,如"简单易学的机器学习算法--Logistic回归"中,採用了极大似然函数对其模型中的參数进行预计,简单来讲即对于一系列样本,Logistic回归问题属于监督型学习问题,样本中含有训练的特征 X_i" title="X_i" >以及标签.在Logistic回归的參数求解中.通过构造样本属于类别和类别的概率: 这样便能得到Logistic回归的属于不同类别的概率函数: 此时,使用极大似然预计便可以预计出模型

[转载]简单易学的机器学习算法-决策树之ID3算的

一.决策树分类算法概述 决策树算法是从数据的属性(或者特征)出发,以属性作为基础,划分不同的类.例如对于如下数据集 (数据集) 其中,第一列和第二列为属性(特征),最后一列为类别标签,1表示是,0表示否.决策树算法的思想是基于属性对数据分类,对于以上的数据我们可以得到以下的决策树模型 (决策树模型) 先是根据第一个属性将一部份数据区分开,再根据第二个属性将剩余的区分开. 实现决策树的算法有很多种,有ID3.C4.5和CART等算法.下面我们介绍ID3算法. 二.ID3算法的概述 ID3算法是由Q

简单易学的机器学习算法——基于密度的聚类算法DBSCAN

一.基于密度的聚类算法的概述 最近在Science上的一篇基于密度的聚类算法<Clustering by fast search and find of density peaks>引起了大家的关注(在我的博文"论文中的机器学习算法--基于密度峰值的聚类算法"中也进行了中文的描述).于是我就想了解下基于密度的聚类算法,熟悉下基于密度的聚类算法与基于距离的聚类算法,如K-Means算法之间的区别. 基于密度的聚类算法主要的目标是寻找被低密度区域分离的高密度区域.与基于距离的聚

简单易学的机器学习算法——因子分解机(Factorization Machine)

一.因子分解机FM的模型 因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法. 1.因子分解机FM的优势 对于因子分解机FM来说,最大的特点是对于稀疏的数据具有很好的学习能力.现实中稀疏的数据很多,例如作者所举的推荐系统的例子便是一个很直观的具有稀疏特点的例子. 2.因子分解机FM的模型 对于度为2的因子分解机FM的模型为: 其中,参数,,.表示的是两个大小为的向量和向量的点积: 其中,表示的是系数矩阵的第维向量,

简单易学的机器学习算法——神经网络之BP神经网络

一.BP神经网络的概念 BP神经网络是一种多层的前馈神经网络,其基本的特点是:信号是前向传播的,而误差是反向传播的.详细来说.对于例如以下的仅仅含一个隐层的神经网络模型: (三层BP神经网络模型) BP神经网络的过程主要分为两个阶段.第一阶段是信号的前向传播,从输入层经过隐含层.最后到达输出层:第二阶段是误差的反向传播,从输出层到隐含层.最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置. 二.BP神经网络的流程 在知道了BP神经网络的特点后,我们须要根据信号的前向传播

简单易学的机器学习算法——Mean Shift聚类算法

一.Mean Shift算法概述 Mean Shift算法,又称为均值漂移算法,Mean Shift的概念最早是由Fukunage在1975年提出的,在后来由Yizong Cheng对其进行扩充,主要提出了两点的改进: 定义了核函数: 增加了权重系数. 核函数的定义使得偏移值对偏移向量的贡献随之样本与被偏移点的距离的不同而不同.权重系数使得不同样本的权重不同.Mean Shift算法在聚类,图像平滑.分割以及视频跟踪等方面有广泛的应用. 二.Mean Shift算法的核心原理 2.1.核函数 在

简单易学的机器学习算法——谱聚类(Spectal Clustering)

一.复杂网络中的一些基本概念 1.复杂网络的表示 在复杂网络的表示中,复杂网络可以建模成一个图,其中,表示网络中的节点的集合,表示的是连接的集合.在复杂网络中,复杂网络可以是无向图.有向图.加权图或者超图. 2.网络簇结构 网络簇结构(network cluster structure)也称为网络社团结构(network community structure),是复杂网络中最普遍和最重要的拓扑属性之一.网络簇是整个网络中的稠密连接分支,具有同簇内部节点之间相互连接密集,不同簇的节点之间相互连接

简单易学的机器学习算法——极限学习机(ELM)

极限学习机的概念 ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重. 对于一个单隐层神经网络,假设有N个任意的样本,其中, .对于一个有个隐层节点的单隐层神经网络可以表示为 其中,为激活函数,为输入权重, 为输出权重,是第个隐层单元的偏置. 单隐层神经网络的学习目标是使得输出的误差最小,可以表示为 即存在,和 ,使得 可以矩阵表述为. 其中,是隐层节点的输出,为输出权重,为期望输出. ,