主讲人 网神
(新浪微博: @豆角茄子麻酱凉面)
网神(66707180) 18:57:18
大家好,今天我们讲一下第14章combining models,这一章是联合模型,通过将多个模型以某种形式结合起来,可以获得比单个模型更好的预测效果。包括这几部分:
committees, 训练多个不同的模型,取其平均值作为最终预测值。
boosting: 是committees的特殊形式,顺序训练L个模型,每个模型的训练依赖前一个模型的训练结果。
决策树:不同模型负责输入变量的不同区间的预测,每个样本选择一个模型来预测,选择过程就像在树结构中从顶到叶子的遍历。
conditional mixture model条件混合模型:引入概率机制来选择不同模型对某个样本做预测,相比决策树的硬性选择,要有很多优势。
本章主要介绍了这几种混合模型。讲之前,先明确一下混合模型与Bayesian model averaging的区别,贝叶斯模型平均是这样的:假设有H个不同模型h,每个模型的先验概率是p(h),一个数据集的分布是:
整个数据集X是由一个模型生成的,关于h的概率仅仅表示是由哪个模型来生成的 这件事的不确定性。而本章要讲的混合模型是数据集中,不同的数据点可能由不同模型生成。看后面讲到的内容就明白了。
首先看committes,committes是一大类,包括boosting,首先将最简单的形式,就是讲多个模型的预测的平均值作为最后的预测。主要讲这么做的合理性,为什么这么做会提高预测性能。从频率角度的概念,bias-variance trade-off可以解释,这个理论在3.5节讲过,我们把这个经典的图copy过来:
这个图大家都记得吧,左边一列是对多组数据分别训练得到一个模型,对应一条sin曲线,看左下角这个图,正则参数lamda取得比较小,得到一个bias很小,variance很大的一个模型 。每条线的variance都很大,这样模型预测的错误就比较大,但是把这么多条曲线取一个平均值,得到右下角图上的红色线,红色线跟真实sin曲线也就是蓝色线 基本拟合。所以用平均之后模型来预测,variance准确率就提高了很多,这是直观上来看,接下里从数学公式推导看下:
有一个数据集,用bootstrap方法构造M个不同的训练集bootstrap方法就是从数据集中随机选N个放到训练集中,做M次,就得到M个训练集,M个训练集训练的到M个模型,用表示,那么用committees方法,对于某个x,最终预测值是:
我们来看这个预测值是如何比单个预测值准确的,假设准确的预测模型是h(x),那么训练得到的y(x)跟h(x)的关系是:
后面那一项是模型的error
ZealotMaster(850458544) 19:24:34
能使error趋近于0嘛?
网神(66707180) 19:25:13
模型越好越趋近于0,但很难等于0,这里committes方法就比单个