课时83 决定下一步做什么
当你的假设不能比较准确地预测的时候,很多人会盲目地选择下列某方法
花费了很多时间,但是并没有很好的改进。
machine learning diagnostic机器学习诊断法:是一个测试来让你了解你的学习算法哪里可以哪里不可以,并给出解决方案。
课时84 评估假设evaluate a hypothesis
数据集:将数据的70%作为训练集training set,30%作为测试集test set。(是随机取出的,如果训练集本身就是随机的就可以取前70%后30%)
用训练集训练出来最佳参数θ后,再用测试集计算误差J(θ)。如对逻辑回归模型:
或者使用误分类比率misclassification error(0/1 misclassification error):
课时85 模型选择和训练、验证、测试集
我们知道,次数越高的多项式模型越能更好的适应训练集,但是并不代表可以泛化generalize至一般情况,正确的评估假设的方法是加入交叉验证集(cross)validation set用来选择模型,用测试集测试:
总结起来,正确的做法是1.使用训练集训练出10个模型2.用10个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)3.选取代价函数值最小的模型4.用步骤3中选出的模型对测试集计算得出推广误差(代价函数的值)
课时86 诊断偏差与方差diagnosing bias vs. variance
high bias高偏差对应欠拟合,high variance高方差对应过拟合。如果你的模型不像你期望的好,如何判断你的模型是欠拟合还是过拟合:
课时87 正则化的偏差、方差
我们知道,λ太大对参数的惩罚太大(极端情况情况参数都为0就剩θ0是一条直线)容易欠拟合,λ太小容易过拟合(如λ为0时无法解决过拟合的问题),选择λ的方法:
1.使用训练集训练出12个不同程度正则化的模型2.用12个模型分别对交叉验证集计算交叉验证误差3.选择得出交叉验证误差最小的模型4.运用步骤3中选出的模型对测试集计算得出推广误差。
理解:
课时89 学习曲线 learning curves
学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表,用来判断一个学习算法是否处于偏差、方差的问题。
用学习曲线识别高偏差/欠拟合:
高偏差时,可以看到增加数据到训练集不一定有帮助。
用学习曲线识别高方差/过拟合:
假设我们使用一个非常高次的多项式模型,并且正则化很小,可以看到当交叉验证集误差远大于训练集误差时,往训练集增加更多数据可以提高模型的效果,也就是说在高方差/过拟合的情况下,增加更多数据到训练集可以提高算法效果。
课时91 决定接下来做什么
使用较小的神经网络容易欠拟合,使用较大的神经网络容易过拟合,但可以用正则化来解决。
对于神经网络中隐藏层的层数选择,通过从一层开始逐渐增加层数,把数据分为训练集、交叉验证集、测试集,针对不同隐藏层层数的神经网络进行训练,然后选择交叉验证集代价最小的神经网络。