斯坦福机器学习笔记五

机器学习诊断法

有时候发现训练出来的模型误差很大,会有很多解决办法。例如:增加更多的训练样本,减少特征数目,增加特征数目,增加多项式特征,减小或增大正则化参数 λ 的值 。但是这些尝试往往会浪费很多时间,所有这里提出了一种机器学习诊断法。

1、数据的分配

将数据分为三部分,训练集(60%)、交叉验证集(20%)和测试集(20%)。利用训练集,选择最优的多项式个数及其参数;利用交叉验证集代入到拟合出来的函数中,计算代价函数的值,最后选择代价函数最小的拟合函数。最后再用测试集来验证。

2、诊断偏差与方差

如果一个算法的表现不理想,那么多半是两种情况:要么是偏差比较大(欠拟合),要么是方差比较大(过拟合)。
通过将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一种图标上来分析:

这里写图片描述

当多项式(d)较小时,训练集拟合模型处于欠拟合状态,误差较大,交叉验证集的误差也较大;随着d的增长,训练集拟合模型拟合程度高,误差减小,交叉验证集的误差呈现先减小后增大的趋势,转折点就是最优的多项式取值,过了转折点,模型处于过拟合状态。

最后得出结论:当训练集误差和交叉验证集误差近似时,模型处于高偏差、欠拟合状态。当交叉验证集误差远大于训练集误差是,模型处于高方差、过拟合状态。

3、正则化参数λ的选择

如果正则化参数过大,则会把所有的参数都最小化,导致假设函数变成一条直线,造成欠拟合。如果正则化参数过小,又无法避免过拟合现象。

选择 λ的具体步骤如下:
首先,创建一个λ 列表: (i.e. λ∈{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24})
差不多以两倍的关系取值。然后,使用这些λ 值和训练集一起训练出不同的模型,得到一些θ 值。
最后,将交叉检测集代入这些模型,选择代价函数最少的θ和 λ值。这里需要注意的是,交叉验证集的代价函数没有正则化项。

J( θ )=12mmi=1(hθ(x(i))y(i))2+λ2mnj=1θ2j
Jtrain( θ )=12mmi=1(hθ(x(i)train)y(i)train)2
Jcv( θ )=12mmi=1(hθ(x(i)cv)y(i)cv)2

4、学习曲线

学习曲线是将训练集误差和交叉验证集误差作为训练集样本数(m)的函数绘制的图表。
在高偏差情况下,随着样本数目的增加,训练集的代价函数和交叉检测集的误差都会比较大,并且当样本持续增加时,其值没有太大变化,增加训练样本也没有用。高偏差的学习曲线如图所示。

这里写图片描述

在高方差情况下,训练集的误差与交叉检测集的误差相差较大,且训练集的代价函数较小,随着样本的增加,两者之间的差距会逐渐减小,增加更多的训练集可能会提高算法的效果。高方差的学习曲线如图所示。

这里写图片描述

5、误差分析

想要构造机器学习的程序,最好的实践方法不是建立一个非常复杂的系统,使用复杂的变量,而是构建一个简单的算法,这样你可以很快实现它。

推荐解决机器学习问题的方法是:

  • 先建立一个简单的算法,快速实现它,然后在交叉验证集进行测试。 •建立学习曲线,来决定是否采用更多的数据、特征等等。
  • 进行误差分析,手动检查在交叉验证集例子中的错误,看看这些实例是否有某种系统化的趋势。

当然,误差分析并不总能帮助判断采取怎样的行动,有时需要尝试不同的模型,然后进行比较,在模型比较时,用交叉验证集的误差来判断哪个模型更好更有效。

6、类偏斜问题

类偏斜是指,在训练样本正负样本的数量相差非常大,从而导致算法会有一些错误,这种问题分类精度并不能很好的检测算法的好坏。

这里引入了查准率和召回率。我们将算法预测的结果分为四种情况:
正确肯定:预测为真,实际为真;
正确否定:预测为假,实际为假;
错误肯定:预测为真,实际为假;
错误否定:预测为假,实际为真;

查准率 = 正确肯定/(正确肯定 + 错误肯定)
召回率 = 正确肯定/(正确肯定 + 错误否定)

希望的是查准率和召回率最高越好 ,但是查准率和召回率是不能同时达到最好的值,所以我们要能够保证查准率和召回率的相对平衡。
查准率和召回率在不同阈值的情况下,会有不同的值。如下图所示,阈值比较大,查准率比较高;阈值比较小,召回率比较高。

这里写图片描述

可以使用 F 公式,来权衡查准率和召回率:

F1Score=2PRP+R

要选择使得 F1 值最高的阈值。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值