不必时时怀念我,也不要指望我回来,我离开以后,你们就是我,
Vive le peuple!
做机器学习算法,肯定得遇到些问题
而本文将介绍几个方法来诊断算法出现了什么问题
三个数据集
将数据划分为三个部分
训练集,交叉训练集以及验证集
训练集: 训练模型
交叉训练集: 在训练完成后对模型进行验证
验证集: 用在训练模型后对模型进行更正
比例一般是3:1:1/2:1:1
误差的计算方法
诊断偏差和方差
我们在此画出交叉训练集/训练集的误差关于多项式系数的图像
随着多项式系数增加,训练集误差逐渐减小,但交叉训练集先增加后减小
是一个欠拟合到拟合再到过拟合的过程
最左边就是欠拟合的情况,最右边就是过拟合的情况
偏差,方差与正则化
添加了正则化的代价函数
正则化λ在不同大小时的情况
越大,正则化的约束越强,可能出现欠拟合
越小,正则化的约束越弱,可能出现过拟合
训练集误差和交叉训练集误差关于λ的图像
学习曲线
高偏差问题下,误差与训练集数量的曲线
可以看到增加训练集数量是对训练帮助不大
高方差问题下,误差与训练集数量的曲线
可以看到增加训练集数量是对训练有显著帮助的
关于神经网络
如果神经网络的训练集越多,性能越好,但也容易出现过拟合的现象,
一般的解决方案是进行正则化,而不是选择一个更小的神经网络
不对称性分类的误差评估
如果一个模型有两个结果,而两个结果的数量级非常的大
这导致当模型准确率上升时,不太好分辨到底是过拟合还是准确率提高
这时就需要另外一个指标去进行评估
假设某个模型的结果分为阳性和阴性
我们将结果分为四部分
真阳性,真阴性,假阳性,假阴性
这样我们可以得到几个指标
查准率:真阳性/(真阳性+假阳性)
召回率:真阳性/(真阳性+假阴性)
两个率越高越好,但是实际上两者之间很有可能要进行取舍
当然,也可以用公式来进行评价
P为查准率,R为召回率