EliteDataScience来源caoxiyang编译

机器学习中的过拟合

成千上万的数据科学新手会在不知不觉中犯下一个错误,这个错误可以一手毁掉你的机器学习模型,这并不夸张。你知道是什么吗?

我们现在来讨论应用机器学习中最棘手的障碍之一:过拟合(overfitting)

在本文中,我们将详细介绍过拟合、如何在模型中识别过拟合,以及如何处理过拟合。最后你会学会如何一劳永逸地处理这个棘手的问题。你将读到下面这些内容:

  1. 过拟合的例子

  2. 信号与噪音

  3. 拟合优度

  4. 过拟合欠拟合

  5. 如何检查过拟合

  6. 如何避免过拟合

过拟合的例子

如果我们想根据一个学生的简历预测她是否会获得面试机会。现在,假设我们从10000份简历的数据集及其结果中训练模型。接下来,我们在原始数据集上尝试这个模型,它预测结果的准确率达到99%……哇!但这是个坏消息。当我们在简历的新(“没见过的”)数据集上运行模型时,我们只能获得50%的准确度…

我们的模型从训练数据到新数据的泛化能力并不好。

这被称为过拟合,也是机器学习数据科学中的常见问题。事实上,过拟合在现实世界中也一直在发生着。看看这样的新闻报道:

信号与噪音

您可能听说过Nate Silver著名的《信号与噪音》一书。在预测建模中,您可以将“信号”视为希望从数据中学习到的真正底层模式。另一方面,“噪音”指的是数据集中无关的信息或随机性。例如,假设您正在建模儿童身高与年龄的关系。如果您对大部分人口进行抽样,您会发现一个非常明确的关系:

这就是是信号。然而,如果你只能对当地的一所学校进行抽样调查,这种关系可能会更加复杂。 它会受到异常值(比如,爸爸是NBA球员的孩子)和随机性(例如在不同年龄段进入青春期的孩子)的影响。

噪音干扰了信号”

这成为机器学习的用武之地,一个运行良好的机器学习算法能将信号从噪声中分离出来。

如果算法过于复杂或灵活(例如,它有太多的输入特性或它没有适当的正则化),它最终可能“记住噪音”而不是找到信号。

这个过拟合模型将基于这些噪声进行预测。它将在训练数据上表现得异常出色……但在新的、未见过的数据上表现得非常糟糕。

拟合优度

在统计学中,拟合优度是指模型的预测值与观测值(真实)的匹配程度。一个学习了噪声而不是信号的模型被认为是“过拟合”的,因为它适合训练数据集,但与新数据集的拟合度较差。

过拟合欠拟合

通过观察相反的问题,我们可以更好地理解欠拟合。 当一个模型过于简单时,因为它的特性太少,或者过于正则化,就会出现欠拟合现象,这使得它在学习数据集时不够灵活。简单的模型在预测结果上往往有较小的方差和较大的偏差(见:偏差-方差权衡)。另一方面,复杂的模型往往在预测中有更大的方差。

偏差和方差都是机器学习中预测误差的两种形式。

通常,我们可以减少由偏差引起的误差,但同时可能会增加由方差带来的误差,反之亦然。太简单(高偏差)与过于复杂(高方差)之间的权衡是统计和机器学习中的关键概念,也是影响所有监督学习算法的关键概念。

如何检查过拟合

过拟合以及机器学习的一个关键挑战是,在我们实际测试之前,我们无法知道模型对新数据的执行情况。为了解决这个问题,我们可以将初始数据集拆分为单独的训练测试子集。

这种方法可以估计出我们的模型在新数据上的表现。

如果我们的模型在训练集上比在测试集中表现得好得多,那么我们很可能会过拟合

例如,如果我们的模型在训练集上有99%的准确率,但在测试集上只有55%的准确率,那将是一个很危险的信号。

另一个建议是从一个非常简单的模型开始,以此作为基准

然后,当您尝试更复杂的算法时,您将有一个参考基准来查看额外的复杂性是否值得。这是奥卡姆剃刀试验。如果两个模型具有类似的性能,那么通常应该选择比较简单的一个。

如何避免过拟合

检查过拟合是有用的,但它不能解决问题。幸运的是,有几个方法您可以尝试。以下是一些最常用的过拟合解决方案:

交叉验证

交叉验证是预防过拟合的一个强有力措施。

将您的初始训练数据拆分成多个数据集(类似于迷你火车),使用这些拆分子集来调整模型,这是一个聪明的想法。在标准的K-fold交叉验证中,我们将数据划分为K个子集,称为“折叠(folds)”。然后我们迭代地在K-1个折叠上训练算法,同时使用剩余的折叠作为测试集。

交叉验证允许您仅使用原始训练集来调整超参数。这使您可以将测试集保存为真正“未见过”的数据集,以便选择最终模型。

使用更多数据

它不会每次都有效,但是使用更多数据进行训练可以帮助算法更好地检测到信号。

在早期的儿童身高与年龄建模的例子中,很明显如何抽样更多的学校将有助于您的模型。当然,情况并非总是如此。如果我们只是添加更多的噪声数据,这种技术将无济于事。这就是为什么您应该始终确保您的数据是干净和相关的。

删除无用特征

有些算法有内置的特征选择。 您可以通过删除不相关的输入特性来手动改进它们的通用性。

一种有趣的方法是通过描述每个特性是如何融入模型的。如果很难证明一些特性的存在合理性,说明这些特征是没必要的。

及时中止

当您迭代训练学习算法时,您可以度量模型的每次迭代的执行情况。

当迭代至一定次数之前,新的迭代会不断改进模型。然而,在那之后,模型的泛化能力会随着训练数据开始过拟合而减弱。

现在,这种方法主要用于深度学习,而其他的方法(如正则化)更适合于经典的机器学习

正则化

正则化是指人为地迫使模型变得更简单的一系列技术。这个方法将取决于你使用的模型类型。例如,您可以修剪决策树,在神经网络上使用dropout,或者在回归中向代价函数添加一个惩罚参数。

通常,正则化方法也是一个超参数,这意味着它可以通过交叉验证进行调优。

集成学习

集成(Ensembling)是一种机器学习方法,用于将多个不同模型的预测组合在一起。

集成有几种不同的方法,但最常见的两种是:

Bagging:降低复杂模型过拟合的可能性。

  • 它同时训练大量“强大”的模型。

  • 一个“强大”的模型是一个相对不受约束的模型。

  • 然后将所有“强大”的模型结合在一起,以“平滑”他们的预测。

Boosting:改进简单模型的预测能力。

  • 它训练大量“弱”的模型。

  • 一个“弱”模型是一个受约束的模型(例如,你可以限制每个决策树的最大深度)。

  • 每个模型都专注于从之前的错误中学习。

  • 然后把所有的弱学习者组合成一个强大的学习者。

虽然Bagging和Boosting都是集成方法,但它们从相反的方向解决问题。Bagging使用复杂的基础模型,试图“平滑”他们的预测,而Boosting使用简单的基础模型,并试图“提高”他们的总复杂度。

原文链接:机器学习中的过拟合

宽邦科技
宽邦科技

提供金融行业人工智能平台和服务解决方案,研发了全国首个人工智能量化投资平台BigQuant,拥有全栈人工智能平台和大规模机器学习和深度学习框架与算法,为券商、银行、保险、资管等金融机构以及更多企业提供AI技术方案和业务解决方案,实现机构及企业的AI转型和升级。

入门集成学习正则化交叉验证欠拟合过拟合机器学习
5
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

欠拟合技术

使用太少参数,以致于不能很好的拟合数据,称为拟合不足(欠拟合)现象

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

集成学习技术

集成学习是指使用多种兼容的学习算法/模型来执行单个任务的技术,目的是为了得到更佳的预测表现。集成学习的主要方法可归类为三大类: 堆叠(Stacking)、提升(Boosting) 和 装袋(Bagging/bootstrapaggregating)。其中最流行的方法包括随机森林、梯度提升、AdaBoost、梯度提升决策树(GBDT)和XGBoost。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

奥卡姆剃刀技术

奥卡姆剃刀,又称“奥坎的剃刀”,拉丁文为lex parsimoniae,意思是简约之法则,是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉提出的一个解决问题的法则,他在《箴言书注》2卷15题说“切勿浪费较多东西,去做‘用较少的东西,同样可以做好的事情’。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

推荐文章
暂无评论
暂无评论~