分析和可视化 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

分析和可视化

Amazon SageMaker Data Wrangler 包含内置分析,可帮助您通过几次单击生成可视化内容和数据分析。您还可以使用自己的代码创建自定义分析。

通过选择数据流中的步骤,然后选择 Add analysis (添加分析),可向数据帧添加分析。要访问您创建的分析,请选择包含该分析的步骤,然后选择该分析。

所有分析都是使用数据集的 100,000 行生成的。

您可以将以下分析添加到数据帧:

  • 数据可视化,包括直方图和散点图。

  • 数据集的快速摘要,包括条目数、最小值和最大值(对于数值数据)以及最常用和最不频繁的类别(对于分类数据)。

  • 数据集的快速模型,可用于为每个特征生成重要性分数。

  • 目标泄漏报告,可用于确定一个或多个功能是否与目标功能有强关联。

  • 使用您自己的代码的自定义可视化。

可以使用以下部分了解有关这些选项的更多信息。

Histogram

使用直方图可查看特定特征的特征值计数。您可以使用 Color by 选项检查功能之间的关系。例如,以下直方图从 –20092019 年开始绘制 Amazon 上最热门的图书的用户评级分布图,按流派进行着色。

您可以使用分面依据功能为一列创建另一列中的每个值的直方图。例如,下图显示了用户评论的直方图,这些直方图按年份排列 Amazon 上最热门的图书(如果为分面图)。

散点图

使用散点图功能检查特征之间的关系。要创建散点图,请选择在 X 轴Y 轴上绘制的特征。这两个列必须是数字类型列。

您可以按其他列为散点图添加颜色。例如,以下示例显示了一个散点图,该散点图将评论数与 Amazon 上 2009 年到 2019 年之间热卖图的用户评级数进行比较。散点图按图书类型进行着色。

此外,您还可以按功能分面散点图。例如,以下示例显示了同一审核与用户评级散点图(按年份划分)的示例。

表摘要

使用表摘要分析可快速汇总您的数据。

对于具有数值数据的列(包括日志和浮点数据),表摘要报告每列的条目数(计数)、最小值(最小值)、最大值(最大值)、平均值和标准差(stddev)。

对于具有非数字数据的列(包括具有字符串、布尔值或日期/时间数据的列),表摘要报告条目数 (计数)、最少频率值 (最小值) 和最高频率值 (最大值)。

快速模型

使用快速模型可视化可以快速评估您的数据并为每个特征生成重要分数。特征重要性分数指示特征在预测目标标签时的作用。特征重要性分数介于 [0, 1] 和较大的数字之间,表示特征对整个数据集更重要。在快速模型图表的顶部,有一个模型分数。分类问题显示 F1 分数。回归问题具有均方误差 (MSE) 分数。

在创建快速模型图表时,您可以选择要评估的数据集以及要针对其比较特征重要性的目标标签。 Data Wrangler 执行以下操作:

  • 推断所选数据集中的目标标签和每个特征的数据类型。

  • 确定问题类型。根据标签列中不同值的数量, Data Wrangler 确定这是回归还是分类问题类型。 Data Wrangler 将分类阈值设置为 100。如果标签列中有 100 个以上的不同值, 会将其Data Wrangler分类为回归问题;否则,将其分类为分类问题。

  • 用于训练的预处理功能和标签数据。使用的算法需要将编码功能编码为向量类型,并将编码标签编码为双精度类型。

  • 使用 70% 的数据训练随机森林算法。Spark 的 RandomForestRegressor 用于训练回归问题的模型。RandomForestClassifier 用于针对分类问题训练模型。

  • 使用剩余的 30% 数据评估随机森林模型。 使用 F1 分数Data Wrangler评估分类模型,并使用 MSE 分数评估回归模型。

  • 使用 Gini 重要性方法计算每个特征的特征重要性。

以下是快速模型功能的用户界面。

目标泄漏

当机器学习训练数据集中有与目标标签强相关的数据,但在实际数据中不可用时,会发生目标泄漏。例如,您的数据集中可能有一个列,该列用作您要使用模型预测的列的代理。

在使用目标泄漏分析时,请指定以下内容:

  • 目标:这是您希望 ML 模型能够进行预测的功能。

  • 问题类型:这是您正在处理的 ML 问题类型。问题类型可以是分类回归

  • (可选)Max features (最大特征数):这是可视化内容中呈现的最大特征数,它显示按特征成为目标泄漏的风险排名的特征。

对于分类,目标泄漏分析使用接收机操作特征下的区域,即每个列的 AUC - ROC 曲线,最多为最大特征数。对于回归,它使用决定系数或 R2 指标。

AUC - ROC 曲线提供了一个预测指标,该指标使用交叉验证为每个列单独计算(针对最多大约 1000 行的样本)。分数 1 表示完美预测能力,通常表示目标泄漏。分数为 0.5 或更低表示列上的信息自身无法为预测目标提供任何有用的信息。虽然列本身是无信息性的,但在与其他特征协同使用时可用于预测目标,但低分数可能表示该功能是冗余的。

例如,下图显示了一个血压分类问题的目标泄漏报告,即,预测某人是否患有血压。AUC - ROC 曲线用于计算五个特征的预测能力,并且所有特征都确定为免受目标泄漏。

偏差报告

您可以使用 中的偏差报告Data Wrangler来发现数据中的潜在偏差。要生成偏差报告,您必须指定要预测的目标列或标签分面或要检查偏差的列。

Label (标签) – 您希望模型进行预测的功能。例如,如果您要预测客户转换,则可以选择一个列,其中包含有关客户是否已下订单的数据。您还必须指定此功能是标签还是阈值。如果指定标签,则必须指定数据中的正面结果。在客户转换示例中,正结果可能是订单列中的 1,表示客户在过去三个月内下订单产生的正结果。如果指定阈值,则必须指定下限以定义正结果。例如,如果您的客户订单列包含上一年提交的订单数,则可能需要指定 1。

分面 – 您希望 检查偏差的列。例如,如果您尝试预测客户转换,您的分面可能是客户的年龄。您可以选择此分面,因为您认为您的数据将偏向某个期限组。您必须标识分面是以值还是阈值的形式进行度量。例如,如果您要检查一个或多个特定年龄,请选择 Value (值) 并指定这些年龄。如果要查看年龄组,请选择 Threshold (阈值) 并指定要检查的年龄的阈值。

选择功能和标签后,选择要计算的偏差指标的类型。

要了解更多信息,请参阅为预训练数据中的偏差生成报告。

创建自定义可视化

使用 Code (代码) 选项卡创建自定义可视化内容。在经历最近添加的转换后,您的数据集可通过 变量作为此代码块中的 Pandas DataFramedf 提供。

您必须提供输出变量 chart来存储 Altair 输出图表。例如,以下代码块示例可用于使用 titanic 数据集生成自定义直方图。

import altair as alt df = df.iloc[:30] df = df.rename(columns={"Age": "value"}) df = df.assign(count=df.groupby('value').value.transform('count')) df = df[["value", "count"]] base = alt.Chart(df) bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count')) rule = base.mark_rule(color='red').encode( x='mean(value):Q', size=alt.value(5)) chart = bar + rule

创建自定义可视化:

  1. 在 的 Visualize (可视化) 区域中Data Wrangler,选择 Code (代码) 选项卡。

  2. 为您的可视化提供一个 Name (名称)。

  3. 在代码框中输入您的代码。

  4. 选择 Preview (预览) 以预览您的可视化内容。

  5. 选择 Add Visualization (添加可视化) 以添加您的可视化。