集成学习


1 定义及简单介绍

  • 集成学习:集成学习使用多个机器学习模型来尝试对数据集进行更好的预测。(即减小方差、偏差、改进预测)。相比于单一的一个模型,可以得到更好的预测结果。

  • 集成学习框架中的基模型是弱模型(如:DT, SVM, NN, KNN),通常来说弱模型是偏差高(在训练集上准确度低)方差小(防止过拟合能力强)的模型。但是,并不是所有集成学习框架中的基模型都是弱模型。bagging和stacking中的基模型为强模型(偏差低方差高),boosting中的基模型为弱模型。

  • 第一类:序列集成方法,利用各个学习器的相互关联以及其各自在最初样本赋值时的权重比例,按照顺序生成。

  • 第二类:并行集成方法,利用各个学习器的独立性,采用平均降低错误,按照并行生成。
    同质集合:使用单一基础学习算法产生的相同类型的学习器。

  • 异构结合:使用不同类型的学习器。
    因为集成方法相比于任何单一算法更准确,基础学习器必须尽可能准确和多样化。

  • Bagging(bootstrap aggregation)
    已知将多个估计值一起平均可以有效减小估计方差,则其实Bagging就是利用bootstrap抽样方法来获得基础学习器的子集,然后再采用投票分类和均值回归得到输出。
    集成稳定学习器(对于训练样本的扰动较不敏感)不利于提高预测效果,因为集成方法不能有助于提高泛化性能(机器学习算法对于新鲜样本的适应能力)。
    常用的集成算法类是随机森林(包含多个决策树的分类器)。

  • Boosting
    Boosting是指能将弱学习器转化为强学习器的一类算法族,其原理是适应一系列弱学习器模型(增加错误分类的数据点的权重,减少正确分类的数据点的权重),然后通过结合加权多数投票(分类)或加权求和(回归)来产生预测。
    Boosting和Bagging两种方法重要区别是基础学习器能否通过加权的数据进行顺序训练。

  • Stacking
    Stacking是指通过元分类器或元回归聚合多个分类或回归模型,其通常都是异构的。基础层次模型基于完整的训练集进行训练,由不同的学习算法组成,元模型基于基础模型的输出进行训练。


2 偏差和方差

  • 定义:方差和偏差:偏差(bias)描述预测值和真实值之间的差异,方差(variance)描述距的是预测值作为随机变量的离散程度。
    在这里插入图片描述

2.1 模型的偏差和方差

  • 模型的偏差:训练出来的模型在训练集上的准确度。
  • 模型的方差:可以理解模型的差异性为模型的结构差异,例如:线性模型中权值向量的差异,树模型中树的结构差异等。在研究模型方差的问题上,我们并不需要对方差进行定量计算,只需要知道其概念即可。
  • 模型的方差的意义:方差越大的模型越容易过拟合

2.2 小结

还记得调参的目标吗:模型在训练集上的准确度和防止过拟合能力的大和谐!为此,我们目前做了一些什么工作呢?

1、使用模型的偏差和方差来描述其在训练集上的准确度和防止过拟合的能力
2、对于bagging来说,整体模型的偏差和基模型近似,随着训练的进行,整体模型的方差降低
3、对于boosting来说,整体模型的初始偏差较高,方差较低,随着训练的进行,整体模型的偏差降低(虽然也不幸地伴随着方差增高),当训练过度时,因方差增高,整体模型的准确度反而降低
4、整体模型的偏差和方差与基模型的偏差和方差息息相关

这下总算有点开朗了,那些让我们抓狂的参数,现在可以粗略地分为两类了:控制整体训练过程的参数和基模型的参数,这两类参数都在影响着模型在训练集上的准确度以及防止过拟合的能力。


3 机器学习中的一些算法

3.1 DT 决策树模型(decision tree)

3.1.1 解决什么问题

  • 分类、预测、决策问题

  • 预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果。

  • 决策树的学习本质上就是从训练数据集中归纳出一组分类规则

  • 例1:钻井问题(可手算;逆决策)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 例2:预测问题
    在这里插入图片描述
    用于预测贷款用户是否具有偿还贷款的能力。贷款用户主要具备三个属性:是否拥有房产,是否结婚,平均月收入。每一个内部节点都表示一个属性条件判断,叶子节点表示贷款用户是否具有偿还能力。例如:用户甲没有房产,没有结婚,月收入 5K。通过决策树的根节点判断,用户甲符合右边分支 (拥有房产为“否”);再判断是否结婚,用户甲符合左边分支 (是否结婚为否);然后判断月收入是否大于 4k,用户甲符合左边分支 (月收入大于 4K),该用户落在“可以偿还”的叶子节点上。所以预测用户甲具备偿还贷款能力。

  • 例3:分类问题
    决策树进行空间划分的一个例子。在这里有红色和蓝色两类训练样本,用下面两条平行于坐标轴的直线可以将这两类样本分开,这个划分方案对应的决策树如下图所示:
    在这里插入图片描述

3.1.2 决策树建立

  • 通过特征选择、剪枝,介绍如何根据已有的样本数据建立一棵决策树。即构建决策树的三要素:

    • 特征选择:信息增益、信息增益率
    • 决策树生成:ID3、C4.5、Cart树等等
    • 决策树剪枝: 解决过拟合。分为先剪枝、后剪枝
  • 构造决策树的基本算法
    (1) ID3算法 (Iterative Dichotomiser 3):使用信息增益进行特征选择
    (2)C4.5算法(ID3 算法的改进):使用信息增益率进行特征选择,克服了信息增益选择特征的时候偏向于特征个数较多的不足。
    (3)CART算法(分类回归树) : 既可以用于分类(分类树),也可以用于回归(回归树)。利用 CART 构建回归树用到树的剪枝技术,用于防止树的过拟合。

  • 使用递归程序建树
    递归的终止通常有两个:
    一是所有训练数据子集被基本正确分类。
    二是没有合适的特征可选,即可用特征为0,或者可用特征的信息增益或信息增益比都很小了。

在这里插入图片描述

3.1.2.1 特征选择
  • 选择一个合适的特征作为判断节点,可以快速的分类,减少决策树的深度。决策树的目标就是把数据集按对应的类标签进行分类。
  • 最理想的情况是,通过特征的选择能把不同类别的数据集贴上对应类标签。
  • 特征选择的目标使得分类后的数据集比较纯。如何衡量一个数据集纯度,这里就需要引入数据纯度函数。下面将介绍两种表示数据纯度的函数信息增益、基尼指数
信息增益
  • 信息熵:表示的是不确定度。均匀分布时,不确定度最大,此时熵就最大。

  • 信息增益:当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。

  • 例1:在样本数据集 D 中,混有 c 种类别的数据。构建决策树时,根据给定的样本数据集选择某个特征值作为树的节点。

    • 在数据集中,可以计算出该数据中的信息熵:
      在这里插入图片描述其中 D 表示训练数据集,c 表示数据类别数,Pi 表示类别 i 样本数量占所有样本的比例。

    • 对应数据集 D,选择特征 A 作为决策树判断节点时,在特征 A 作用后的信息熵的为 Info(D),计算如下:
      在这里插入图片描述其中 k 表示样本 D 被分为 k 个部分。

    • 信息增益表示数据集 D 在特征 A 的作用后,其信息熵减少的值。公式如下:
      在这里插入图片描述
      对于决策树节点最合适的特征选择,就是 Gain(A) 值最大的特征。

    基尼指数

基尼指数是另一种数据的不纯度的度量方法,其公式为:

在这里插入图片描述

其中 c 表示数据集中类别的数量,Pi 表示类别 i 样本数量占所有样本的比例。 从该公式可以看出,当数据集中数据混合的程度越高,基尼指数也就越高。当数据集 D 只有一种数据类型,那么基尼指数的值为最低 0。

如果选取的属性为 A,那么分裂后的数据集 D 的基尼指数的计算公式为:
在这里插入图片描述
其中 k 表示样本 D 被分为 k 个部分,数据集 D 分裂成为 k 个 Dj 数据集。

对于特征选取,需要选择最小的分裂后的基尼指数。也可以用基尼指数增益值作为决策树选择特征的依据。公式如下:
在这里插入图片描述
在决策树选择特征时,应选择基尼指数增益值最大的特征,作为该节点分裂条件。

3.1.2.2 剪枝
  • 在分类模型建立的过程中,很容易出现过拟合的现象。过拟合是指在模型学习训练中,训练样本达到非常高的逼近精度,但对检验样本的逼近误差随着训练次数而呈现出先下降后上升的现象。过拟合时训练误差很小,但是检验误差很大,不利于实际应用。
  • 决策树的过拟合现象可以通过剪枝进行一定的修复。剪枝分为预先剪枝和后剪枝两种。
预先剪枝
  • 指在决策树生长过程中,使用一定条件加以限制,使得产生完全拟合的决策树之前就停止生长。
  • 预先剪枝的判断方法也有很多,比如信息增益小于一定阀值的时候通过剪枝使决策树停止生长。但如何确定一个合适的阀值也需要一定的依据,阀值太高导致模型拟合不足,阀值太低又导致模型过拟合。
后剪枝
  • 是在决策树生长完成之后,按照自底向上的方式修剪决策树。
  • 后剪枝有两种方式,一种用新的叶子节点替换子树,该节点的预测类由子树数据集中的多数类决定。

另一种用子树中最常使用的分支代替子树。预先剪枝可能过早的终止决策树的生长,后剪枝一般能够产生更好的效果。但后剪枝在子树被剪掉后,决策树生长的一部分计算就被浪费了。

3.1.2.3 ID3算法:使用信息熵增益作为划分准则
  • ID3算法采用香农熵作为度量信息度量方式,并且按照信息增益划分数据集,选择具有最高的信息增益进行划分。香农熵定义为信息的期望值计算公式如下:
  • 算法步骤
    (1)如果所有的属性都被用于划分,直接结束
    (2)计算所有特征的信息增益,选择信息增益较大的(如a节点)值对应的特征进行分类
    (3)如果使用a节点作为划分节点没有划分完成,接下来使用除去a节点之外的其他特征节点中信息增益较大的进一步进行建立决策树。(递归建立决策树)
  • 算法停止条件
    (1)如果属性都用于划分,直接结束;如果还有没有被划分的节点,使用多数表决。
    (2)如果所有样本都已经分类,直接结束。
    (3)定义最大不纯度进行度量
    (4)定义叶子节点的数目
    (5)定义分支节点包含的样本个数
  • 算法改进
    信息增益率——C4.5算法:在ID3算法基础上提出了信息增益率
    信息增益率改进:由于信息增益偏向特征取值较多的不足之处,所以使用信息增益率进一步划分决策树
3.1.2.4 C4.5算法:使用信息增益率作为划分准则
  • C4.5算法首先定义了“分裂信息”,其定义可以表示成:
    在这里插入图片描述

  • 然后,增益率被定义为:
    在这里插入图片描述
      
      gain(A):分割前的信息增益, split_info(A):分裂信息值。

  • C4.5选择具有最大增益率的属性作为分裂属性,其具体应用与ID3类似。

3.1.2.5 CART 模型:使用Gini系数作为划分准则

3.1.3 算法分析

  • 不稳定性(Instability)

决策树虽然功能强大,但也有一些局限性。首先,决策树的决策边界都是正交直线(所有的切分都和某一个坐标轴垂直),这使得它们对数据集的旋转很敏感。例如,下图显示了简单的线性可分数据集,在左侧,决策树很容易将其切分。但是在右侧,数据集旋转45°,决策树出现了不必要的绕弯弯。尽管二者都很好地拟合了训练集,很明显右侧的模型难以很好地一般化。一个解决方案是使用PCA,它可以使训练集旋转到最好的方向。

在这里插入图片描述
此外,决策树对训练数据集微小的变动也会很敏感。

随机森林通过许多决策树的预测平均值,可以避免这一不稳定性。

比较:
  • C4.5实际上是对ID3进行优化,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特性,提升了决策树的泛化能力.

  • ID3只能处理离散型变量,而C4.5和CART都可以处理连续型变量
    C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换多个取值区间的离散型变量。而对于CART,由于其构建时每次都会对特征进行二值划分,因此可以很好地适用于连续性变量。

  • ID3和C4.5只能用于分类任务,而CAR可用于分类,也可应用于回归任务

  • ID3对样本特征缺失值比较敏感(没有对应的处理机制),而C4.5和CART可以对缺失值进行不同方式的处理;ID3和C4.5可以在每个结点上产生出多叉分支,且每个特征在层级之间不会复用,而CART每个结点只会产生两个分支,因此最后会形成一颗二叉树,且每个特征可以被重复使用;ID3和C4.5通过剪枝来权衡树的准确性与泛化能力,而CART直接利用全部数据发现所有可能的树结构进行对比。

3.1.4 例子

例1:ID3算法(SNS社区中不真实账号检测)

为了简单起见,我们假设训练集合包含10个元素:
在这里插入图片描述
其中s、m和l分别表示小、中和大。

设L、F、H和R表示日志密度、好友密度、是否使用真实头像和账号是否真实,下面计算各属性的信息增益。

在这里插入图片描述在这里插入图片描述
因此日志密度的信息增益是0.276。

用同样方法得到H和F的信息增益分别为0.033和0.553。

因为F具有最大的信息增益,所以第一次分裂选择F为分裂属性,分裂后的结果如下图表示:
在这里插入图片描述
在上图的基础上,再递归使用这个方法计算子节点的分裂属性,最终就可以得到整个决策树。

  上面为了简便,将特征属性离散化了,其实日志密度和好友密度都是连续的属性。对于特征属性为连续值,可以如此使用ID3算法:

  先将D中元素按照特征属性排序,则每两个相邻元素的中间点可以看做潜在分裂点,从第一个潜在分裂点开始,分裂D并计算两个集合的期望信息,具有最小期望信息的点称为这个属性的最佳分裂点,其信息期望作为此属性的信息期望。
例2:

https://blog.csdn.net/pc_zkr/article/details/83020585

参考学习资料:
[1]https://blog.csdn.net/pc_zkr/article/details/83020585
[2]从决策树到随机森林:树型算法的原理与实现:https://baijiahao.baidu.com/s?id=1574420750567758&wfr=spider&for=pc
[3]https://www.cnblogs.com/royhoo/p/Decision-Trees.html
[4]https://www.cnblogs.com/daguankele/p/6484604.html
[5]https://www.cnblogs.com/home123/p/7356154.html
[6]https://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html

3.2 SVM 支持向量机模型

https://blog.csdn.net/qq_32742009/article/details/81435141

3.3 KNN

距离

  • 样本空间内的两个点之间的距离量度表示其之间的相似程度:距离越短,相似程度越高,繁殖距离越长其相似程度就越低。
  • 常用的距离量度方式有:
    闵科夫斯基距离
    欧式距离
    曼哈顿距离
    切比雪夫距离
    余弦距离
    KNN算法
  • 其是监督学习分类算法(用来训练的数据集包括特征和标签两个部分,通过训练建立数据特征和标签之间关系的算法模型。类似于检索的功能。在测试数据时套用算法模型,由此可以得到数据的标签)

原理

  • 任何一个样本集中每个数据都存在有标签,即存在有一一对应的关系。在一个新的数据输入时,将该数据的特征与样本集中原有的数据特征进行一一比较,利用算法提取出特征最相似数据的分类标签。在KNN中,通过计算对象之间的距离作为各个对象之间的相似性指标,代替匹配度进行计算。
  • 距离计算公式:
    其中i是按照降序顺序进行排列,选择前k个值,出现次数最多的分类作为测试时该样本的分类。
  • 由此可见,k值的选择会影响到标签的决策,在k取值不同时,分类的效果也不同。
  • K值的确定:
    k值的确定对于KNN算法的预测结果有着至关重要的影响。
  1. 在k值较小的时候,相当于我们在较小的领域内训练样本对实例进行预测,这样子产生的近似误差会比较小,因为只有与输入实例相近的训练样本才会对预测结果产生作用。但是这时算法的估计误差比较大,最后的预测结果会对于临近点非常敏感。过小的k值容易导致KNN算法的过拟合。
  2. 在k值较大时,距离较远的训练样本也同样能够给实例预测结果产生一定的影响,模型的建立较为鲁莽,导致邻近误差较大,距离较远的点也同样会对预测结果产生一定的影响,使得预测结果产生较大的偏差。过大的k值容易导致KNN算法的欠拟合。
  • 在实际生产过程中采用交叉验证的方法选取k值,采用准确类最高的那个点确定成为最终的参数k.

3.4 回归模型

在这里插入图片描述

3.4.1 线性回归

3.4.2 Logistic 回归

Logistic回归是一种广义线性回归模型,解决的是因变量为二分类变量的预测或判别问题。当因变量的类型属于二元(1 / 0、真/假、是/否)变量时,我们就应该使用逻辑回归。因变量的取值范围是从 0 到 1,它可以用下面的等式表示:
在这里插入图片描述
Logistic要点:

1)Logistic回归广泛用于分类问题;

2)Logistic回归不要求自变量和因变量存在线性关系。它可以处理多种类型的关系,因为它对预测的相对风险指数使用了一个非线性的 log 转换;

3)为了避免过拟合和欠拟合,我们应该包括所有重要的变量。有一个很好的方法来确保这种情况,就是使用逐步筛选方法来估计Logistic回归;

4)Logistic回归需要较大的样本量,因为在样本数量较少的情况下,极大似然估计的效果比普通的最小二乘法差;

5) 自变量之间应该互不相关,即不存在多重共线性。然而,在分析和建模中,我们可以选择包含分类变量相互作用的影响;

6)如果因变量的值是定序变量,则称它为序Logistic回归;

7)如果因变量是多类的话,则称它为多元Logistic回归。

3.5 聚类分析

  • 聚类:
    无监督学习,是一个将数据进行分类的过程。简单来说就是将相似的研究对象归为一类,以方便进行研究。分类方法为利用向量之间的距离——空间重的欧式距离或者曼哈顿距离,根据距离的大小判断是否是同一类。
  • 常用方法:模糊聚类法、系统聚类法、K均值聚类法。
  • 模糊聚类:主要是将模糊数学的思想放于聚类分析中产生,此种适用于定性变量的分类。
  • 系统聚类法:将物理或者抽象对象的集合分成相似的对象类的过程。
    步骤:将n个样品看成时n类,一类表示一个样品,然后将样本距离最接近的两类合并成一个新类,得到n-1类,然后再找最接近的两类合并成n-2类,如此可得预期的类别数。
  • K-均值聚类法:适用于大数据组的聚类中

3.6 贝叶斯算法

  1. 从数学角度来说,分类问题可做如下定义:
    在这里插入图片描述
    其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合,其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。
  2. 下面不加证明地直接给出贝叶斯定理:
    在这里插入图片描述
  3. 朴素贝叶斯分类的原理及流程
    在这里插入图片描述
    在这里插入图片描述
  4. 由上文看出,计算各个划分的条件概率P(a|y)是朴素贝叶斯分类的关键性步骤,当特征属性为离散值时,只要很方便的统计训练样本中各个划分在每个类别中出现的频率即可用来估计P(a|y),下面重点讨论特征属性是连续值的情况。
    当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:
    在这里插入图片描述
    因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。均值与标准差的计算在此不再赘述。

在这里插入图片描述

  • 第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

  • 第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。

  • 第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

  • 例:(SNS真假用户判断问题)
    https://blog.csdn.net/u013378306/article/details/52253425


网址

【机器学习】模型融合方法概述:https://blog.csdn.net/muyimo/article/details/80066449

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值