SageMaker 调试器 XGBoost 培训报告 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

SageMaker 调试器 XGBoost 培训报告

对于 SageMaker XGBoost 培训作业,请使用调试器CreateXgboostReport规则,以获得关于训练进度和结果的综合训练报告。遵循本指南,指定CreateXgboostReport规则在构建 XGBoost 估计器时,请使用Amazon SageMaker 开发工具包或 Amazon S3 控制台,然后您可以解释性能分析结果。

使用调试器 XGBoost 报告规则构建 SageMaker XGBoost 估计器

为 XGBoost 培训作业构建 SageMaker 估计器时,请指定规则,如以下示例代码所示。

这些区域有:CreateXgboostReport规则从训练作业中收集以下输出张量:

  • hyperparameters— 保存在第一步。

  • metrics— 每 5 个步骤节省损失和准确性。

  • feature_importance— 每 5 个步骤保存一次。

  • predictions— 每 5 个步骤保存一次。

  • labels— 每 5 个步骤保存一次。

输出张量保存在默认 S3 存储桶中。例如:s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/debug-output/

Using the SageMaker generic estimator
import boto3 import sagemaker from sagemaker.estimator import Estimator from sagemaker import image_uris from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()) ] region = boto3.Session().region_name xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") estimator=Estimator( role=sagemaker.get_execution_role() image_uri=xgboost_container, base_job_name="debugger-xgboost-report-demo", instance_count=1, instance_type="ml.m5.2xlarge", # Add the Debugger XGBoost report rule rules=rules ) estimator.fit(wait=False)

下载调试器 XGBoost 培训报告

在训练作业正在运行或作业完成后,下载调试器 XGBoost 培训报告,使用Amazon SageMaker 开发工具包和Amazon Command Line Interface(CLI).

Download using the SageMaker Python SDK and Amazon CLI
  1. 检查当前作业的默认 S3 输出基础 URI。

    estimator.output_path
  2. 检查当前作业名称。

    estimator.latest_training_job.job_name
  3. 调试器 XGBoost 报告存储在<default-s3-output-base-uri>/<training-job-name>/rule-output. 按如下所示配置规则输出路径:

    rule_output_path = estimator.output_path + "/" + estimator.latest_training_job.job_name + "/rule-output"
  4. 要检查报告是否已生成,请递归列出目录和文件在rule_output_path,使用aws s3 ls使用--recursive选项。

    ! aws s3 ls {rule_output_path} --recursive

    这应该返回自动生成的文件夹下的文件的完整列表,这些文件名为CreateXgboostReportProfilerReport-1234567890. XGBoost 培训报告存储在CreateXgboostReport,并且分析报告存储在ProfilerReport-1234567890folder。要了解有关 XGBoost 培训作业默认生成的性能分析报告的详细信息,请参阅SageMaker 调试器分析报告.

    
                                        规则输出示例。

    这些区域有:xgboost_report.html是调试器自动生成的 XGBoost 训练报告。这些区域有:xgboost_report.ipynb是一个 Jupyter 笔记本,用于将训练结果聚合到报告中。您可以使用笔记本下载所有文件、浏览 HTML 报告文件以及修改报告。

  5. 使用递归地下载文件aws s3 cp. 以下命令将所有规则输出文件保存到ProfilerReport-1234567890文件夹中的文件夹。

    ! aws s3 cp {rule_output_path} ./ --recursive
    提示

    如果您使用的是 Jupyter 笔记本服务器,请运行!pwd验证当前工作目录。

  6. /CreateXgboostReport目录, 打开xgboost_report.html. 如果您使用的是 JupyterLab,请选择信任 HTML查看自动生成的调试器培训报告。

    
                                        规则输出示例。
  7. 打开xgboost_report.ipynb文件来探索报告的生成方式。您可以使用 Jupyter 笔记本文件自定义和扩展培训报告。

Download using the Amazon S3 console
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 搜索基本 S3 存储桶。例如,如果您没有指定任何基本作业名称,则基本 S3 存储桶名称应采用以下格式:sagemaker-<region>-111122223333. 查找基本 S3 存储桶通过按名称查找存储桶字段中返回的子位置类型。

    
                                        Amazon S3 控制台中的按名称查找存储桶字段。
  3. 在基础 S3 存储桶中,通过在按前缀查找对象,然后选择训练作业名称。

    
                                        Amazon S3 控制台中的按前缀查找对象字段。
  4. 在训练作业的 S3 存储桶中,选择规则产出/子文件夹。调试器收集的训练数据必须有三个子文件夹:调试-输出/概况介绍器-产出/, 和规则产出/.

    
                                        规则输出 S3 存储桶 URI 的示例。
  5. 规则产出/文件夹中,选择创意纺织品靴子/folder。该文件夹包含xbgoost_report.html(以 html 格式显示的自动生成的报告)和报告 .ipynb(包含用于生成报告的脚本的 Jupyter 笔记本)。

  6. 选择xbgoost_report.html文件中,选择下载操作,然后选择下载.

    
                                        规则输出 S3 存储桶 URI 的示例。
  7. 打开下载的xbgoost_report.html文件在 Web 浏览器中查看。

调试器 XGBoost 培训报告演练

本节将指导您完成调试程序 XGBoost 培训报告。报告根据输出张量正则表达式自动聚合,识别二进制分类、多类分类和回归中的训练作业类型。

数据集真实标签的分布

此直方图显示原始数据集中标注类(用于分类)或值(用于回归)的分布。数据集中的偏度可能会导致不准确。此可视化适用于以下模型类型:二进制分类、多分类和回归。


                        数据集图形实际标注分布的示例。

损耗与步长图

这是一个折线图,显示训练数据和验证数据在整个训练步骤中的损失进展情况。损失是您在目标函数中定义的内容,例如平方误差。您可以从此图中测量模型是过度拟合还是欠拟。本节还提供见解,您可以使用它来确定如何解决过度拟合和欠配问题。此可视化适用于以下模型类型:二进制分类、多分类和回归。


                        损失与步长图的示例。

功能重要性

提供了三种不同类型的功能重要性可视化:重量、增益和覆盖范围。我们在报告中为这三个问题中的每一个提供了详细的定义。要素重要性可视化可帮助您了解训练数据集中哪些要素对预测作出贡献。特征重要性可视化可用于以下模型类型:二进制分类、多分类和回归。


                        要素重要性图的示例。

混淆矩阵

此可视化仅适用于二进制和多类分类模型。仅仅精确度可能不足以评估模型性能。对于某些使用案例(如医疗保健和欺诈检测),了解误报率和误负率也很重要。混淆矩阵为您提供了用于评估模型性能的附加维度。


                        混淆矩阵的一个例子。

混淆矩阵的评估

本部分将为您提供有关模型精度、召回和 F1 分数的微观、宏观和加权衡量指标的更多见解。


                        混淆矩阵的评估。

迭代上每个对角线元素的精度率

此可视化仅适用于二进制分类和多类分类模型。这是一个折线图,用于在每个类的训练步骤中绘制混淆矩阵中的对角线值。此图显示每个班级的准确性在整个训练步骤中的进展情况。您可以从此图中识别性能不佳的类。


                        每个对角线元素在迭代图上的精度率示例。

接收器工作特性曲线

此可视化仅适用于二进制分类模型。接收器工作特性曲线通常用于评估二进制分类模型性能。曲线的 y 轴为真正正率 (TPF),x 轴为假正率 (FPR)。该图还显示曲线下面积的值 (AUC)。AUC 值越高,分类器的预测性就越高。您还可以使用 ROC 曲线了解 TPR 和 FPR 之间的权衡,并为您的使用案例确定最佳分类阈值。可以调整分类阈值以调整模型的行为,以减少多种类型的误差 (FP/FN)。


                        接收器操作特征曲线图的示例。

上次保存步骤的残差分布

此可视化是一个柱状图,显示调试器捕获的最后一步中的残余分布。在此可视化中,您可以检查残差分布是否接近以零为中心的正态分布。如果残差偏斜,则要素可能不足以预测标注。


                        上次保存的步长图上残差分布的示例。

迭代上每个标签条柱的绝对验证错误

此可视化仅适用于回归模型。实际目标值被拆分为 10 个间隔。此可视化显示在线图中的整个训练步骤中每个间隔的验证错误如何进行。绝对验证误差是验证期间预测与实际差异的绝对值。您可以从此可视化中识别性能不佳的时间间隔。


                        一个示例,每个标签条柱在迭代图上的绝对验证错误。