Task03
目标
- 理解泛化误差分解的过程
- bagging的性质
- 掌握四种集成模式的工作流程
均方误差
训练均方误差:训练集上的数据,那么这个误差为训练均方误差
测试均方误差:测试集的数据计算的均方误差,我们称为测试均方误差
目标:我们并不关心模型在训练集上的训练均方误差,我们关心的是模型面对未知的样本集,即测试集上的测试误差,我们的目标是使得我们建立的模型在测试集上的测试误差最小。
训练误差达到最小时,测试均方误差一般很大.
模型的方差
模型的方差:用不同的数据集去估计ff时,估计函数的改变量,例如:100个1000人的样本集。我们使用线性回归模型估计参数就能得到100个线性回归模型。由于样本抽取具有随机性,我们得到的100个模型不可能参数完全一样,那么这100个模型之间的差异就叫做方差。一个稳定的模型,也就是在不同的样本集估计的模型都不会相差太大,即要求f的方差越小越好。一般来说,模型的复杂度越高,f的方差就会越大。方差度量的是同一个模型在不同数据集上的稳定性
模型的偏差:以一个的模型去估计真实函数时存在的误差,偏差度量了某个学习算法的期望预测与真实结果的偏离程度,即刻画了某个学习算法本身的拟合能力1。偏差度量的是某个模型的学习能力。
【练习】有人说Bias-Variance Tradeoff就是指“一个模型要么具有大的偏差,要么具有大的方差”,你认为这种说法对吗?你能否对“偏差-方差权衡”现象做出更准确的表述?
方差–偏差的权衡
一般而言,增加模型的复杂度,会增加模型的方差,但是会减少模型的偏差,我们要找到一个方差–偏差的权衡,使得测试均方误差最。
决定模型得分上限
数据本身决定模型得分上限,对数据的处理、加工非常重要,特别是结构化数据,模型的选择与调参反而是其次。
K折交叉验证
将训练集数据划分为K部分,利用其中的K-1份做为训练,剩余的一份作为测试,估计由K-1个样本集得到的模型的精度,过程重复K次取平均值得到测试误差的一个估计,最后取平均测试误差做为泛化误差。这样做的好处是,训练集的所有样本都必然会成为训练数据同时页必然有机会成为一次测试集。可以更好的利用训练集数据。
K越大,平均误差被视为泛化误差这个结果就越可靠,但相应的所花费的时间也是线性增长的。
交叉验证则是对测试误差的直接估计
查看链接:
https://zhuanlan.zhihu.com/p/83841282、
bagging
- 经典算法就是–>随机森林。它是基于bootstrap抽样的聚合算法,抽样即指从样本集合中进行有放回的抽样,假设数据集的样本容量为nn且基学习器的个数为MM,对于每个基学习器我们可以进行有放回地抽取nn个样本,从而生成了MM组新的数据集,每个基学习器分别在这些数据集上进行训练,再将最终的结果汇总输出。
- 意义:放回抽样特性保证了模型两两之间很可能有一些样本不会同时包含,这使模型的相关系数得以降低,而集成的方差随着模型相关性的降低而减小,如果想要进一步减少模型之间的相关性,那么就需要对基学习器进行进一步的设计。
boosting
- boosting是一种串行集成方法,常见的Boosting方法有Adaboost、GBDT、XGBOOST等。
【练习】假设总体有100100个样本,每轮利用bootstrap抽样从总体中得到1010个样本(即可能重复),请求出所有样本都被至少抽出过一次的期望轮数。(通过本文介绍的方法,我们还能得到轮数方差的bound)。
1000?
【练习】对于stacking和blending集成而言,若m个基模型使用k折交叉验证,此时分别需要进行几次训练和几次预测?
stacking:m*k次训练, 2 *m *k +1次预测
blending:m+1次训练,2*m+1次预测
stacking的集成流程,并指出blending方法和它的区别
其实可以从练习题出发,根据基模型个数以及训练集与验证集划分比例,可以大概有个流程思路;两者都可以从此出发。