博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习技法笔记-Lecture 7 Blending and bagging
阅读量:4942 次
发布时间:2019-06-11

本文共 1295 字,大约阅读时间需要 4 分钟。

blending和bagging都是 aggregation的方式。将许多不同的g组合成新的G.

 

首先引入几种aggregation的方式

selection的方法是从备选中挑出最好的模型,aggregation的方法则希望能够将多个weaker的模型融合一起变强。

 

适当的aggregation可能起到特征转化与正则的作用,得到更好的效果。

 

blending 混合

uniform blending在分类上,就是投票。

在多分类问题上,对预测的x,选取投票最多的类别

 

uniform blending在回归上,就是求均值。

aggretation的效果要好,一个很重要的前提是g_t之间要有差别 (diverse),不能过于相似。

 

以下证明了在平方误差下,G的Eout要比g的Eout小。

 

然后给出了 expected performance of A 演算法的平均表现的概念

假设一个演算法T个在size为N的data上得到各个g_t,另T趋近无限大,得到g平均

将g平均代换掉G

左侧称为演算法表现的期望,右边第一项是 g_t与共识的差别,第二项是共识的表现。

uniform blending求平均其实就是减少variance的过程。

 

linear blending 

投票的权重不一样。alpha的求解同样是最小化Ein的过程。

左边的linear blending for regression的问题可以看做是 对特征的transform后再做LR的过程。

在二分类中alpha>0的条件可以忽略,因为对于不好的g,取反可能更好。

 

上面讲到的alpha的求解,是最小化Ein,其实也是增加了模型的vc维,所以最好使用minEval来求解alpha.

 

any blending(stacking)

在train set上得到的多个了 g-,将样本点表示为,相当于把训练出来的每个g-(x)看做特征,再丢到linear model(linear blending)或者其他model里面进行训练(数据集换成validation set)。

一个blending的例子。单模型-stacking

 

blending首先需要一堆g,这些g最好是diverse的。那一般是怎么得到的呢?

可以从不同模型中学到不同的g

可以对算法使用不同的参数学到不同的g

或者利用算法的随机性,比如PLA初始w不同最后的结果也不一样

或者资料具有随机性,比如cv后,每次的g-会不一样

下面介绍的bagging就是通过data的随机性来得到多个g的方法。

bagging ( bootstrap aggregation)

bootstrapping是一个re-sample的过程,在size N的样本中每次有放回地抽取 N’个样本,用这些样本去训练得到g。

重复这个过程T次,那么就能得到T个g的平均。

如果算法对数据敏感的时候,得到的g可能就会很不一样,那么aggregation的表现可能就会很好。

 

转载于:https://www.cnblogs.com/akanecode/p/7055151.html

你可能感兴趣的文章
[leetcode]250. Count Univalue Subtrees统计节点值相同的子树
查看>>
理解Backtracking
查看>>
T3 光
查看>>
搭建交叉调试环境 arm-linux-gdb配合gdbserver
查看>>
使用Jsoup 抓取页面的数据
查看>>
使用命令批量对文件中出现的字符串进行替换
查看>>
C#获取URL参数值
查看>>
Struts 框架 之 文件上传下载案例
查看>>
【重走Android之路】【路线篇(二)】知识点归纳
查看>>
graphviz入门
查看>>
scanf中的%[^\n]%*c格式
查看>>
用jquery来实现类似“网易新闻”横向标题滑动的移动端页面
查看>>
CSS可以和不可以继承的属性
查看>>
eclipse每次当我按ctrl+鼠标点击代码,自动关闭,产生原因及解决办法!!
查看>>
hbase
查看>>
用PHP将Unicode 转化为UTF-8
查看>>
HDOJ1002 A+B Problem II
查看>>
ADB server didn't ACK(adb不能开启
查看>>
Python基础(三)
查看>>
Continuous integration
查看>>