过拟合是一个数据科学概念,在统计模型与其训练数据完全拟合时,就会出现过拟合。 在这种情况下,算法无法准确执行新数据,违背算法目的。 将模型泛化至新数据最终可支持我们每天使用机器学习算法进行预测并对数据进行分类。
机器学习算法在构建时利用样本数据集来训练模型。 然而,当模型在样本数据上训练的时间过长或模型过于复杂时,它可以开始学习数据集中的“噪声”或不相关的信息。 当模型记住“噪声”并且与训练集过于紧密地拟合时,模型就会变得“过度拟合”,无法很好地泛化至新数据。 如果模型无法很好地泛化至新数据,那么将无法执行预期的分类或预测任务。
低错误率和高方差是过拟合的明显标志。 为了防止出现这种行为,部分训练数据集通常被留作“测试集”来检查是否存在过拟合。 如果训练数据的错误率低,测试数据的错误率高,那么就表示出现过拟合。
如果过度训练模型或模型过于复杂导致出现过拟合,那么逻辑预防响应会是提前终止训练过程(也称为“早停法”),或者通过消除不太相关的输入来降低模型的复杂性。 但是,如果过早终止或排除太多重要特征,那么可能会遇到相反的问题 — 模型欠拟合。 当模型没有训练足够长的时间,或者输入变量不够显著,无法确定输入变量和输出变量之间的有意义关系时,就会发生欠拟合。
模型在这两种情况下都无法在训练数据集中建立主导趋势。 因此,欠拟合也会在新数据泛化上的表现较差。 但与过拟合不同,欠拟合的模型在预测时的偏差较高,方差较小。 这就是偏差方差权衡,在欠拟合的模型移动到过合状态时,就会发生这种情况。 随着模型不断学习,其偏差会降低,但在过拟合状态下,其方差可能会提高。 拟合模型的目标是在欠拟合和过拟合之间找到最佳位置,以便建立主导趋势并将其广泛应用于新数据集。
要了解机器学习模型的准确性,必须测试模型拟合度。 K 折交叉验证是最常用的评估模型准确性的技术之一。
在 K 折交叉验证中,数据被拆分为 k 个大小相等的数据包,这些子集也称为“折”。 其中一个“k 折”将充当测试集(也称为留出集或验证集),其余“折”将训练模型。 一直重复这个过程,直到每“折”都用作留出。 每次评估后,都会保留一个分数,在完成所有迭代后,将对分数求平均值以评估整个模型的性能。
虽然使用线性模型有助于避免过拟合,但许多现实问题是非线性问题。 除了了解如何检测过拟合之外,还需要了解如何完全避免过拟合。 以下方法可用于避免过拟合:
虽然上面介绍了过拟合的公认定义,但最近的研究(PDF, 1.2 MB)(链接位于 IBM 外部)表明,尽管经过训练以“完全拟合或插值”,但深度学习模型和神经网络等复杂模型的执行准确度仍然很高。 这一发现与该主题下的历史研究结果不一致,下面的“双下降”风险曲线进行了进一步解释。 您可以看到,当模型学习超过插值阈值时,模型的表现得到改善。 我们之前提到的避免过拟合的方法,例如早停法和正则化,实际上可以防止插值。
IBM Watson Studio 是一个开放数据平台,允许数据科学家在任何云中大规模构建、运行、测试和优化 AI 模型。 IBM Watson Studio 支持您将随时随地将 AI 融入 IBM Cloud Pak® for Data。 利用灵活的开放式多云架构凝聚团队力量,简化 AI 生命周期管理,并加速实现价值。
要准确构建机器学习模型,立即注册 IBMid 并创建您的 IBM Cloud 帐户。