天使爱美丽

“TA还未设置签名”

笔记

机器学习之高偏差和高方差

已有 35 次阅读2017-10-10 08:22 |系统分类:HTML/CSS |

本文和大家分享的主要是机器学习高偏差和高方差相关内容,一起来看看吧,希望对大家有所帮助。

  多项式阶数的选择

  经过训练数据拟合之后,预测的结果很差,有可能是两方面的问题:欠拟合和过度拟合。

  对于同样的训练数据集,我们知道随着多项式阶数的变化,拟合的效果会发生不同的改变:

对于训练集来说,其预测误差会随着多项式项数的增加而下降,也就是拟合的效果会越来越好。

  但与此同时,同样的参数对于验证集来说,其预测误差会先下降,在到达低点之后在上升,正如下图所示:


图中验证集误差最小的点,也就是黑色竖线位置,对应着的多项式阶数,就是我们想要的最优解。

  竖线左边是欠拟合,竖线右边是过度拟合。

  欠拟合时,训练集误差 J train (θ) 和验证集误差 J cv (θ) 都很大,也就是预测的结果具有较高的偏差(High Bias)。

  过度拟合时,训练集误差 J train (θ) 较小,验证集误差 J cv (θ) 很大,也就是预测的结果具有较高的方差(High Variance)。

  而我们实际选择的时候,是找到两者中间最佳的点。

  如果你对偏差和方差不了解,可以看看这个图:

偏差体现的是偏离目标的程度,方差体现的是离散的程度。

  正则化参数的选择

  我们采用正则化的方式来防止过度拟合,例如随着正则化参数 λ ,拟合的效果也会产生相应的变化:

λ 值越大,就越容易产生高偏差,也就是欠拟合的情况;而 λ 值越小,对原来误差的影响就越小,如果原来就已经是过度拟合了,那么正则化就没有起到任何作用。

  我们需要做的,是找到刚刚好的正则化参数 λ ,就是对应着中间的这副图片。

  怎么自动的选择合适的正则化参数 λ 呢?

  通过前面的信息,我们了解到训练集误差 J train (θ) 和验证集误差 J cv (θ) 随着正则化参数 λ 变化的情况是这样的:

所以我们找到让验证集误差 J cv (θ) 最小的 λ 不就是我们需要的结果了么。

  以下是具体的操作步骤:

  1.创建一个 λ 的参数列表 {0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24}

  2.创建一系列不同阶数的模型,或者其他变体的模型;

  3.遍历所有正则化参数 λ ,并对每一个 λ 计算所有模型的最优化拟合参数 θ

  4.根据计算得到的 θ,以及对应的 λ ,使用验证集数据计算不包含正则化项的误差 J cv (θ) 

  5.选择使得验证集误差 J cv (θ) 最小的一个组合——模型、θ 、 λ 

  6.将测试集的数据应用到最佳组合中,计算得到 J test (θ) ,查看一般化的预测效果。

 

来源:简书



标签: 举报

收藏 0人收藏
给个赞0人点赞
评论
0 /300