目录
1,如何判断欠拟合与过拟合:学习曲线
2,欠拟合;
3,过拟合;
4,对抗过拟合;
5,方差--偏差分解.
1,如何判断欠拟合与过拟合:学习曲线
在训练模型时,涉及到选择与比较不同的模型在训练集和测试集的预测结果,
其中就有Bias(偏差)与Variance(方差)。
正确的诊断出你的模型属于哪一类问题(欠拟和or过拟合),对改善模型至关重要。
欠拟合一般是指模型没有很好的抓住数据的特征,没有对数据进行很好的拟合,使得偏差较大。这时一般要通过增加特征项或者减少正则化参数来改进模型。而过拟合一般是由于模型使用了太多的特征引起的,使得模型将部分数据的“特性”也学习到了,导致模型的泛化能力较弱。这时一般要通过删减特征项或者增大正则化参数来改进模型。
以单变量的线性回归为例,最简单的一个模型就是一次方程。我们的假设函数如下:
利用这个模型来拟合数据,绘制的拟合效果图如下:
不难看出,这个模型对数据的拟合效果不好,我们可以直观的判定这个模型存在欠拟合问题。但能不能通过什么有效的方法判断一个模型到底是存在欠拟合还是过拟合的问题呢。
通过绘制这个模型的学习曲线,通过学习曲线的形态来判断。所谓学习曲线就是训练集得分和验证集得分随着训练样本数的增大而变化的曲线。
当模型出现欠拟合和过拟合情况时,学习曲线一般有不同形状,如下图所示:
欠拟合情况:随着训练样本数增大,训练集得分和验证集得分收敛,并且两者的收敛值很接近。
过拟合情况:随着训练样本数增大,训练集得分和验证集得分相差还是很大。
2,欠拟合: * 模型不够复杂,漏掉了部分数据规律 * high bias * 增加模型复杂度
3,过拟合:
- 模型过于复杂,把样本的部分随机误差当作了总体的数据规律,并用模型进行解释。这部分解释并不能推广到总体分布的其他样本中。
- high variance
- 减少不必要的模型复杂度
4,对抗过拟合
- 交叉检验
- 正则化(regularization)
- L1
- L2
3.1,交叉检验:
从验证训练结果入手
3.2,正则化:regularization
从限制模型复杂度入手:
- Lasso的结果容易将系数减至0
- Ridge则是减小至非0值
L2 norm:Ridge,
5,方差--偏差分解:
- 偏差:
- 偏差度量了学习算法的期望预测与真实结果的偏离程度, 刻画了学习算法本身的拟合能力
- 方差:
- 方差度量了同样大小的训练集的变动所导致的学习性能的变化, 刻画了数据扰动所造成的影响
- 噪音:
- 噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界, 刻画了学习问题本身的难度
下图所示:左图为Bias;右图为Varience。
方差和偏差重点在于在有若干训练数据集的情况下训练出模型的预测结果的期望值和方差:
Bias与Variance的两难之间¶
- 使用不同复杂度的模型,会影响bias与variance的分布。
灵活的模型(次数比较高的多项式)会有比较低的偏差和比较高的方差,而比较严格的模型(比如一次线性回归)就会得到比较高的偏置和比较低的方差。