机器学习基础概念——过拟合和欠拟合
文章转载自:欠拟合、过拟合、偏差、方差
1. 基本概念
- 偏差:偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力。 h θ ( x i ) − y i h_\theta (x_i) - y_i hθ(xi)−yi
- 方差:方差度量了训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 \displaystyle \frac {1}{m} \sum^m_{i = 1} (h_\theta (x_i) - y_i)^2 m1i=1∑m(hθ(xi)−yi)2
- 欠拟合:模型太简单,经验误差大,在训练的过程中基本没学到有价值的内容。
- 过拟合:模型学习了太多的训练样本的“个性”,经验误差小,但是对于未知的样本泛化能力差(泛化误差大)。
- 经验误差:模型关于训练样本集的平均误差(也称经验风险)。
- 结构风险:结构风险在经验风险的基础上加上表示模型复杂度的正则化项。
- 泛化误差:模型在新样本集(测试集)上的平均误差。
泛化误差 = 偏差 + 方差 + 噪声 - 噪声:描述了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
1.1 偏差和方差
返回顶部
如果模型是低偏差和低方差,那肯定是最好的一个选择。
但是偏差和方差在一定程度上是矛盾的:
如果偏差降低,那方差可能会相应的升高;
如果方差降低,那偏差可能相应升高。
所以我们是尽量的寻求偏差和方差的一个平衡点。
下图比较形象的表达偏差和方差的含义:
偏差太大,说明模型欠拟合;
方差太大,说明模型过拟合。
2. 欠拟合和过拟合
2.1 学习曲线
通过学习曲线来识别模型是否发生了欠拟合、过拟合:
模型过拟合【中图】的情形,随着样本的增大,可能变成模型正常【右图】。
横轴为训练样本数量,纵轴为误差
2.2 复杂程度曲线
横轴为模型复杂程度,纵轴为误差
上图中:模型在点A处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大,模型欠拟合;
模型在点C处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大,模型过拟合;
模型复杂程度控制在点B处为最优。
2.3 支持向量机的过拟合和欠拟合
返回顶部
支持向量机采用的正则化系数
C
=
1
λ
C = \frac{1}{\lambda}
C=λ1是常规正则化系数的导数,C越大,过拟合;C越小,欠拟合,更容易记忆。
2.4 KNN回归的过拟合和欠拟合
返回顶部
邻居数(n-neighbors)越大,欠拟合(bias);越小,过拟合(vias)。
3. 如何解决欠拟合和过拟合
3.1 解决欠拟合
- 增加特征项;
- 添加多项式特征项;
- 减小正则化系数;
- 增加模型复杂度。
3.2 解决过拟合
过拟合问题是机器学习和深度学习里面主要需解决的一个问题。解决过拟合的办法主要有:
- 重新做特征工程;
- 增加训练样本数量;
- 降低模型复杂程度;
- 增大正则项系数;
- 采用dropout方法【用于神经网络】;
- early stoping,早停法【当模型在验证集上的误差比上一次训练结果差的时候停止训练】;
- 减少迭代次数;
- 增大学习率;
- 添加噪声数据;
- 树结构中,可以对树进行剪枝。
以上只是举一些例子,不同的问题还是需要根据不同的情况分析
欢迎关注,敬请点赞!
返回顶部