机器学习笔记-Blending and Bagging
来源:互联网 发布:mac双系统 没了一个 编辑:程序博客网 时间:2024/06/06 19:55
集成学习系列:
- Blending and Bagging
- Adaptive Boosting
- Decision Tree
- Random Forest
- Gradient Boosted Decision Tree
Blending and Bagging
为什么要用aggregation
如果我们已经有了一些模型
那么为什么要用
一个关于aggregation的故事
假如你有15个朋友,这15个朋友都告诉你明天股市的涨跌预测,那么你在听取了这15个朋友的预测之后,如何决定呢?
select from usual performance
从他们的平常的表现中选择最厉害的那个人,听取他的意见作为最后的决策依据,这也就是我们以前学过的validation 的方法,mix uniformly
但是如果只听一个人的,白白浪费了其余人的判断力,浪费了资源。所以另一种方式是以每人一票的方式,让这15个朋友进行投票,综合他们的判断做出最后的结果,mix non -uniformly
但是考虑到可能每一个人的能力确实不尽相同,所以可以选择另外一种投票的方式:可以信赖的人给多一点的票数,不是那么可以信赖的人的票数可以少一点。combine conditionally
又或者是可以根据具体的情况来进行选择, 例如这些朋友中有些人擅长分析科技类的股票,有些人擅长传统产业的股票,那么在不同的情况下,就选择听取不同的人的意见。⋯
我们想要将这15个人的意见融合起来的事情, 就是
我们将上述的这个问题用数学的形式表示出来:每一个朋友就代表每一个
select from usual performance G(x)=gt∗ with t∗=argmint∈1,2,⋯,T Eval(g−t) mix uniformly G(x)=sign(∑t=1T1⋅gt(x)) mix non -uniformly G(x)=sign(∑t=1T αt⋅gt(x)) with αt≥0
通过参数α 给每一个gt 不同的权重。这种情况是包括前两种情况的:- 当
αt=|[Eval(gt) smallest]| 的时候,是第一种情况。(其中1=|[◯]|,if ◯ 成立;0=|[◯]|,if ◯ 不成立) - 当
αt=1 的时候,是第二种情况。
- 当
combine conditionally G(x)=sign(∑t=1Tqt(x)⋅gt(x)) with qt(x)≥0
权重的参数不再是α ,而是变成了和输入特征x 相关的函数qt(x) 。- 当
qt(x)=αt 的时候,就是以上的第三种情形。
- 当
Selection by Validation
考虑上述提出的最简单的第一种情形,利用
而这里我们重点要谈论的
为什么Aggregation可以work的很好呢
为什么
从以上的结果可以看出来,如果只有一些弱弱的
另一个对
以前我们的认识是,
Uniform Blending
上面比较直观的讲解了
我们可以使用
如果对所有的
Uniform Blending用于分类
对于二元分类
- 如果所有已知的
g(x) 是相同的,那么aggregation 是没有效果的 - 如果所有已知的
g(x) 差距很大,多数的意见会纠正少数的意见。例如在以下的问题中,共有三个g(x) :两个垂直线,一个水平线。对于数据点1和2来说,有两条线说它们是∘ (左边的垂直线和水平线),一条线(右边的的垂直线)说它们是× ,所以它们被划分为∘ 。对于其他的数据点来说也是使用这样的规则来进行划分的。 - 如果是多分类问题:那么我们就需要统计数据点在每一个类别上的“得票数”,将得票数最多的为该数据点的类别。
G(x)=argmax1≤k≤K∑t=1T|[gt(x)=k]|
Uniform Blending用于回归
- 如果所有已知的
g(x) 是相同的,那么aggregation 是没有效果的 - 如果所有已知的
g(x) 差距很大,那么对于一个数据点来说,有些g(x) 可能低估了, 有些g(x) 可能高估了,这样的话,它们的平均值就可能会估计的更准确一下。
小结: 如果
Uniform Blending的理论分析
针对
如果只是针对特定的
接下来我们想要分析的问题是:
即比较
当对所有的
所以可以得到的是:
也就是说在使用
variance,bias
偏差
方差
假设在每一轮的学习中,由N笔资料训练得到
所以一个学习算法的表现可以拆分为两项,这个学习算法产生的共识和每一个
这块和西瓜书上写的有点不符合:日后补充
E(f,D)=bias2(x)+var(x)+ε2 (西瓜书)
所以通过这样的
Linear and Any Blending
那么现在的问题就是要求解这些参数
如果我们现在要做的是
Linear blending for regression
minαt≥0Ein(α)=minαt≥01N∑n=1N(yn−∑t=1Tαtgt(xn))2
如果将
linear regression + transformation
minwi≥01N∑n=1N(yn−∑i=1d~wiϕi(xn))(1)
所以我们可以说:
这个问题的求解不同于以往的仅仅是多了个
所以
现在我们来关注一下一个基本的问题:那些
所以如果在做
同样的,如果我们使用
Linear Blending
- 将数据分为
train data 和validation data - 从
Dtrain 得到g−1,g−2,⋯,g−T - 将
Dval 中的数据(xn,yn) 利用g−1,g−2,⋯,g−T 这些“特征转换”变换为(zn=Φ−(xn),yn) ,其中Φ−(x)=(g−1(x),⋯,g−T(x)) - 利用线性模型求解资料
{(zn,yn)} 上的α ,α=Lin({(zn,yn)}) - 返回最后的结果
GLinB(x)=Lin(innerprob(α,Φ(x))) ,
需要注意的是,
Any Blending
在第4步中,我们也可以考虑不使用线性模型,而是使用非线性的模型
- 将数据分为
train data 和validation data - 从
Dtrain 得到g−1,g−2,⋯,g−T - 将
Dval 中的数据(xn,yn) 利用g−1,g−2,⋯,g−T 这些“特征转换”变换为(zn=Φ−(xn),yn) ,其中Φ−(x)=(g−1(x),⋯,g−T(x)) g=Any({(zn,yn)}) - 返回
GanyB=g(Φ(x))
这样模型会更加的
Bagging (Bootstrap Aggregation)
如果已经通过某些方法得到了很多的
这里有有一个很关键和很基础的问题是,这些
- 不同的模型可能会得到不同的
g - 对于用一个模型,不同的参数可能会得到不同的模型:例如对于
GD 算法来说,当η=0.001,0.01,0.1⋯10 的时候会得到不同的模型。 - 不同的初始值可能会得到不同的模型,例如
PLA 算法 - 资料的不同可以得到不同的模型,例如当在做
cross validation 的时候,不用的几份数据可能会得到不同的g 。
接下来我们使用的方式是使用同一份资料来制作不用的
Bootstrapping Aggregation
bootstrapping:从原有的
bagging(bootstrapaggregation)
- 通过
bootstrapping 的方式抽取大小为N′ 的资料D~t - 从资料
D~t 利用算法A 中得到不同的gt - 对
gt 做融合G(x)=Uniform({gt})
这样的方法我们称为
Bagging Pocket的表现
由于
如果算法
总结
这篇主要是
- 机器学习笔记-Blending and Bagging
- 机器学习技法课程学习笔记7 -- Blending and Bagging
- 机器学习技法-Blending and Bagging
- 台湾大学林轩田机器学习技法课程学习笔记7 -- 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
- 台大机器学习听课笔记---Bagging 7-4
- 机器学习笔记(六)Bagging及随机森林
- 机器学习中的bagging技巧
- 机器学习算法--bagging算法
- 集成学习---bagging and boosting
- 机器学习:集成学习算法Bagging,Boosting
- 机器学习-->集成学习-->Bagging,Boosting,Stacking
- 机器学习-->集成学习-->Bagging,Boosting,Stacking
- Qt属性系统详解
- eclipse安装python插件(window环境)
- QT QGraphicsScene、QGraphicsItem、QGraphicsProxyWidget、QWidget间的事件传递
- Ubuntu安装配置串口通讯工具minicom&&cutecom
- HBase PerformanceEvaluation机制分析
- 机器学习笔记-Blending and Bagging
- 中英文姓名及手机号的正则表达式
- QGraphicsProxyWidget 与 QWidget 点滴
- ImageLoader多张图片&listview多条目加载
- Java基础学习之——接口的作用和抽象类的区别
- 操作系统基础
- Visual Studio2008 左侧显示行号
- bzoj2668 [cqoi2012]交换棋子
- RPG难题(找规律,也开看作DP)