Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记。

混合(blending)

本笔记是Course上台湾大学林轩田老师的《机器学习技法课》的学习笔记,用于学习之后的一些总结。

首先,对于Aggregation模型,其基本思想就是使用不同的 g t 来合成最后的预测模型 G t 。

对于合成的方式主要有四种:

方法 数学描述
1. 选择。选择最值得可信的 g t 来当做最终的模型,而这个 gt 可以使用validation set 来进行选择 $$G(x)=argmin { t \in {1,2...T} }E {val} (g_t)$$
2. 均一式(uniform)混合(blending)。使用每个 g t 一票的方式来决定最终的 G t G ( x ) = s i g n ( ∑ T t = 1 1 ⋅g t ( x ) )
3. 非均一式(non-uniform)混合。对于不同的 g t 给予不同的权重。该方法包含了上述两种方法,a. 当 α t = 1 时,是uniform混合,b. E v a l ( g ( t ) ) 最小的 g t 的 α t 为1,其他都是0,这就是选择方法 G ( x ) = s i g n ( ∑ T t = 1 α t gt ( x ) ) , α t ≥ 0
4. 条件是混合。在不同的条件下选择不同的 g t ,该方法包含了non-uniform方法,当 q t ( x ) = α t 时 G ( x ) = s i g n ( ∑ T t = 1 q t (x ) ⋅ g t ( x ) ) , q t ( x ) ≥ 0

选择

该方法的

优点:简单,流行

缺点:依赖一个很强的假设

在该方法中, g t 是使用validation set来进行选择的,选择的标准是 g t 在验证集上的错误率 $E {val}(g_t) 最 低 , 但 如 果 使 用 E {in}(g_t) 来 代 替 E {val}(g_t) , 则 需要 一 个 很 强 的 假 设 来 保 证 会 有 一 个 很 小 的 E {val}(g_t) 以 及 E_{out}(g_t)$.

均一式混合(uniform blending)

此方法最好是能够有不同的 g t ,这样能从多方面的刻画数据,使得结果更加符合明主的方式,让小数服从多数。

该方法不仅适用于2分类,也适用于多分类,还适合回归问题。 对于回归问题: G (x ) = 1 T ∑ T t = 1 g t ( x )

uniform blending还有一个优点是,使用blending的方式产生的结果,比将每个单独的 g t 的结果加起来再取平均的结果还好。

下面是理论分析:

上述理论表明,使用投票的方法产生的误差要比使用单独的 g t 的结果之和再平均产生的误差要小。

非均一式混合(non-uniform blending) 或者 线性混合(linear blending)

其中对于 α t 的限制是可以不需要的,因为当 α < 0 时,相当于对 g t 进行取反而已。

条件式混合

learning(学习)

在Aggregation模型中,除了blending(混合)之外,还有一种思想,就是在混合的过程中,同时进行 g t 的生成,这种思想就是learning。混合的思想是,所有的 g t 都是已知的,重点在于每个 g t 的参数以及 g t 是怎么产生的。

在learning的模型中,最关键也在 g t 的多样性,多样性可以从以下几个方面来获得:

  1. 使用不同的模型来产生 g t ,比如SVM,NB等

  2. 同一个模型,使用不同的参数

  3. 有些算法本身就具有随机性,比如PLA使用不同的随机种子

  4. 使用不同的训练数据来获得模型,可以对数据进行采样获得多份不同的数据

混合和学习三种不同集成方式下的对照表

集成方式 blending(混合) learning(学习)
均一方式(uniform) voting(投票)/averaging Bagging
非均一方式(non-uniform) linear blending AdaBoost
条件式(conditional) Stacking(Any blending) Decision Tree

Bagging

由上面可知,当bagging模型中的基本算法对数据的随机性敏感的话,该算法会比较有效。

AdaBoost

AdaBoost的基本思想是对每个样本赋予不同的权重,来产生一个 g t ,整个算法会有T轮迭代,每一轮迭代产生的 g t 是根据上一轮的 g t − 1 来获得的。在迭代过程中,会增大分类错误样本的权重,降低分类正确的样本的权重。

算法流程:

具体过程可以参考这篇博文:AdaBoost算法的原理与推导

Decision Tree

决策树的优缺点:

决策树的基本流程:

其中有四个关键点。

  1. 分支的个数(C)

  2. 产生分支的条件

  3. 算法终止条件

  4. 基本假设

对于上述4个关键点,CART(Classification and Regression Tree)使用了独特参数。

  1. C = 2, 产生的树是一个二叉树

  2. 对于产生分支的条件,使用了数据的纯洁度来进行度量

  3. 算法的终止条件是:

  4. 所有 y n 是一样的: i m p u r i t y = 0 ⇒ g t ( x ) = y n

  5. 所有的 x n 是一样的: 没有决策桩,既无法产生决策点

  6. 基本假设是:

g t ( x ) = E i n − o p t i m a l c o n s t a n t

  • binary/multiclass classification (0/1 error): majority of { y n }

  • regression (squared error): average of { y n }

算法基本流程:

按照上述算法生成的是一颗满二叉树,这样的结果是会造成overfit,因此需要进行剪枝。

CART的优点是:

  1. 适用于类别标签数据

  2. 对一些有缺失的数据也能够起作用

  3. 是具有可解释性的

  4. 支持多标签数据

  5. 分类的过程非常高效

上面这些优点也是其他算法很难同时具备的,除了其他的一些决策树算法。

Aggregation of Aggregation

将上述各个算法进行进一步融合,便得到了更加复杂的算法。

比如:Random Forest, Gradient Boosted Decision Tree

Random Forest

基本算法流程:

在这讲中还讲到了几个概念:

  1. OOB,就是在boost的过程中,需要对数据进行采样,这样就会造成有些数据一直没有被采样过。

  2. Feature Selection(特征选择),在RF中,使用的是一种叫排列测试来进行特征选择

上述两点都是RF的优点,在训练过程中不需要额外的validation set,使用OOB既可以进行自我检验;在训练过程中还可以进行特征选择,能选出那些重要的特征。

Gradient Boosted Decision Tree

这一节还没怎么听懂。

先贴一个算法流程:

对于整个Aggregation Models的总结

机器学习技法课之Aggregation模型的更多相关文章

  1. 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation

    本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结.包含从静态的融合方法blending(已经有了一堆的g,通过uniform:voti ...

  2. Coursera台大机器学习技法课程笔记01-linear hard SVM

    极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www ...

  3. 《机器学习技法》---核型SVM

    (本文内容和图片来自林轩田老师<机器学习技法>) 1. 核技巧引入 如果要用SVM来做非线性的分类,我们采用的方法是将原来的特征空间映射到另一个更高维的空间,在这个更高维的空间做线性的SV ...

  4. Coursera台大机器学习技法课程笔记11-Gradient Boosted Decision Tree

    将Adaboost和decision tree相结合,需要注意的地主是,训练时adaboost需要改变资料的权重,如何将有权重的资 料和decision tree相结合呢?方法很类似于前面讲过的bag ...

  5. 《机器学习技法》---线性SVM

    (本文内容和图片来自林轩田老师<机器学习技法>) 1. 线性SVM的推导 1.1 形象理解为什么要使用间隔最大化 容忍更多的测量误差,更加的robust.间隔越大,噪声容忍度越大: 1.2 ...

  6. 机器学习技法笔记(2)-Linear SVM

    从这一节开始学习机器学习技法课程中的SVM, 这一节主要介绍标准形式的SVM: Linear SVM 引入SVM 首先回顾Percentron Learning Algrithm(感知器算法PLA)是 ...

  7. 机器学习技法总结(四)(aggregation,vote,bootstrap...)

    研究的动机是:我们采用了不同的模型得到T个不同的g,那么我们是不是可以通过这些不同的g的融合得到更加出色的G呢?因此,便有了以上四种不同的方法:1)(select)直接选择最好的一个作为融合的结果:2 ...

  8. 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树

    上一讲主要利用不同模型计算出来的g.採用aggregation来实现更好的g.假设还没有做出来g.我们能够採用bootstrap的方法来做出一系列的"diversity"的data ...

  9. 机器学习技法-神经网络(NNet)

    课程地址:https://class.coursera.org/ntumltwo-002 重要!重要!重要~ 一.神经网络(NNet)的动机 神经网络有很久的历史,由感知机(perceptron)模型 ...

随机推荐

  1. html/css/javascript的含义、作用及理解

    HTML(HyperText Markup Language/超文本标记语言) 含义:HTML是一种用于创建网页的标准标记语言. 作用:页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 理解:主 ...

  2. MySQL意外关闭, 导致软件崩溃而无法启动的解决办法

    在初次搭建XAMPP,Apache和MySQL都可以正常启动,一旦关机重启XAMPP时,发现Apache可以正常启动:而MySQL却不能正常运行,会碰到 Error: MySQL shutdown u ...

  3. php判断多维数组的技巧

    直接上代码吧: if(count($array) == count($array, 1)){ echo '一维数组'; }else{ echo '多维数组'; } 看了下手册 int count (m ...

  4. Web性能优化工具WebPageTest(二)——性能数据

    在前一篇<配置>完成后,点击“START TEST”,就可以开始测试,测试需要一段时间. 有时候可能还要排队,如下图所示,测试完成后可查看到测试结果. 一.Summary 1)优化等级 优 ...

  5. 因为文件组 'PRIMARY' 已满 解决办法

    简介:文件组 'PRIMARY' 已满 一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数 ...

  6. 【HDOJ 1086】 模板水过

    You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3 ...

  7. CPP--借助神器VS理解内存存储

    之前也有想了解这些,第一个不是学底层的不知道从何理解,第二个上网搜概念,大牛们三言两语就结束了,举得例子也比较复杂,对于非C方向的可能有点吃力,所以一直没理解. 今天偶然发现原来还要内存窗口之说,就慢 ...

  8. 以防忘记,建立stm32工程的过程

    然后会弹出manage run -time environment的运行环境界面,必须选择的有CMSIS下的core和device下的startup,至于其它的根据你需要的外设, 在stdperiph ...

  9. 兼容IE8的input输入框的正确使用姿势

    input是一个很常见的标签,大家使用的也很常见,但是我在具体的工作中发现要想完美的使用这个标签还是任重而道远,下面是我碰到的几个问题. 1.我们在使用这个标签的时候会习惯的加上placeholder ...

  10. javascript——数据类型

    在内存中,分为栈.堆.代码段.静态区,为了快速处理复杂的代码,在不同的区间储存不同的数据类型. 数据类型分为初始类型与引用类型,初始类型在栈中存储,变量赋值传值不传址,引用类型在堆中存储,传址不传值. ...