07拟合与正则化
过拟合
偏差
- bias
- 是系统性误差,由于模型本身引起的。
方差
- var
- 是样本数据误差,由于样本数据的随机性引起的。
欠拟合与过拟合
jtrain训练集的代价函数。jcv交叉验证集的代价函数。jtrain能够通过训练过程,将样本随机性引起的误差降到最低。jcv没有经过训练过程,会最大化样本的随机性方差和模型本身的偏差。
- 高偏差:Jtrain和Jcv都很大,并且Jtrain≈Jcv。对应欠拟合。欠拟合的时候,由模型本身和样本的随机性引起的误差都很大。
- 高方差:Jtrain较小,Jcv远大于Jtrain。对应过拟合。过拟合后由样本随机性引起的误差会非常大。
- 低方差,高偏差。变量过多的时候出现的,训练得到的假设函数能够很好的拟合训练集,代价函数非常小。但是无法泛化到新的样本当中。
解决办法
- 减少特征的数量
- 对特征进行正则化。
正则化
代价函数加入正则化的数据项,用来缩小每一个参数。
现行回归的正则化代价函数
$$
J(\theta) = \frac{1}{2m}[\sum_1^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_1^n\theta^2_j]
$$逻辑回归的正则化,二者一致。
$$
J(\theta)=-\frac{1}{m}[\sum_i^my^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log (1-h_\theta (x^{(i)}))]+\frac{\lambda}{2m}\sum_1^n\theta_j^2
$$
编程任务
线性回归
- 添加,高阶的编程项.
- 对参数进行正则化,并对比正则化前后假设函数的不同。
- 需要绘制,拟合过程参数变化率(梯度下降速度。
- 需要绘制,拟合完成后假设函数(假设函数的最终形状。判断是否过拟合。
逻辑回归
- 添加,高阶的编程项.
- 对参数进行正则化,并对比正则化前后假设函数的不同。
- 需要绘制,拟合过程参数变化率(梯度下降速度。
- 需要绘制,拟合完成后假设函数(假设函数的最终形状。判断是否过拟合。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!










