【机器学习基础】混合和装袋

融合模型(Aggregation Model)

如果我们已经得到了一些特征或者假设,它们和我们做机器学习的目标有若干的一致性的话,我们可以将这些假设综合起来,让预测效果变得更好,这样的模型被称为融合模型。

融合模型是通过混合(mix)和组合(combine)一些假设的方式,得到更好的预测结果。

下面列举了四种不同的混合组合方式,并给出了数学表示形式:

  1. 当有多个假设时,我们选择检验误差最小的假设作为我们最信任的目标函数:

  2. 我们现在有多个假设,我们可以给每个假设一个投票的权利,综合所有假设的投票结果:

  3. 现在有多个假设,我们可以根据对于不同假设的信任程度,给予不同假设不同的票数,这种情况综合了前两种情况:

  4. 如果可以给每个假设指定一个函数作为系数,这个函数说明了在不同的条件下,票数的情况:

举例

如果现在有一些比较弱的假设(如下图中,只能进行横轴和纵轴的分类平面),如果我们能将这些弱的分类器组合起来,就可以把数据有效的分隔开,得到一个强的分类器(弱分类器的组合)。

融合模型使得模型的能力更加强大,通过组合弱分类器的形式,类似之前介绍的特征转换的能力;而通过组合和混合,得到了一个泛化能力更强的假设,又类似之前介绍的正则化的作用。所以,融合模型将特征转换和正则化结合起来,一个合理的融合模型,从理论上是可以得到一个很好的假设的。

Blending

用于分类问题的Uniform Blending

这里像上面描述的那样,通过每个假设投票的结果,得到对于每个数据的预测。这个投票的结果实际上反应了少数服从多数的原则,通过多数意见修正少数的意见,少数的意见可能是有一些错误。

最终,通过民主投票的机制得到一个更加复杂的分类边界。

用于回归问题的Uniform Blending

在回归问题中,最终的假设其实是一系列假设的平均。

这里的大概意思是,对于同样的待预测数据x,有些假设低估了实际的目标,gt(x) < f(x);而有些假设高估了实际的目标,gt(x) > f(x)。这样平均下来的结果,可能有低估有高估,就减少了误差的结果,平均下来得到一个更稳定、更准确的估计方式。

Uniform Blending的理论分析

我们这里分析一下任意一个gt(x)与目标函数的均方差的平均和综合之后的假设G与目标函数的均方差的关系。

得到的这个式子告诉我们,avg((gt-f)^2)和(G-f)^2是有关系的,中间差了一个avg((gt-G)^2)。

以此类推,对于测试数据集,我们分析一下预测误差,得到下面的式子。说明Eout(gt)的平均要比Eout(G)大,这说明理论上Uniform Blending的误差要比gt的平均预测误差更小,预测效果也更好。

小结

现在假设每次从一组数据分布中抽取N笔数据构造gt,平均T个gt,得到G。如果对这一动作取极限,得到期望值g hat。

我们下面用g hat代替上一小节中的G,得到gt和g hat的关系。

  • g_hat代表了一些gt的共同意见,共识,consensus
  • avg(Eout(gt))代表了该算法作用于不同的数据集的平均表现,是演算法表现的期望值
  • avg(ε(gt-g_hat)^2)代表了gt与共识差别多大,说明了不同gt的意见有多么不一样,多么分散,称为variance
  • Eout(g_hat)代表了共识的表现如何,称为bias

我们可以知道平均的目的就是想办法消除variance的过程,得到更稳定的表现。

Linear Blending

假设现在我们已经得到一些假设gt,Linear Blending是分配给不同的gt不同的票数,即给gt不同权重αt。最终得到的是gt的线性组合。

(1)得到使得模型训练误差最小的α

那么我们该如何得到最好的αt呢?一般的思路自然是要使得训练误差最小的αt,即min Ein(α)。

上面的式子和之前介绍过的进行特征转换后的线性回归模型很类似,这里要求αt>=0这个限制条件。这样我们可以将gt(·)当做是特征转换,然后利用线性回归模型的方式求解α就可以了。

(2)忽略α的限制条件

在之前的线性回归模型中,我们没有用到系数的限制条件,这里我们该如何转化αt>=0这个限制条件的问题呢?

上面的式子告诉我们,当αt < 0的时候,我们可以将αt·gt(x)看做是一个正的系数|αt|乘上一个反向的gt。

我们可以设想二元分类的情况,如果有一个假设,其错误率是99%,那么当我们反过来用的时候,可以得到一个错误为1%的假设,即正确率为99%的假设。从这个角度来看,我们可以不用在意αt的正负问题。

(3)gt的选择

我们使用Blending算法,需要一些gt,那么gt通常是怎么得到呢?一般的,g从不同的模型,通过求最好的Ein得到的。

但是通过最小化Ein的方式进行选择最好的gt,需要付出复杂度代价很大,所以我们要使用最小化验证误差进行g的选择。所以,如果使用Ein来得到Linear Blending的gt就需要付出更大的复杂度代价了,很容易出现过拟合的问题。

实际上,Blending算法通过选择使得验证误差Eval最小的αt,而不是Ein;同时,为了让验证误差Eval和之前得到的gt相互独立,故之前得到的gt是从训练集合Etrain中得到的gt-

具体的流程是这样的:

从比较小的Dtrain数据集中得到一堆g1-g2-,…,gT-,然后将验证集合Dval中的数据通过g-转换成Z空间的数据

Linear Blending可以通过线性模型学习经过转换得到的(zn,yn),最后输出的是通过g-得到的α,和使用所有现有数据训练得到的g而不再是g-

同样的道理,我们也可以使用同样的流程来运用非线性的模型求解这个问题,这样就可以使得模型的能力更强,进而延伸到有条件的Blending模型(conditional blending)上,其缺点是可能出现过拟合的问题

如果上面不太明白gg-的区别,请看一下【机器学习基础】验证小结的介绍。

Bagging(Bootstrap Aggregation)

之前我们假设事先已经得到一对g,然后去做Blending的动作,现在我们可不可以一边学习g,一边将这些g综合起来?

如何得到不同的g

首先,我们要考虑一下可以通过什么方式得到不同的g:

  1. 从不同的模型得到不同的g
  2. 同一个模型,不同的参数得到不同的g
  3. 如果是算法本来是有随机的部分,可以得到不同的g
  4. 不一样的数据集得到不同的g,比如在进行交叉验证的时候,不一样的数据集切割可以得到不一样的g-

我们能不能通过一份数据得到不同的g呢?这就是我们接下来要做的工作。

再次回顾一下之前介绍的理论结果,即演算法的表现可以分成Bias和Variance。

这个理论背后的意义是,大家的共识比单一的意见(g)要好。

我们在之前的推导中要求有一组不同的数据,但是我们现在只有一笔数据可用,那么我们该如何做呢?

在上面的式子中的g的平均(g拔),是通过无限个数据集得到的g,然后进行平均;为了近似g的平均,我们使用有限个,但是很大的数量T代替;其次,利用统计学中bootstrapping方法来根据现有数据模拟生成新的数据。

bootstrapping

bootstrap采样的数据是通过在原有N个数据中随机平均地取出,记录下来之后再放回去重新抽取,这样取N次之后,得到的数据在统计学上称为bootstrap sample。

Bagging

bootstrap aggregation(BAGging)的方法是通过bootstapping的机制生成一系列不同的gt,然后这些gt用Uniform的方式投票,综合起来。

举例

下面的例子是用Pocket演算法求出的分类边界,这里的步骤是用boostrap的方法得到不同的数据集,然后对每一笔数据集运用Pocket算法,让每个Pocket算法跑1000次,得到25个分类线(灰色线),将这些分类线综合起来得到最终的非线性的边界(黑色线)。

转载请注明作者Jason Ding及其出处

GitCafe博客主页(http://jasonding1354.gitcafe.io/)

Github博客主页(http://jasonding1354.github.io/)

CSDN博客(http://blog.csdn.net/jasonding1354)

简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

百度搜索jasonding1354进入我的博客主页

时间: 06-10

【机器学习基础】混合和装袋的相关文章

机器学习实战笔记1(机器学习基础)

1:如何选择合适的算法 2:python简介 (1)   python的优势:相对于matlab,matlab单个软件授权就要花费数千美元,也没有一个有影响力的大型开源项目.相对于c++/c/java,完成简单的操作就需要编写大量的代码:而如今我们应该花费更多的时间去处理数据内在的含义,而无需花费太多精力解决计算机如何得到数据结果(python简洁) (2)   python具有numpy科学函数库,它是一个使运算更容易.执行更迅速的库:另外还有matplotlib绘图工具. 3:python语

第一章:机器学习基础

第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming).在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果.      监督学习一般使用两种类型的目标变量:标称型和数值型.标称型目标变量的结果只在有限目标集中取值,如真与假.动物分类集合{爬行类.鱼类.哺乳类.两栖类.植物.真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100.42.0

【机器学习实战】第1章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

机器学习读书笔记01 机器学习基础

顾名思义,机器学习的目的就是让机器具有类似于人类的学习.认识.理解事物的能力.试想一下,如果计算机能够对大量的癌症治疗记录进行归纳和总结,并能够给医生提出适当的建议和意见,那对病人的康复来说,是多么的重要.除了医疗领域,金融股票.设备维护.自动驾驶.航空航天等领域也对机器学习表现出了越来越多的关注. 大量的经济活动都依赖于信息,我们不能在海量的数据中迷失,机器学习将有助于我们穿越数据雾霭,从中抽取出有用数据. 开发机器学习应用的步骤 收集数据 准备输入数据 分析输出数据 训练算法 测试算法 使用

解读机器学习基础概念:VC维的来龙去脉

原作者:vincentyao  原文链接: http://dataunion.org/14581.html 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number of Hypotheses Growth Function Break Point与Shatter VC Bound VC dimension 深度学习与VC维 小结 参考文献 VC维在机器学习领域是一个很基础的概念,它给诸多机器学习方法的可学

机器学习基础题目

1. 在深度学习中,涉及到大量矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是: (AB)C 解析:首先,根据简单的矩阵知识,因为 A*B , A 的列数必须和 B 的行数相等.因此,可以排除C 选项. m*n 的矩阵 A 和 n*p 的矩阵 B 的乘积,得到 m*p 的矩阵 A*B ,而 A*B 的每个元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m*n*p 次乘法运算. 同

【机器学习基础】非线性变换

引言 在之前介绍的分类问题中,所涉及的分类的模型都是线性的,在非线性变换这一节中,我们将模型延伸到非线性的情况下来进行数据的分类. 二次假设(Quadratic Hypotheses) 我们看到上面的例子,在左图中,圆圈和红叉的数据无法用一条直线将其分成两类,那么这这个例子中,我们其实可以用一个大圆圈将数据分类,所以现在我们考虑假设,该假设hSEP(x)是一个过原点的圆圈,这启示我们可以用系统化的方法结合之前我们学习的线性分类的方法,来解决更加广泛的问题. 还是拿上面的这个圆圈的Φ假设为例,h(

机器学习基础

2017-06-25 20:53:07 一.机器学习的定义 Tom Mitchell:机器学习是对能通过经验自动改进的计算机算法的研究.机器学习可以彰显数据背后真正的含义. 二.机器学习的分类 (1)监督学习 supervised learning 所谓监督学习,就是指在学习过程中会有一组标准答案提供,监督学习从给定的训练集中学习出一个函数当新的数据到来时,便可以根据这个函数给出预测. 监督学习有两种目标变量,一种是连续型的数值型变量,一般这种目标函数适合用回归分析:另一种是离散型的标称型变量,

机器学习 —— 基础整理(六):线性判别函数——感知器、松弛算法、Ho-Kashyap算法

本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 (一)线性判别函数与广义线性判别函数 一.线性判别函数 这篇总结继续关注分类问题.假设判别函数(Discriminant function)的参数形式已知,用训练的方法直接根据样本估计判别函数的参数.线性判别函数的形式为: $$g(\textbf x)=\textbf w^{\top}\textbf x+w_0$$ $\textbf x\in \mathbb R^d$ 是