机器学习笔记——模型选择与正则化

一、模型选择

1.方差与偏差

  • 我们设定 h ( x ) h(x) h(x)为近似值, y ( x ) y(x) y(x)为真实值。我们有如下式子:
    在这里插入图片描述
  • 近似值的bias我们设定为所有样本近似值与真实值之间差值的期望。近似值的var我们设定为所有样本近似值与近似值的期望之间差距的期望的平方(有点绕…,其实去掉平方的标准差更好理解)。
  • 我们可以看到bias与近似值 h ( x ) h(x) h(x)、真实值 y ( x ) y(x) y(x)相关。而variance只与近似值 h ( x ) h(x) h(x)相关。

2.过拟合与欠拟合

  • 当特征过多或者变量阶数过高导致的模型很复杂时,很容易出现过拟合的情况。

  • 我对过拟合的理解如下:越复杂的模型其学习模仿能力越强,而模型学习模仿的对象只能是训练集。但训练集只是用来近似模拟真实数据分布,并不能代表一般性,甚至不好的训练集与真实分布相差很远。因此复杂的模型只是模仿训练集很像,如果训练集的代表性不强的话得到的模型就会与真实分布相差甚远,也就是出现了过拟合的现象。

  • 线性回归中出现的过拟合现象:
    在这里插入图片描述

  • 逻辑回归中出现的过拟合现象:
    在这里插入图片描述

  • 对上面三张图进一步分析,其实一大群蓝色圆圈中的红叉很可能是数据收集有误,并不一定代表反例,而过拟合情况就把这两个异常点过于看重导致分类边界不具备一般性。

  • 其实过拟合是不可以避免的,因为刚开始我们是不知道该选择多复杂的模型的。针对小数据集我们一开始就故意过拟合,然后再去诊断修正。即便是很大的数据集一开始也是要从小数据集开始。过拟合代表着充分利用了训练集数据,把训练集数据中每一细枝末节都学习到了。

3.模型选择的平衡

  • 过拟合现象发生时,我们会发现训练误差会非常小,那么如果我们有多个模型得到了多组训练误差,训练误差的大小比较能作为我们模型选择的依据吗?
  • 显然是不可以的。我们将训练集随机分成两部分,训练集training set)用于最优化参数,验证集validation set)用于模型选择。
  • 如下图所示我们将初始训练集分为了两部分。蓝色代表训练集,绿色代表验证集。需要注意的是划分的时候训练集与验证集需要保证同分布,可以使用分层采样的方法。
    在这里插入图片描述
  • 分析以下两张图,一张是4阶多项式模型,一张是30阶多项式模型。可以看出30阶多项式模型更加完美的贴合于训练集(蓝色数据点),在图的左半部分明显波动离谱与验证集之间存在较大误差也就是发生了过拟合现象。
    在这里插入图片描述
    在这里插入图片描述
  • 以下展示的是训练误差与验证误差随着多项式阶数变化的曲线图:
    在这里插入图片描述
  • 可以看出:只要学习率 η \eta η选择的适当(即可以快速正确收敛)训练误差总会越来越小的。但验证误差可能会先降低后升高。上图仅仅代表的是变化趋势,实际获得的图不会这么平滑简单。
  • 训练误差小对我们来说没有用处。而验证误差则可以代表一部分该模型适应新数据的能力,因此我们要选择的是验证误差最小的模型。
  • 模型越复杂其bias越低但variance越高。而最终我们想要的泛化误差由三部分组成:bias、variance、noise。在noise不可调控的情况下我们想要使得bias与variance的总和最小,因此需要寻得二者之间的平衡(trade-off)。

4.欠、过拟合解决方法

  • 针对欠拟合我们需要做的就是提高模型的复杂程度。具体包含两个方面:1.增加更多的特征维度,但这条对于一般问题来说增加数据比较难以实现。2.提高多项式的阶数。
  • 针对过拟合并不是说模型一定不合适,而是相对于我们掌握贫乏的数据来说模型过于复杂。最好的解决方法就是收集并增加数据,不会影响bias,不用修改模型就可以解决问题,因为数据集越大训练集的特征就会越接近于真实。
  • 除此之外就是降低模型的复杂度。可以通过减少部分特征或者正则化来实现。正则化在小幅度增加bias的前提下大幅度降低variance,也会降低总体的泛化误差。
  • 总结来说机器学习数据为王。我们机器学习的目的其实就是利用有限的数据通过学习一定模型尽可能地去模拟逼近真实规律。所以我们掌握地数据大概率就是最大可能,因此更多使用正则化地方法处理过拟合。

二、正则化

1.正则化线性回归

  • 一个越复杂的模型通过学习过程计算出的参数 θ \theta θ可能会很大,尤其是高阶的 θ \theta
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值