吴恩达机器学习——第11章 应用机器学习的建议

1、背景

在机器学习过程中,可能出现预测结果偏差很大的情况,遇到这种情况该如何处理呢?

可以选择的方式很多,下面就是常见的方式:

  1. 获取更多样本。很多情况下,会意味着耗费更多的时间。
  2. 选择较少的特征。
  3. 选择较多的特征。
  4. 增加多项式特征。
  5. 增大正则化参数 λ \lambda λ
  6. 减少正则化参数 λ \lambda λ

那究竟该选择哪种方式进行优化呢?
如果不明就里,盲目的选择,会造成事倍功半的效果,可以采用“诊断法”,确定问题的原因之后再针对性的选择优化方法,才能达到事半功倍的效果。

2、交叉验证

交叉验证法是非常有效的一种“诊断”方式。

先把数据集合打乱顺序,然后把整个数据集合按照60%、20%、20%的比例分成训练集、验证集、测试集3部分。通过验证集来对训练集的模型进行验证,看误差值是否在可接受范围内;通过测试集来观察模型的泛化能力如何。
在这里插入图片描述
除了通过误差来衡量模型效果外,在分类问题中,还可以通过错误率来观察模型的好坏:错误率越高则模型效果越差。

3、偏差、方差

偏差指的是模型误差很大,即“欠拟合”;

方差指的是模型在训练集上效果非常好,但是在新样本上效果很差,即“过拟合”。

4、多项式次数选择

4.1 选择过程

多项式次数选择,是影响评估函数的重要部分,我们使用d来表示。

多项式的次数,指的就是特征的几次方,如下图所示, x x x代表次数为1, x 2 x^2 x2代表次数为2, x n x^n xn代表次数为n。
在这里插入图片描述
我们使用交叉验证方式来获取最合适的d,获取过程为:

  1. 假设d的取值范围是(1,10)。
  2. 在训练集上计算多项式次数为1的评估函数,获取最优 θ \theta θ
  3. 把获得的评估函数代入到验证集,计算出误差值。
  4. 在训练集上计算多项式次数为2的评估函数,获取最优 θ \theta θ
  5. 把获得的评估函数代入到验证集,计算出误差值。
  6. 一直重复上述步骤,直到把d的各种情况在验证集上的误差都计算完成,然后取误差最小的d作为最终的d。

4.2 变化曲线

我们使用 J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)标识训练集的误差;使用 J C V ( θ ) J_{CV}(\theta) JCV(θ)表示验证集的误差;使用d标识多项式的次数。
则误差随d的变化曲线如下图所示:
在这里插入图片描述
总结:

  • d接近于0的时候,评估函数类似一条直线,可以想象预测结果与世界结果的误差是非常大的,如上图左上角部分所示。
  • d变大, J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)效果拟合的越来越好,但是在验证集上的表现则越来越差,如上图右半部分所示。
  • 观察d的趋势,当d有小变大时,偏差变小;当d由大变小时,方差变小。

5、正则化参数 λ \lambda λ的选择

正则化参数 λ \lambda λ的选择步骤,与d的选择步骤是一样的,不再赘述,下面看看正则化参数的变化曲线图。

我们知道, λ \lambda λ影响的是 θ \theta θ的大小, λ \lambda λ θ \theta θ成反比: λ \lambda λ越大则 θ \theta θ越小, θ \theta θ越小,则对应的特征值的影响越小,评估函数就越趋近于一条直线。

比如评估函数为 h θ ( x ) = θ 0 + θ 1 ∗ x 1 h_{\theta}(x)=\theta_0+\theta_1*x_1 hθ(x)=θ0+θ1x1,如果 θ 1 \theta_1 θ1趋近于0的话,则 h θ ( x ) h_{\theta}(x) hθ(x)趋近于一条直线。

所以 λ \lambda λ的变化曲线为:

在这里插入图片描述
总结:

  • λ \lambda λ较小时,属于高方差。
  • λ \lambda λ较大时,属于高偏差。
  • λ \lambda λ由小变大时,有助于缓解高方差。
  • λ \lambda λ由大变小时,有助于缓解高偏差。

6、学习曲线

学习曲线指的是样本数量对偏差、方差的影响。

先看一个正常模型下,样本数量的变化的曲线情况:

在这里插入图片描述
如上图所示,随着训练样本的增加,模型的效果会越来越好。

模型为高偏差的情况:
在这里插入图片描述
高偏差的情况下,模型在训练集上的拟合效果很差,随着样本的增加,验证集和训练集的效果越来越接近(都很差),所以这种情况下,增加样本数量对于优化算法没啥效果。

模型为高方差的情况:
在这里插入图片描述
高方差情况下,训练集的集合效果非常好,而验证集的效果就差很多了,但是随着训练集样本数量的增加,得出的模型在验证集上的效果也会变好,所以高方差情况下,增加样本数量有助于改善算法。

7、总结

文章开头提到过6中优化算法的方法,经过上面的分析,可以发现当算法处于偏差、方差时,不同的优化方法的效果是不一样的:

  1. 获取更多样本。很多情况下,会意味着耗费更多的时间。(有助于降低方差)
  2. 选择较少的特征。(有助于降低方差)
  3. 选择较多的特征。(有助于降低偏差)
  4. 增加多项式特征。(有助于降低偏差)
  5. 增大正则化参数 λ \lambda λ。(有助于降低方差)
  6. 减少正则化参数 λ \lambda λ。(有助于降低偏差)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值