应用机器学习建议

学习地址

决定下一步做什么

例子,当实现了正则化线形回归,使用新的数据集测试假设函数,却发现偏差很大?如何解决?

  • 获得更多训练样本(耗时耗力)
  • 尝试更少的特征数据集
  • 尝试更多的特征
  • 添加多项式特征
  • 减少或增大lambda
    2019-09-01 15-40-19 的屏幕截图.png

如何事半功倍,时间用在刀刃上?

机器学习诊断法
测试算法哪里出现问题,获得有意义的尝试和改进。

评估假设hypothesis

  • 选取少量数据集
  • 随机选择70%作为训练样本,另外30%作为测试样本
  • 用训练样本最小化代价函数得到参数
  • 用测试样本计算误差,根据所用模型计算相应代价函数
  • 注意:参数是用训练样本得出的,再用参数计算交叉验证误差

模型选择和训练、验证、测试集

模型选择相当于选择一个多项式hθ(X)=θTX,其中如何选择X的次数degree呢?
我们选用不同的degree,用训练样本最小化代价函数即误差得到参数,然后用测试样本跑误差进行选择,选择测试样本误差最小的那个即可。
但这样存在一个问题,我们是用的是测试集进行误差评估,这样就过于乐观 了。
2019-08-02 10-27-36 的屏幕截图.png

为了评估假设函数,我们在之前的基础上做修改。
调整训练样本比例为60%,在用20%作为交叉验证集CV,最后20%作为测试集。
在模式选择即选择degree的时候用训练集训练参数,根据交叉验证集选择误差最小的 -> the better choice
2019-08-02 10-46-15 的屏幕截图.png
2019-08-02 10-47-03 的屏幕截图.png

诊断偏差与方差

偏差bias= JTrain(θ)
方差variance= JCV(θ)
在欠拟合时偏差和方差都很大,在过拟合时偏差很小但方差很大,如何权衡一目了然。
2019-08-02 10-56-27 的屏幕截图.png
2019-08-02 10-59-46 的屏幕截图.png

正则化和偏差、方差

如何选取正则化参数?
还是用训练集训练新的代价函数(加入正则化项的代价函数)得到一组参数,再用交叉验证集验证,选取交叉验证集误差最小的。
2019-08-02 11-15-15 的屏幕截图.png

正则化参数对与偏差与方差的影响
2019-08-02 11-37-57 的屏幕截图.png

学习曲线

用处:判断一个学习算法是否处与偏差、方差问题,或者二者都有
2019-08-02 14-49-01 的屏幕截图.png
2019-08-02 14-54-31 的屏幕截图.png