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

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

可视化

亚马逊 SageMaker Data Wrangler 包括内置分析,可帮助您点击几下鼠标即可生成可视化和数据分析。您还可以使用自己的代码创建自定义分析。

通过在数据流中选择一个步骤然后选择,可以将分析添加到数据框中添加分析. 要访问您创建的分析,请选择包含该分析的步骤,然后选择分析。

所有分析都是使用 10 万行数据集生成的。

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

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

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

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

  • 目标泄漏报告,您可以使用该报告来确定一个或多个要素是否与目标要素密切关联。

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

有关这些选项的更多信息,请参阅以下部分。

直方图

使用直方图查看特定要素的要素值计数。您可以使用按颜色选项。例如,以下直方图显示了 2009-2019 年亚马逊最畅销书的用户评分分布情况,按类型着色。

您可以使用分面由功能,用于为另一列中的每个值创建一列的直方图。例如,下图显示了亚马逊上最畅销图书的用户评论的直方图(如果按年分面)。

散点图

使用散点图功能来检查要素之间的关系。要创建散点图,请选择要在X 轴Y 轴. 这两列都必须是数字类型的列。

您可以通过额外的列为散点图着色。例如,以下示例显示了一个散点图,将 2009 年至 2019 年期间亚马逊上畅销书籍的用户评分对比评论数量。散点图是按照书籍类型着色的。

此外,您可以按要素分面散点图。例如,下图显示了按年分面的同一评论与用户评级散点图的示例。

表摘要

使用表摘要进行分析以快速总结数据。

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

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

快速模型

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

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

  • 推断目标标签的数据类型以及所选数据集中的每个要素的数据类型。

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

  • 预处理要素和标签数据以进行训练。使用的算法要求将要素编码为矢量类型,并将标签编码为双精类型。

  • 使用 70% 的数据训练随机森林算法。Spark 的随机森林回归用于训练回归问题的模型。这些区域有:随机森林分类器用于训练分类问题的模型。

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

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

下图显示了快速模型功能的用户界面。

目标泄漏

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

当您使用目标泄漏分析时,您可以指定以下内容:

  • 目标:这是您希望机器学习模型能够对其进行预测的功能。

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

  • (可选)最大功能:这是可视化中要显示的最大要素数量,它显示了按目标泄漏风险排序的要素。

对于分类,目标泄漏分析使用接收机操作特征下的面积,或每列 AUC-ROC 曲线,最多可达最大功能. 对于回归,它使用确定系数或 R2 指标。

AUC-ROC 曲线针对多达 1000 行的样本提供了一个预测指标,使用交叉验证为每列单独计算。分数为 1 表示完美的预测能力,这通常表示目标泄漏。分数为 0.5 或更低,表明该栏中的信息本身无法提供预测目标的任何有用信息。尽管可能发生一列本身没有信息性,但在与其他功能同时使用时对预测目标很有用,但较低的分数可能表明该功能是多余的。

例如,下图显示了糖尿病分类问题的目标泄漏报告,即预测一个人是否患有糖尿病。AUC-ROC 曲线用于计算五个要素的预测能力,并且所有要素都被确定为免受目标泄漏的影响。

检测时间序列数据中的异常

您可以使用异常检测可视化来查看时间序列数据中的异常值。要了解什么决定了异常情况,你需要明白我们将时间序列分解为一个预测的术语和错误术语。我们将时间序列的季节性和趋势视为预测期限。我们将残差视为错误术语。

对于误差项,您可以指定阈值,作为残差可以远离平均值的偏差标准数,以便将其视为异常。例如,您可以将阈值指定为 3 个标准差。任何离平均值大于 3 个标准差的残差都是异常现象。

您可以使用以下过程执行异常检测分析。

  1. 打开数据 Wrangler 数据流。

  2. 在你的数据流中,在数据类型,选择+,然后选择添加分析.

  3. 适用于分析类型,选择时间序列.

  4. 适用于可视化,选择异常检测.

  5. 适用于异常阈值中,选择一个值被视为异常的阈值。

  6. 选择预览以生成分析的预览。

  7. 选择Add将转换添加到 Data Wrangler 数据流中。

时间序列数据中的季节性趋势分解

您可以使用季节性趋势分解可视化来确定时间序列数据中是否存在季节性。我们使用 STL(使用黄土进行季节性趋势分解)方法来执行分解。我们将时间序列分解为季节性、趋势和残余组成部分。这一趋势反映了该系列系列的长期发展。季节性组成部分是一个在一段时间内再次出现的信号。在从时间序列中删除趋势和季节性成分之后,您就有剩余值。

您可以使用以下过程执行季节趋势分解分析。

  1. 打开数据 Wrangler 数据流。

  2. 在你的数据流中,在数据类型,选择+,然后选择添加分析.

  3. 适用于分析类型,选择时间序列.

  4. 适用于可视化,选择季节趋势分解.

  5. 适用于异常阈值中,选择一个值被视为异常的阈值。

  6. 选择预览以生成分析的预览。

  7. 选择Add将转换添加到 Data Wrangler 数据流中。

偏置报告

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

标签:您希望模型对其进行预测的功能。例如,如果您预测客户转化率,则可以选择一个列,其中包含客户是否已下订单的数据。还必须指定此功能是标签还是阈值。如果指定标签,则必须指定积极结果看起来像你的数据中。在买家转化示例中,积极结果可能是订单列中的 1,表示买家在过去三个月内下订单的积极结果。如果指定阈值,则必须指定定定义正面结果的下限。例如,如果您的客户订单列包含去年下达的订单数量,则可能需要指定 1。

分面:您要检查偏置的列。例如,如果您试图预测客户转化率,您的方面可能是客户的年龄。你可能选择这个方面是因为你认为自己的数据偏向某个年龄组。您必须确定小平面是以值还是阈值来衡量。例如,如果你想检查一个或多个特定的年龄,你可以选择并指定那些年龄。如果您要查看年龄组,则选择Threshold并指定要检查的年龄阈值。

选择要素和标签后,您可以选择要计算的偏差指标类型。

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

创建自定义可视化

您可以将分析添加到 Data Wrangler 流程以创建自定义可视化。您的数据集以及已应用的所有转换,都可以作为熊猫 DataFrame. 数据 Wrangler 使用df变量来存储数据框。您可以通过调用变量来访问数据框。

您必须提供输出变量,chart,存储Altair输出图表。例如,您可以使用以下代码块使用泰坦尼克号数据集创建自定义直方图。

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. 在包含您想要可视化的转换的节点旁边,选择+.

  2. 选择添加分析.

  3. 适用于分析类型,选择定制可视化.

  4. 适用于分析名称中指定名称。

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

  6. 选择预览以预览可视化。

  7. 选择Save(保存)来添加可视化。