《数据科学与分析:Python语言实现》 —3.7 偏差、差异和正规化:平衡法
3.7 偏差、差异和正规化:平衡法
正如上一节中提到的,机器学习算法使我们能够挖掘数据中的规律。因此,我们的任务是概括这些规律并将其应用于尚未观察到的新数据点,这称为泛化。我们感兴趣的是最小化泛化误差,衡量我们的模型对看不见的数据的处理效果。
如果我们能够创建一个能够模拟训练数据中的确切噪声的算法,就能够将训练误差降低到零。这听起来不错,我们会非常开心,直到我们收到一批新数据来测试我们的模型。模型的性能很可能不如我们认为的零泛化误差那么好。我们最终得到了一个过度拟合模型,因为数据存在差异,我们能够描述数据中的噪声而不是发现关系。
关键是要保持偏差(即模型学习错误事情的倾向)和方差(即对数据小范围波动的敏感性)之间的平衡。在理想情况下,我们感兴趣的是获得一个模型,该模型能将模式封装在训练数据中,同时很好地适用于尚未观察到的数据。可以想象,平衡这两个任务,意味着我们不能同时做到这两点,必须找到一个平衡点以便很好地表示训练数据(高方差)而不会有过度拟合(高偏差)的风险。
高偏差模型通常会生成更简单的模型,而不会过度拟合,但这种情况可能导致欠拟合。具有低偏差的模型通常更复杂,这种复杂性使我们能够以更准确的方式表示训练数据,但是也会带来其他问题,这种更高复杂性所提供的灵活性最终可能不仅代表数据中的关系,还代表噪声。描绘偏差–方差平衡的另一种方式是复杂性和简单性。
在何处使用偏差?何处使用方差?如何在使数据维度尽可能简单的同时保留数据的复杂性?建模过程中的欠拟合和过拟合如何平衡?这些都属于数据科学和分析过程中的专门领域,并没有固定规则,需要根据实际情况来一一分析。我们面临的主要的挑战是,不仅每个数据集不同,而且在构建模型时数据集并不完善。相反,我们更愿意构建一种策略,这使我们能够从构建模型所用的样本中分辨出数据。
为了防止过度拟合,可以为模型增添一些复杂的方法来惩罚模型,比如添加额外约束(例如平滑度)或对正在处理的向量空间增加边界,稍后将详细介绍。
这个过程称为正则化,并且可以使用所谓的正则化超参数λ来调整引入的惩罚项的影响。
然后可以采用正则化来微调所讨论的模型的复杂性。从某种意义上说,这是一种将奥卡姆剃刀原则引入我们模型的方法。
为正则化引入的一些典型惩罚项方法是L1和L2范数,我们将在下一节中讨论。在3.12节中,我们将讨论如何使用交叉验证来调整超参数λ。
- 点赞
- 收藏
- 关注作者
评论(0)