Blending
在训练样本中学习得到若干个gt
G= 1/T ∑ t gt
则:
此时是对于一个样本x 如果是对于所有的样本那么就变成了
avg(Eout(gt))= avg(ε(gt-G)2)+Eout(G)
此时可以看做
Eout(G) 代表多个g和真正分布之间的差距 叫做bias
而 gt 和G之间的差距称作 variance
对于回归问题而言 blending for regression 需要优化的目标函数为
仔细观察 其实可以将其理解为特征空间转化之后的线性回归问题 即
这里的i代表的是特征转换之后的特征维度的大小
这里做的特征转化 Φ(xn)=(g1(xn),g2(xn),g3(xn)…gn(xn))
那么在实际的使用过程中 首先使用训练样本Dtrain训练得到若干个 g1-,g2-,…gn-,然后将验证集中的数据Dval 通过上述所得的g-进行转化 由(xn,yn) 转化为 (zn,yn) 其中zn=(g1-(xn),g2-(xn),g3-(xn)…)
注意回传的时候传回的是正常的g而非 g-
同时不一定非要使用线性的Blending,如果使用非线性的模型做blending 则称为stacking
而对于blending 无论是给每一个hypothesis 一个固定的权重(voting,average)的uniform blending 还是使用线性模型组合的linear blending 或者使用非线性模型进行的stacking ,其前提条件都是我们已经有了一系列的hypothesis 我们使用g表示,那么能不能通过一遍学习得到g一边将g就行组合呢?
下面是可能得到不同的g
那我们接下来想要得到的是对于我们手上固定的训练样本 如何通过这些训练样本得到若干个不同的g
这时需要引入bootstrap的概念
bootstrap 要做的是在训练样本D中每次有放回的区N笔资料 这里选取N笔资料所有可能性为NN种
使用bootstrap得到的不同样本 训练不同的hypothesis 可得不同hypothesis