《数据科学与分析:Python语言实现》 —3.7 偏差、差异和正规化:平衡法

举报
华章计算机 发表于 2020/02/15 21:37:09 2020/02/15
【摘要】 本节书摘来自华章计算机《数据科学与分析:Python语言实现》 一书中第3章,第3.7节,作者是[英]赫苏斯·罗格尔–萨拉查(Jesús Rogel-Salazar),白 皓 刘江一 上官明乔 刁 娟 译。

3.7 偏差、差异和正规化:平衡法

正如上一节中提到的,机器学习算法使我们能够挖掘数据中的规律。因此,我们的任务是概括这些规律并将其应用于尚未观察到的新数据点,这称为泛化。我们感兴趣的是最小化泛化误差,衡量我们的模型对看不见的数据的处理效果。

如果我们能够创建一个能够模拟训练数据中的确切噪声的算法,就能够将训练误差降低到零。这听起来不错,我们会非常开心,直到我们收到一批新数据来测试我们的模型。模型的性能很可能不如我们认为的零泛化误差那么好。我们最终得到了一个过度拟合模型,因为数据存在差异,我们能够描述数据中的噪声而不是发现关系。

关键是要保持偏差(即模型学习错误事情的倾向)和方差(即对数据小范围波动的敏感性)之间的平衡。在理想情况下,我们感兴趣的是获得一个模型,该模型能将模式封装在训练数据中,同时很好地适用于尚未观察到的数据。可以想象,平衡这两个任务,意味着我们不能同时做到这两点,必须找到一个平衡点以便很好地表示训练数据(高方差)而不会有过度拟合(高偏差)的风险。

高偏差模型通常会生成更简单的模型,而不会过度拟合,但这种情况可能导致欠拟合。具有低偏差的模型通常更复杂,这种复杂性使我们能够以更准确的方式表示训练数据,但是也会带来其他问题,这种更高复杂性所提供的灵活性最终可能不仅代表数据中的关系,还代表噪声。描绘偏差–方差平衡的另一种方式是复杂性和简单性。

在何处使用偏差?何处使用方差?如何在使数据维度尽可能简单的同时保留数据的复杂性?建模过程中的欠拟合和过拟合如何平衡?这些都属于数据科学和分析过程中的专门领域,并没有固定规则,需要根据实际情况来一一分析。我们面临的主要的挑战是,不仅每个数据集不同,而且在构建模型时数据集并不完善。相反,我们更愿意构建一种策略,这使我们能够从构建模型所用的样本中分辨出数据。

为了防止过度拟合,可以为模型增添一些复杂的方法来惩罚模型,比如添加额外约束(例如平滑度)或对正在处理的向量空间增加边界,稍后将详细介绍。

这个过程称为正则化,并且可以使用所谓的正则化超参数λ来调整引入的惩罚项的影响。

然后可以采用正则化来微调所讨论的模型的复杂性。从某种意义上说,这是一种将奥卡姆剃刀原则引入我们模型的方法。

为正则化引入的一些典型惩罚项方法是L1和L2范数,我们将在下一节中讨论。在3.12节中,我们将讨论如何使用交叉验证来调整超参数λ。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。