underfitting and overfitting
来源:互联网 发布:lol账号出现数据异常 编辑:程序博客网 时间:2024/06/16 12:46
过拟合(或者叫做高方差:high variance):简单的理解就是参数太多,训练集太少,过拟合的结果是训练误差会非常小,因为我们的参数很多,可以很好的拟合几乎所有的训练数据,但是,过拟合情况下,模型的泛化能力就很差,会导致测试误差比较大。(即使看到的训练误差很小,但是测试使用的时候效果很差 ==当一个算法在训练集表现优秀,但在测试集表现不佳)
过拟合原因
1. 训练集和测试机特征分布不一致(e.g.,白天鹅黑天鹅)
2. 或者模型太过复杂(特征太多)而训练样本量不足
解决办法
1. 增加训练样本,使得训练样本尽量地丰富
2. 减少模型参数(特征数量)
3. 交叉验证(Cross validation)例如:我们把trainingdatas切一小份(比如说10%)出来做validation,用剩下90%的data去train,然后用这10%检查一下train好的model,看看validation error如何然后判断是否收敛,而不是看训练误差,从而防止overtraining。
4. 正则化 (regularization)
正则化参数用于限制学习得到的参数,使参数不会太大,以此来防止过拟合。相当于是要求拟合的误差足够小的同时模型不要太复杂(参数的值也不至于很大,两者之间的一个tradeoff, 希望拟合误差和参数值都尽量小, 自然避免了过拟合啦),这样得到的模型具有较强的泛化能力。
正则化参数过小时,对参数值限制有限,参数值过大,容易发生过拟合
正则化参数过大时,对参数值限制过度,参数值太小,容易发生欠拟合
以上观点说白了就是利用正则化来控制参数值的大小
过拟合的时候,参数的值往往非常大,而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
欠拟合(或者叫高偏差:high bias):简单来讲就是参数太少 (模型复杂度太低),相对来说,数据太多,不足以拟合训练数据,欠拟合情况下,训练误差会比较大,测试误差也会比较大。
解决办法:
1 引入更多的特征,对于神经网络,增加hidden layer相当于增加增加feature的个数。- Overfitting and Underfitting
- underfitting and overfitting
- 数据量多少与训练的过拟合和欠拟合 overfitting and underfitting
- 怎么解决Underfitting和Overfitting问题?
- Overfitting and Underfiting
- 机器学习中:过拟合(overfitting)和欠拟合(underfitting)
- 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)
- 欠拟合(Underfitting) & 过拟合(Overfitting) & 正则化(Regularization)
- Overfitting
- What is overfitting and how can I avoid it?
- (过拟合及其防治)Overfitting and Its Avoidance
- 深度学习 14. 深度学习调参,CNN参数调参,各个参数理解和说明以及调整的要领。underfitting和overfitting的理解,过拟合的解释。
- 深度学习 14. 深度学习调参,CNN参数调参,各个参数理解和说明以及调整的要领。underfitting和overfitting的理解,过拟合的解释。
- 过学习 overfitting
- 神经网络-overfitting(一)
- 神经网络-overfitting(二)
- Softmax和Overfitting
- Softmax&Overfitting&Regulization&Dropout
- 9-1、Spark-Storage
- 统计数字在排序数组中出现的次数
- 重装电脑问题 记事1
- C#中类中构造函数的执行序列
- 统计学习笔记——k近邻法与kd树
- underfitting and overfitting
- OC- Method Swizzling
- 如何摆脱拖延症
- JSP脚本元素
- 单例模式在JDBC数据库连接操作里的应用
- c++第1次试验2
- Linux笔记(27)——用户切换与其他命令
- 【opencv】CvMat矩阵结构
- How to install Eclipse JavaScript Development Tools (JSDT)