决定下一步做什么
发现不拟合的时候,如何选择合适的方法,达成自己的目标!
评估假设
将原来的训练集,按照7 : 3 的比例作为训练集和测试集!测试集判断错误的记为1,正确的记为0,这就是0 / 1 错误分类度量,以此来定义测试误差!
模型选择、训练、验证、测试集
如何选择假设函数的次数(逻辑函数中的power),以及lambda参数?
将训练集分为以下3个子集:
6 : 2 : 2
- **训练集:**用来训练模型的样本,得到参数(theta);
- **(交叉)验证集:**在训练集的参数条件下,用这个模型来看看哪一个次数对应的代价函数最小,然后将此作为选择模型的标准;
- **测试集:**用测试集测试已经拟合好的模型,判断泛化能力。
**三种误差:**这3种误差都是平均误差的平方和的一半,是没有正 则化
模型选择:这里的训练集的代价函数不考虑正则化向,首先求出多项式次数,lambda后面会求。
诊断偏差与方差
在这一步也要确定,假设函数的次数。
训练集误差大,验证集误差大 ——>>>> 高偏差问题(欠拟合)
训练集误差小,验证集误差大 ——>>>> 高方差问题(过拟合)
正则化和偏差、方差的关系
训练集在不同的lambda取值情况下最小化代价函数算参数,验证集决定lambda大小,然后再用测试集验证泛化能力。
lambda过大会导致欠拟合,高偏差问题;
lambda过小会导致过拟合,高方差问题;
学习曲线
高偏差情况下,训练误差和测试误差最后随着样本数量的增加达到平稳(两者值相近),这两个的误差值都是较大的。
高方差情况下,两者的曲线随着样本数量的增加将会不断的靠近,是可以改善学习性能的。
决定下一步做什么
获得更多的训练实例——解决高方差
尝试减少特征的数量——解决高方差
尝试获得更多的特征——解决高偏差
尝试增加多项式特征——解决高偏差
尝试减少正则化程度λ——解决高偏差
尝试增加正则化程度λ——解决高方差
神经网络的偏差与方差
使用较小的神经网络,类似于参数较少的情况,容易导致高偏差和欠拟合,但计算代价较小使用较大的神经网络,类似于参数较多的情况,容易导致高方差和过拟合,虽然计算代价比较大,但是可以通过正则化手段来调整而更加适应数据。
通常选择较大的神经网络并采用正则化处理会比采用较小的神经网络效果要好。
总结
-
现将样本分为训练集、验证集、测试
-
用训练集训练不同次数下的模型,然后用交叉验证集挑选代价函数最小的那一个模型对应的次数。也可以画出训练集 J_train 、验证集 J_validation 的代价函数(不考虑正则项)关于次数d的曲线图
-
根据图选择合适的次数
-
根据训练集训练出不同程度(不同λ)的正则化后的模型,选取 不同λ情况下, 验证集的代价函数J_validation最小的模型。*也可以将训练集和交叉验证集模型的代价函数误差与λ的值绘制在一张图表上,就可以选择出最好的λ值。