一个成功的、可靠的机器学习模型必须经过各个阶段的成熟。它从数据收集和处理开始,适当地分割数据,最后训练、测试和适当地验证模型在现实世界中的表现。Deepchecks是一个框架,可以帮助我们快速测试和验证构建应用程序时要应用的数据和模型。本文简要介绍了Deepchecks,还详细介绍了测试和验证机器学习模型和数据所需的步骤。
目录
- 深度检查简介
- 测试数据和验证数据的基本区别
- 测试和验证机器学习模型和数据的步骤
- 使用Deepchecks的好处
- 摘要
让我们先来看看Deepchecks的介绍。
深度检查的介绍
与python提供的各种包不同,Deepchecks也是python包之一,用于测试和验证机器学习模型和数据,无缝地解决了测试和验证机器学习模型和数据的基本前提条件,其中包括解决与模型性能有关的问题,以满足各种测试条件的通用性,并检查各方面,包括数据完整性和数据平衡,跨越数据中存在的各种类别或类,以疏散与类不平衡有关的担忧,模型只对具有相当数量的样本的类具有强大的性能。
因此,简而言之,"深度检查 "顾名思义就是帮助我们深入检查模型的通用性能、数据完整性等各个方面,让我们看到开发的机器学习模型和可用的数据在不断变化的场景和环境中的表现。它是python提供的简单而有效的单枪匹马的框架之一,以包的形式容易安装和使用pip命令访问,这有利于更容易解释模型性能和数据差异的各种参数。
你是否在寻找一个完整的数据科学中使用的Python库。在此查看.
使用Deepchecks的先决条件
如前所述,Deepcheck是Python中的一个包,用于评估数据和开发的机器学习模型的通用性和可行性。该软件包的使用比较简单,但有一些前提条件需要解决,如下文所述。
- 一个未经任何预处理的数据子集,如数据清洗和预处理。
- 一个带有标签的模型训练数据子集。
- 用于模型的未见过的数据子集,或者简单地说,测试数据。
- Deepcheck下支持的模型的使用。
测试和验证数据的基本区别
什么是测试数据?
测试数据基本上是指所开发的模型所暗示的未见过的数据。很多时候,它可以是一些真实世界的数据,以便更好地检查开发的机器学习模型的性能。因此,简而言之,测试数据可以被称为用于评估机器学习模型性能的数据。
什么是验证数据?
顾名思义,验证数据是用来验证模型在被拟合的数据上的性能。验证数据是对模型进行拟合的一定比例的数据,利用模型拟合,我们可以确定模型的损失和准确性以及各种指标,也有利于将模型的一些超参数调整到模型拟合配置中。
测试和验证机器学习模型和数据的步骤
在了解Deepchecks中涉及的内置步骤之前,让我们先来看看Deepchecks中存在的用于生成结果的检查。因此,在Deepcheck的过程中,主要有三种类型的检查发生。它们是: :
- 数据完整性检查
- 对训练和测试的数据分布进行检查
- 对未见过的数据或接近真实世界的数据进行模型性能评估
深度检查基本上采取了机器学习模型和数据的无缝测试和验证,其基本检查过程如上所述,是在个人层面上发生的检查概述,但也有深入检查与不同样本的数据标签不平衡有关的常见问题,也有数据泄漏的后果得到内部检查。
在Deepcheck中,机器学习模型和数据的测试和验证过程是在一个叫做套件 的集体过程中进行的**。** 因此,套件是发生在Deepcheck框架内部的检查的集合,其中上述不同类型的检查共同发生,如下图所示。
因此,可用的数据被分成不同比例的训练和测试,Deepchecks API变成了负责检查与数据差异有关的基本问题,同时评估为各种参数开发的模型对不同数据的通用性。因此,该套件在内部运行多项检查,并负责提供一份详细的检查报告,以及与数据和机器学习模型开发相关的问题。
使用Deepchecks的好处
使用Deepchecks的主要好处之一是,它有助于轻松解释与数据相关的缺陷,并将机器学习模型用于现实世界的实施。此外,Deepcheck中的套件设施是主要的吸引力之一,将成为机器学习工程师和开发人员的主要选择,因为所有相关的主要关注点都将被拿出来在各方面进行详细检查,随后套件将负责生成可解释和有用的相关报告。
此外,可以使用带有某些参数的预定义套件,但如果有必要,可以根据要求改变一些参数,并相应地生成报告,以分析与数据或机器学习模型相关的差异,进行测试和验证。为了更好地理解,下面提到了在一个套件中发生的一些预定义检查及其功能。
- **dataset_integrity。**顾名思义,这个参数负责检查为特定检查选择的数据集中存在的完整性。
- **train_test_validation。**一组检查被反复进行,以确定训练和测试阶段的数据分割的正确性。
- 模型评估。一组检查被反复进行,以交叉检查模型的性能和通用性,如果有任何过拟合的迹象,也会被检查和报告。
测试和验证我们的数据和模型
让我们尝试从头开始实施Deepcheck,了解一些重要的参数和术语。在这篇文章中,让我们考虑使用葡萄酒分类数据集,它有三个类别,即(1,2,3)。 使用Deepcheck,我们可以对整个套件进行集体检查,或者如果我们有一个单一的数据集,我们可以使用一个单一的数据集完整性套件,对Deepcheck包中的数据进行检查。
起初,在进行全套检查时,数据集中一些未使用的特征会以可视化的形式报告出来,如下图所示。
与此同时,所有其他信息都以报告的形式生成,其中包括关于曲线下面积(AUC) 得分、接收操作曲线(ROC) 特征等的解释。
如前所述,为了获得更好的结果和解释,我们采用了单一的数据集和同样的单一完整性检查。数据集的某些特征的预测能力分数被报告出来,它描述了由于数据泄漏而对某些特征的更高预测能力。然而,在这个用例中,预测能力分数落在相当大的范围内,没有显示出数据泄漏的迹象。这一点可以从下图中看出。
所有其他的参数和与所采用的数据有关的问题都可以按照参考文献中提到的笔记本进行观察,以便更好地理解。
总结
任何实时数据和机器学习模型所面临的每个敏感参数和问题的检查,都被Deepcheck以易于解释的报告形式识别和解决,并在测试和验证实时数据或改变参数时帮助机器学习模型产生可靠的结果。这就是Deepcheck成为机器学习工程师和开发人员的友好软件包的原因,以利用和产生一个可靠的机器学习模型来获得正确的结果。
Deepcheck中一个非常重要的评估指标是DriftScore ,它可以帮助我们了解数据的行为以及在部署和生产阶段开发的模型。目前,Deepcheck的使用仅限于某些数据类型和某些数据格式,预计在未来,Deepcheck将支持更多的数据类型和机器学习模型。
参考文献
The postTesting and validating machine learning models and data with Deepchecksappeared first onAnalytics India Magazine.