从训练-测试到交叉验证:提升您的模型评估能力

许多初学者最初会依赖训练-测试方法来评估他们的模型。这种方法很简单,并且似乎能清晰地表明模型在未见过的数据上的表现。然而,这种方法常常会导致对模型能力的不完全理解。在这篇博客中,我们将讨论为什么超越基本的训练-测试分割很重要,以及交叉验证如何提供对模型性能更全面的评估。加入我们,我们将指导您完成实现更深入、更准确的模型评估的关键步骤。

通过我的书《进阶数据科学启动您的项目。它提供了带有可运行代码的自学教程

让我们开始吧。

从训练-测试到交叉验证:提升您的模型评估能力
照片作者 Belinda Fewings。部分权利保留。

概述

这篇博文分为三部分;它们是:

  • 模型评估:训练-测试与交叉验证
  • 交叉验证的“为什么”
  • 深入K折交叉验证

模型评估:训练-测试与交叉验证

机器学习模型的确定性在于其设计(例如,线性模型与非线性模型)及其参数(例如,线性回归模型中的系数)。在考虑如何拟合模型之前,您需要确保模型适合数据。

机器学习模型的性能是通过其在先前未见过(或测试)数据上的表现来衡量的。在标准的训练-测试分割中,我们将数据集分为两部分:大部分用于训练模型,小部分用于测试其性能。如果测试性能可接受,则模型是合适的。这种方法很简单,但并不总是最有效地利用我们的数据。

 

然而,通过交叉验证,我们更进一步。第二张图展示了5折交叉验证,其中数据集被分成五个“折”。在每次验证回合中,使用不同的折作为测试集,其余的作为训练集。这个过程重复五次,确保每个数据点都用于训练和测试。

 

以下是一个说明上述内容的示例

训练-测试方法产生一个单一的R²分数,而交叉验证则为我们提供了五个不同的R²分数,每个数据折一个,从而更全面地了解模型的性能。

这五个R²分数大致相等,表明模型是稳定的。然后您可以决定该模型(即线性回归)是否提供可接受的预测能力。

交叉验证的“为什么”

理解模型性能在不同数据子集上的变异性在机器学习中至关重要。训练-测试分割方法虽然有用,但只给了我们模型在某个特定未见过数据集上表现快照。

交叉验证通过系统地使用多个数据折进行训练和测试,提供了对模型性能更稳健、更全面的评估。每个折都作为一个独立的测试,深入了解模型在不同数据样本上的预期表现。这种多重性不仅有助于识别潜在的过拟合,还确保了性能指标(在此例中为R²分数)不过于乐观或悲观,而是模型泛化到未见过数据的更可靠的指标。

为了直观地展示这一点,让我们考虑来自训练-测试分割和5折交叉验证过程的R²分数。

这个可视化突显了从单一训练-测试评估中获得的见解与交叉验证提供的更广泛视角之间的差异。

通过交叉验证,我们对模型的性能有了更深入的了解,使我们更接近开发有效且可靠的机器学习解决方案。

想开始学习进阶数据科学吗?

立即参加我的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

深入K折交叉验证

交叉验证是可靠的机器学习模型评估的基石,其中cross_val_score()提供了执行此任务的快速自动化方法。现在,我们将注意力转向KFold类,它是scikit-learn的一个组件,它提供了对交叉验证折的深入了解。KFold类不仅提供分数,还提供了对模型在不同数据段上的性能的窗口。我们通过复制上述示例来演示这一点。

此代码块将向我们展示每个训练集和测试集的大小以及每个折对应的R²分数。

KFold类在其透明性和对交叉验证过程的控制方面表现出色。虽然cross_val_score()将过程简化为一行,但KFold将其打开,允许我们查看数据分割的具体情况。当您需要以下操作时,这非常有价值:

  • 了解数据是如何分割的。
  • 在每次折叠前实现自定义预处理。
  • 深入了解模型性能的一致性。

通过使用KFold类,您可以手动迭代每个分割并应用模型训练和测试过程。这不仅有助于确保您完全了解每个阶段使用的数据,还提供了修改过程以适应复杂需求的选项。

进一步阅读

API

教程

Ames 住房数据集和数据字典

总结

在本帖中,我们探讨了通过交叉验证和KFold方法进行彻底模型评估的重要性。这两种技术都仔细地避免了数据泄露的陷阱,通过保持训练和测试数据分开,从而确保模型的性能得到准确衡量。此外,通过精确地验证每个数据点一次,并将其用于训练K-1次,这些方法提供了模型泛化能力的详细视图,增强了对其现实世界适用性的信心。通过实际示例,我们展示了如何将这些策略整合到您的评估过程中,可以带来更可靠、更稳健的机器学习模型,为应对新数据和未见过数据的挑战做好准备。

具体来说,你学到了:

  • cross_val_score()在自动化交叉验证过程中的效率。
  • KFold如何提供对数据分割的详细控制,以进行量身定制的模型评估。
  • 这两种方法如何确保充分利用数据并防止数据泄露。

您有任何问题吗?请在下面的评论中提出您的问题,我将尽力回答。

开始学习进阶数据科学!

Next-Level Data Science

掌握数据科学项目成功的思维模式

...通过清晰、实用的例子建立专业知识,尽量减少复杂的数学,并专注于实践学习。

在我的新电子书中探索如何实现
新一代数据科学

它提供自学教程,旨在指导您从初级到高级。学习优化工作流程、处理多重共线性、改进基于树的模型以及处理缺失数据——等等,以帮助您获得更深入的见解和有效的数据故事讲述。

通过实际练习提升您的数据科学技能


查看内容

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。