验证机器学习模型 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

验证机器学习模型

训练模型后,对其进行评估,以确定其绩效和准确性是否有助于您实现业务目标。您可以使用不同的方法生成多个模型并评估每个模型。例如,您可以对每个模型应用不同的业务规则,然后应用各种衡量指标来确定每个模型的适用性。您可以考虑您的模型是否需要比规定的更灵敏(或相反)。

您可以使用历史数据 (离线) 或实时数据评估您的模型:

  • 离线测试 — 使用历史(而不是实时)数据向模型发送请求以获取推理。

    将经过训练的模型部署到 alpha 终端节点,并使用历史数据向其发送推理请求。要发送请求,请使用 Amazon SageMaker 笔记本实例中的 Jupyter 笔记本,以及 AWS SDK for Python (Boto) 或者 SageMaker 提供的高级 Python 库。

  • 包含实时数据的在线测试—SageMaker 支持使用生产变体对生产中的模型进行A/B测试。生产变体是使用相同推断代码并部署在同一代码上的模型 SageMaker 终点。您配置生产变体,使一小部分实时流量流向要验证的模型。例如,您可能会选择将 10% 的流量发送到模型变体以进行评估。对模型的性能感到满意后,您可以将 100% 的流量传送到更新后的模型。有关在生产中测试模型的示例,请参阅在生产中测试模型

有关更多信息,请参阅关于如何评估模型的文章和书籍,例如评估机器学习模型

离线模型评估的选项包括:

  • 使用保留集进行验证—机器学习从业者通常会将部分数据作为“保留集合”。他们不将此数据用于模型训练。

    使用此方法,您可以评估模型在保留集上进行推理的效果如何。然后,您可以评估模型在初次训练中,相对于使用模型“记忆”,对所学内容进行概念化的效率如何。此验证方法可让您了解模型推断出正确答案的频率。

     

    此方法在某种程度上类似于给小学学生讲课。首先,您为他们提供一组学习示例,然后测试他们归纳所学知识的能力。借助家庭作业和测试,您提出未包含在初始学习中的问题,并确定他们是否能够有效地归纳。记忆力强的学生可能会记住这些问题,而不是学习规则。

     

    通常,holdout 数据集占训练数据的 20-30%。

     

  • k 重验证 — 在此验证方法中,您将示例数据集拆分为 k 个部分。您将每个部分视为 k 次训练运行的 holdout 设置,而使用其他 k-1 个部分作为该次运行的训练设置。您可以使用类似过程生成 k 个模型,并聚合这些模型以生成最终模型。k 值通常在 5-10 范围内。