机器学习技法课程学习笔记7 -- Blending and Bagging
来源:互联网 发布:新电脑怎么连接网络 编辑:程序博客网 时间:2024/05/21 19:57
上节课我们主要介绍了Support Vector Regression,将kernel model引入到regression中。首先,通过将ridge regression和representer theorem结合起来,得到kernel ridge regression。但是其解是dense的,即不部分不为零。为了得到sparse解,我们将regularized tube error和Lagrange dual结合起来,利用SVM dual的推导方法,得到support vector regression的sparse解。本系列1-6节课主要介绍Kernel Models及其应用,从本节课开始,讲介绍Aggregation Models,即如何将不同的hypothesis和features结合起来,让模型更好。本节课将介绍其中的两个方法,一个是Blending,一个是Bagging。
Motivation of Aggregation
首先举个例子来说明为什么要使用Aggregation。假如你有T个朋友,每个朋友向你预测推荐明天某支股票会涨还是会跌,对应的建议分别是
第一种方法是从T个朋友中选择一个最受信任,对股票预测能力最强的人,直接听从他的建议就好。这是一种普遍的做法,对应的就是validation思想,即选择犯错误最小的模型。第二种方法,如果每个朋友在股票预测方面都是比较厉害的,都有各自的专长,那么就同时考虑T个朋友的建议,将所有结果做个投票,一人一票,最终决定出对该支股票的预测。这种方法对应的是uniformly思想。第三种方法,如果每个朋友水平不一,有的比较厉害,投票比重应该更大一些,有的比较差,投票比重应该更小一些。那么,仍然对T个朋友进行投票,只是每个人的投票权重不同。这种方法对应的是non-uniformly的思想。第四种方法与第三种方法类似,但是权重不是固定的,根据不同的条件,给予不同的权重。比如如果是传统行业的股票,那么给这方面比较厉害的朋友较高的投票权重,如果是服务行业,那么就给这方面比较厉害的朋友较高的投票权重。以上所述的这四种方法都是将不同人不同意见融合起来的方式,接下来我们就要讨论如何将这些做法对应到机器学习中去。Aggregation的思想与这个例子是类似的,即把多个hypothesis结合起来,得到更好的预测效果。
将刚刚举的例子的各种方法用数学化的语言和机器学习符号归纳表示出来,其中G(x)表示最终选择的模型。
第一种方法对应的模型:
第二种方法对应的模型:
第三种方法对应的模型:
第四种方法对应的模型:
注意这里提到的第一种方法是通过验证集来选择最佳模型,不能使用
但是第一种方法只是从众多可能的hypothesis中选择最好的模型,并不能发挥集体的智慧。而Aggregation的思想是博采众长,将可能的hypothesis优势集合起来,将集体智慧融合起来,使预测模型达到更好的效果。
下面先来看一个例子,通过这个例子说明为什么Aggregation能work得更好。
如上图所示,平面上分布着一些待分类的点。如果要求只能用一条水平的线或者垂直的线进行分类,那不论怎么选取直线,都达不到最佳的分类效果。这实际上就是上面介绍的第一种方法:validation。但是,如果可以使用集体智慧,比如一条水平线和两条垂直线组合而成的图中折线形式,就可以将所有的点完全分开,得到了最优化的预测模型。
这个例子表明,通过将不同的hypotheses均匀地结合起来,得到了比单一hypothesis更好的预测模型。这就是aggregation的优势所在,它提高了预测模型的power,起到了特征转换(feature transform)的效果。
我们再从另外一方面来看,同样是平面上分布着一些待分类的点,使用PLA算法,可以得到很多满足条件的分类线,如下图所示:
这无数条PLA选择出来的直线对应的hypothesis都是满足分类要求的。但是我们最想得到的分类直线是中间那条距离所有点都比较远的黑色直线,这与之前SVM目标是一致的。如果我们将所有可能的hypothesis结合起来,以投票的方式进行组合选择,最终会发现投票得到的分类线就是中间和黑色那条。这从哲学的角度来说,就是对各种效果较好的可能性进行组合,得到的结果一般是中庸的、最合适的,即对应图中那条黑色直线。所以,aggregation也起到了正则化(regularization)的效果,让预测模型更具有代表性。
基于以上的两个例子,我们得到了aggregation的两个优势:feature transform和regularization。我们之前在机器学习基石课程中就介绍过,feature transform和regularization是对立的,还把它们分别比作踩油门和踩刹车。如果进行feature transform,那么regularization的效果通常很差,反之亦然。也就是说,单一模型通常只能倾向于feature transform和regularization之一,在两者之间做个权衡。但是aggregation却能将feature transform和regularization各自的优势结合起来,好比把油门和刹车都控制得很好,从而得到不错的预测模型。
Uniform Blending
那对于我们已经选择的性能较好的一些矩
最常用的一种方法是uniform blending,应用于classification分类问题,做法是将每一个可能的矩赋予权重1,进行投票,得到的G(x)表示为:
这种方法对应三种情况:第一种情况是每个候选的矩
如果是regression回归问题,uniform blending的做法很简单,就是将所有的矩
uniform blending for regression对应两种情况:第一种情况是每个候选的矩
对于uniform blending,一般要求每个候选的矩
刚才我们提到了uniform blending for regression中,计算
推导过程中注意
刚才是对单一的x进行证明,如果从期望角度,对整个x分布进行上述公式的整理,得到:
从结果上来看,
我们已经知道G是数目为T的
当T趋于无穷大的时候,
上述等式中左边表示演算法误差的期望值;右边第二项表示不同
Linear and Any Blending
上一部分讲的是uniform blending,即每个
如何确定
这种求解
我们来看一下linear blending中的constraint
Linear Blending中使用的
除了linear blending之外,还可以使用任意形式的blending。linear blending中,G(t)是g(t)的线性组合;any blending中,G(t)可以是g(t)的任何函数形式(非线性)。这种形式的blending也叫做Stacking。any blending的优点是模型复杂度提高,更容易获得更好的预测模型;缺点是复杂模型也容易带来过拟合的危险。所以,在使用any blending的过程中要时刻注意避免过拟合发生,通过采用regularization的方法,让模型具有更好的泛化能力。
Bagging(Bootstrap Aggregation)
总结一些上面讲的内容,blending的做法就是将已经得到的矩
现在考虑一个问题:如何得到不同的
那如何利用已有的一份数据集来构造出不同的
其中,
有限的T;
由已有数据集D构造出
Dt PN ,独立同分布
第一个条件没有问题,第二个近似条件的做法就是bootstrapping。bootstrapping是统计学的一个工具,思想就是从已有数据集D中模拟出其他类似的样本
bootstrapping的做法是,假设有N笔资料,先从中选出一个样本,再放回去,再选择一个样本,再放回去,共重复N次。这样我们就得到了一个新的N笔资料,这个新的
下面举个实际中Bagging Pocket算法的例子。如下图所示,先通过bootstrapping得到25个不同样本集,再使用pocket算法得到25个不同的
值得注意的是,只有当演算法对数据样本分布比较敏感的情况下,才有比较好的表现。
总结
本节课主要介绍了blending和bagging的方法,它们都属于aggregation,即将不同的
注明:
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 机器学习技法课程学习笔记7 -- Blending and Bagging
- 台湾大学林轩田机器学习技法课程学习笔记7 -- Blending and Bagging
- 机器学习技法-Blending and Bagging
- coursera机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting
- 机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting
- 《机器学习技法》第七讲:Blending and Bagging
- 机器学习笔记-Blending and Bagging
- 台湾国立大学机器学习技法.听课笔记(第七讲):Blending(混合) and Bagging(自举)
- 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
- 机器学习技法课程学习笔记8 -- Adaptive Boosting
- 机器学习技法课程学习笔记5-- Kernel Logistic Regression
- 机器学习技法课程学习笔记6-- Support Vector Regression
- 机器学习技法课程学习笔记9 -- Decision Tree
- 机器学习技法课程学习笔记10 -- Random Forest
- 机器学习技法课程学习笔记12-- Neural Network
- 机器学习技法课程学习笔记13-- Deep Learning
- 机器学习技法课程学习笔记15 -- Matrix Factorization
- 机器学习技法课程学习笔记16 -- Finale
- 2017年美团校招后台开发部分题解
- 新建gradle项目 并添加springboot框架支持
- Ruby学习笔记(08)_模块Module
- Uri获取Bitmap
- 412. Fizz Buzz
- 机器学习技法课程学习笔记7 -- Blending and Bagging
- 升级openwrt中的ffmpeg版本
- jsp JSTL之foreach
- JVM参数调优
- 关于setInterval和setTImeout中的this指向问题
- Java多线程-线程的状态
- 通过选择器改变字体颜色
- JAVA编程获取音频时长
- sql之left join、right join、inner join的区别