[吴恩达机器学习]9·高偏差与高方差
吴恩达机器学习系列课程:https://www.bilibili.com/video/BV164411b7dx
训练集、验证集与测试集
在以往的实验中,我们把所有数据集拿来训练一个模型,之后用它来测试准确率。这显然不是一个好的做法,因为即便准确率很高,那也可能有过拟合的问题。正确的做法应该是用一个与训练集独立的测试集进行测试,这样才能保证得到的结果公平有效。
进一步,如果模型中含有超参数,例如正则化的参数
值得一提的是,如果我们在训练过程中加入了正则项,那么在计算模型的代价函数(误差)的时候应该去掉正则项。这是因为加入正则项的目的是训练出一个更为合理的参数
高偏差与高方差
在欠拟合的时候,我们称模型是高偏差的;过拟合时,称模型是高方差的。以多项式回归为例,随着多项式系数的增加,我们从欠拟合逐渐过渡到过拟合,训练集上的代价函数
学习曲线
误差函数关于训练集大小的曲线,称为学习曲线。作出学习曲线有利于帮助我们分析模型是否过拟合/欠拟合。
如果模型欠拟合,具有高偏差,当训练集大小很小时,
如果模型过拟合,具有高方差,当训练集大小很小时,
从上面的分析以及图像也可以看出,如果模型发生了欠拟合,那么增加训练集的数据量并没有什么帮助;而如果模型发生了过拟合,增加训练集的数据量有一定的帮助。
实现
第一部分·正则化线性回归
首先看一下数据集:
回忆正则化线性回归的矩阵形式:
其中,
1 |
|
回归结果为:
1 |
|
回归曲线如下:
第二部分·学习曲线的绘制
依次增大训练集的大小,计算训练集的误差和测试集的代价函数(注意这时候计算代价应该取
1 |
|
作图如下:
可以看见,这是一个典型的欠拟合图像,模型是高偏差的。
第三部分·多项式回归
欠拟合的原因是我们使用了线性回归,而数据集显然不是线性的。为了更好的拟合之,我们采用多项式回归。
注意增加高次特征后,特征取值范围可能很大,需要规范化处理:
1 |
|
首先,使用最高次为
过拟合。
取
取
欠拟合。
接下来我们依次计算在若干
可以看出,在
此时,测试集的代价为: