交叉验证,K折交叉验证的偏差和方差分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交叉验证,K折交叉验证的偏差和方差分析相关的知识,希望对你有一定的参考价值。
参考技术A交叉验证是一种通过估计模型的泛化误差,从而进行模型选择的方法。没有任何假定前提,具有应用的普遍性,操作简便, 是一种行之有效的模型选择方法。
人们发现用同一数据集,既进行训练,又进行模型误差估计,对误差估计的很不准确,这就是所说的模型误差估计的乐观性。为了克服这个问题,提出了交叉验证。基本思想是将数据分为两部分,一部分数据用来模型的训练,称为训练集;另外一部分用于测试模型的误差,称为验证集。由于两部分数据不同,估计得到的泛化误差更接近真实的模型表现。数据量足够的情况下,可以很好的估计真实的泛化误差。但是实际中,往往只有有限的数据可用,需要对数据进行重用,从而对数据进行多次切分,得到好的估计。
以上两种方法基于数据完全切分,重复次数多,计算量大。因此提出几种基于数据部分切分的方法减轻计算负担。
衡量一个模型评估方法的好坏,往往从偏差和方差两方面进行。
3.再来个射箭问题:假设你在射箭,红星是你的目标,以下是你的射箭结果
分析:
综合起来看,我们需要的模型最好是两个L,又准确又稳定,妥妥的,但是,这个在现实模型中是不会存在的。你只能权衡着来
一句话,过拟合会出现高方差问题
一句话,欠拟合会出现高偏差问题
避免欠拟合(刻画不够)
避免过拟合(刻画太细,泛化太差)
1. 交叉验证,这是仅使用训练集衡量模型性能的一个方便技术,不用建模最后才使用测试集
2. Cross-validation 是为了有效的估测 generalization error(泛化误差) 所设计的实验方法,而generalization error=bias+variance
可以发现,怎么来平衡Bias和Variance则成了我们最大的任务了,也就是怎么合理的评估自己模型呢?我们由此提出了交叉验证的思想,以K-fold Cross Validation(记为K-CV)为例,基本思想如下:(其他更多方法请看 @bigdataage --交叉验证(Cross-Validation) )
看不清上面的就来一幅更简单的
每次的training_set 红色, validation_set白色 ,也就是说k=5的情况了
注意:交叉验证使用的仅仅是训练集!!根本没测试集什么事!很多博客都在误导!
这也就解决了上面刚开始说的Variance(不同训练集产生的差异),Bias(所有data训练结果的平均值)这两大问题了!因为交叉验证思想集合了这两大痛点,能够更好的评估模型好坏!
说白了,就是你需要用下交叉验证去试下你的算法是否精度够好,够稳定!你不能说你在某个数据集上表现好就可以,你做的模型是要放在整个数据集上来看的!毕竟泛化能力才是机器学习解决的核心
@知乎--机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
@知乎--方差和偏差
@bigdataage --交叉验证(Cross-Validation)
@一只鸟的天空--机器学习中防止过拟合的处理方法
k折交叉验证模型选择方法
我想知道我们如何从k-fold交叉验证方法中选择模型。在k折交叉验证中,我们可以使用k模型的平均精度获得k个模型和精度分数。您能否提供一种从交叉验证中获得最终最佳模型的方法?
K折交叉验证用于比较两种模型的性能,而不是建筑模型。比如说,我们设计了两个具有不同结构的2 seq2seq生成模型,我们的数据集很小,我们想选择一个模型。我们可以遵循k-fold交叉验证方法并获得每个模型的平均分数,并选择具有较高分数的优秀分数。
我们不需要从k模型中选择一个模型,但我们可以通过利用bagging(三种Ensemble方法之一)将k模块合二为一。有关更多信息,请参阅此博客:Bagging and Random Forest Ensemble Algorithms for Machine Learning。
参考: 1. https://stats.stackexchange.com/a/52277/103153 2. https://stats.stackexchange.com/a/19053/103153
以上是关于交叉验证,K折交叉验证的偏差和方差分析的主要内容,如果未能解决你的问题,请参考以下文章
总结:Bias(偏差),Error(误差),Variance(方差)及CV(交叉验证)
R语言回归模型构建回归模型基本假设(正态性线性独立性方差齐性)回归模型诊断car包诊断回归模型特殊观察样本分析数据变换模型比较特征筛选交叉验证预测变量相对重要度