机器学习 模型验证
绪论
模型验证是一种技术,我们试图通过收集、预处理和向机器学习算法提供适当的数据来验证已经建立的模型。我们不能直接将数据送入模型,训练它并部署它。验证一个模型的性能或结果,以检查一个模型是否按照我们的期望执行,是至关重要的。根据不同类型的模型及其行为,有多种模型验证技术被用来评估和验证模型。
在这篇文章中,我们将讨论模型验证,背后的核心思想,为什么需要它,它的优点,以及如何使用SKLearn验证模型。这将有助于人们更深刻地理解模型验证的概念,并能够使用SKLearn验证模型。
什么是模型验证
机器学习是关于数据的,它的质量和数量,以及与之相关的游戏。在这里,大多数时候,我们收集数据;我们必须清理它,预处理它,然后我们必须应用适当的算法,从中获得最适合的模型。但是,在得到一个模型之后,任务还没有完成;模型的验证与训练一样重要。
直接训练然后部署一个模型是行不通的,在像医疗保健模型这样的敏感领域,有大量的风险,必须进行现实生活中的预测;在这种情况下,模型中不应该有一个错误,因为那时会有很大的损失。
模型验证的优势
以下是模型验证提供的许多优势。
模型的质量
模型验证的首要优势是模型的质量;是的,我们可以通过验证快速了解模型的性能和质量。
模型的灵活性
其次,验证模型使我们很容易了解到模型的灵活性。模型验证也有助于使模型更加灵活。
过度拟合和欠拟合
模型验证有助于识别模型是欠拟合还是过拟合。在欠拟合的情况下,模型在训练数据中给出了很高的准确性,而在验证阶段,模型的表现很差。在欠拟合的情况下,模型在训练或验证阶段的表现都不好。
有许多技术可用于验证模型;让我们试着逐一讨论。
训练测试分离
训练测试分割是用于验证数据的最基本和最简单的模型验证技术之一。在这里,我们可以很容易地将数据分成两部分,训练集和测试集。此外,我们还可以选择以何种比例来分割数据。
有一个与训练测试分割方法相关的问题,如果有任何数据子集不存在于训练集而存在于测试集,那么模型就会出现错误。
搁置方法
暂停方法也与训练测试分割方法非常相似;只是在这里,我们对数据进行了额外的分割。在使用训练测试分割法时,可能会发生有两个分割的数据,数据可能会被泄露,由于这个原因,模型的过拟合就会发生。为了克服这个问题,我们仍然可以将数据分成另外一个部分,称为保持或验证分割。
因此,基本上,在这里,我们在大的训练集上训练我们的数据,然后在测试集上测试该模型。一旦模型在训练集和测试集上都表现良好,我们就在最后的验证分割上尝试模型,以了解模型在未知数据集中的行为。
K折交叉验证
K折交叉验证是广泛使用的最准确的方法之一,用于将数据分割成训练和测试点。在这种方法中,使用了KNN算法的逻辑或工作机制。与KNN算法一样,这里我们也有一个术语叫K,是数据分割的数量。
在这种方法中,我们不是一次性地分割数据,而是根据K值来分割数据。让我们假设K值被定义为5。
通过这样做,我们得到了一个显著的优势,即模型可以对所有的数据进行测试,而且模型不会有偏差。
留一出法
留一出也是K折交叉验证技术的一个变种,我们将K定义为n。其中n是我们的数据集中的样本或数据观测的数量。在这里,模型对每个数据样本进行训练和测试,模型将每个样本视为测试集,其他样本视为训练集。
虽然这种方法没有被广泛使用,但holdout和K fold方法解决了大部分与模型验证有关的问题。
主要启示
- 模型验证是机器学习中最重要的任务之一,所有要部署的模型都应该进行验证。
-
模型验证让我们了解到模型的行为、它在数据上的表现、过拟合和欠拟合等问题,以及与模型相关的错误。
-
训练测试分割和保留方法是模型验证的简单和最常见的方法,数据被分割成两个或三个部分,模型在测试集上被验证。
-
k-fold方法是一种更先进、更精确的模型验证方法,数据被分割K次,每次训练和测试集都会有变化。
-
撇开一个是K折方法的一个变种,即模型从训练集中撇开一个观察数据,并将其作为测试集。
总结
在这篇文章中,我们讨论了模型验证,它的重要性,模型验证的优势,以及验证机器学习模型的不同模式。这将有助于人们理解模型验证并将其应用于任何数据和任何模型。