犀利的开头
作者:路小墨
链接:https://www.zhihu.com/question/27068705/answer/82132134
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
Error = Bias^2 + Variance+Noise
- 什么是Bias(偏差)
- 什么是Variance(方差)
- 什么是Noise(噪声)
简单的例子理解Bias和Variance
- 开枪问题
作者:刑无刀
链接:https://www.zhihu.com/question/20448464/answer/24397161
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
-再来个射箭问题:假设你在射箭,红星是你的目标,以下是你的射箭结果
https://www.zhihu.com/question/27068705
这里写图片描述
作者:Jason Gu
链接:https://www.zhihu.com/question/20448464
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
分析:
综合起来看,我们需要的模型最好是两个L,又准确又稳定,妥妥的,但是,这个在现实模型中是不会存在的。你只能权衡着来
Bias,Variance和Overfitting(过拟合),Underfitting(欠拟合)
一句话,过拟合会出现高方差问题
一句话,欠拟合会出现高偏差问题
怎么避免过拟合和欠拟合
避免欠拟合(刻画不够)
- 寻找更好的特征-----具有代表性的
- 用更多的特征-----增大输入向量的维度
避免过拟合(刻画太细,泛化太差)
- 增大数据集合-----使用更多的数据,噪声点比重减少
- 减少数据特征-----减小数据维度,高维空间密度小
- 正则化方法-----即在对模型的目标函数(objective function)或代价函数(cost function)加上正则项
交叉验证方法
更多方法详解请看@一只鸟的天空--机器学习中防止过拟合的处理方法
为什么要用交叉验证(Cross-Validation)
1.交叉验证,这是仅使用训练集衡量模型性能的一个方便技术,不用建模最后才使用测试集
2.Cross-validation 是为了有效的估测 generalization error(泛化误差) 所设计的实验方法,而generalization error=bias+variance
作者:路小墨
链接:https://www.zhihu.com/question/27068705/answer/82132134
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
可以发现,怎么来平衡Bias和Variance则成了我们最大的任务了,也就是怎么合理的评估自己模型呢?我们由此提出了交叉验证的思想,以K-fold Cross Validation(记为K-CV)为例,基本思想如下:(其他更多方法请看@bigdataage --交叉验证(Cross-Validation))
看不清上面的就来一幅更简单的
每次的training_set 红色, validation_set白色 ,也就是说k=5的情况了
注意:交叉验证使用的仅仅是训练集!!根本没测试集什么事!很多博客都在误导!
这也就解决了上面刚开始说的Variance(不同训练集产生的差异),Bias(所有data训练结果的平均值)这两大问题了!因为交叉验证思想集合了这两大痛点,能够更好的评估模型好坏!
说白了,就是你需要用下交叉验证去试下你的算法是否精度够好,够稳定!你不能说你在某个数据集上表现好就可以,你做的模型是要放在整个数据集上来看的!毕竟泛化能力才是机器学习解决的核心
Bias、Variance和K-fold的关系
作者:TANGent
链接:https://www.zhihu.com/question/27068705/answer/35286205
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
致谢
@知乎--机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
@知乎--方差和偏差
@bigdataage --交叉验证(Cross-Validation)
@一只鸟的天空--机器学习中防止过拟合的处理方法