本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SageMaker Studio 经典笔记本中的交互式数据准备小工具获取数据见解
可使用 Data Wrangler 数据准备小部件与数据进行交互、获取可视化效果、探索切实可行的见解并修复数据质量问题。
您可以通过 Amazon SageMaker Studio Classic 笔记本访问数据准备小工具。对于每一列,该组件会创建可视化,帮助您更好地了解其分布。如果某列存在数据质量问题,其标题中会显示警告。
要查看数据质量问题,请选择显示警告的列标题。您可以使用从见解和可视化中获得的信息,应用小部件的内置转换来帮助您解决问题。
例如,小部件可能检测到有一列只有一个唯一值,并向您显示警告。警告中提供了从数据集中删除该列的选项。
开始运行小部件
可使用以下信息,帮助您开始运行笔记本。
在 Amazon SageMaker Studio 经典版中打开笔记本电脑。有关打开笔记本的信息,请参阅创建或打开 Amazon SageMaker Studio 经典笔记本电脑。
重要
要运行小部件,笔记本必须使用以下映像之一:
-
Python 3 (Data Science) 及 Python 3.7
-
Python 3 (Data Science 2.0) 及 Python 3.8
-
Python 3 (Data Science 3.0) 及 Python 3.10
-
SparkAnalytics 1.0
-
SparkAnalytics 2.0
有关映像的更多信息,请参阅亚马逊 SageMaker AI 图像可用于 Studio Classic。
可使用以下代码导入数据准备小部件和 Pandas。小部件使用 Pandas 数据框分析数据。
import pandas as pd import sagemaker_datawrangler
以下示例代码将文件加载到名为 df
的数据框中。
df = pd.read_csv("example-dataset.csv")
您可以使用能以 Pandas 数据框对象形式加载的任何格式的数据集。有关 pandas 格式的更多信息,请参阅 IO 工具(文本、CSV、HDF5、...)。
以下单元格运行 df
变量以启动小部件。
df
数据框的顶部包含以下选项:
-
查看 Pandas 表 – 在交互式可视化与 Pandas 表之间切换。
-
使用数据集中的所有行计算见解。使用整个数据集可能会增加生成见解所需的时间。– 如果不选择此选项,Data Wrangler 将为数据集的前 10000 行计算见解。
数据框会显示数据集的前 1000 行。每个列标题都包含一个堆叠条形图,显示该列的特征。此图显示了有效值、无效值和缺失值的比例。您可以将鼠标悬停在堆叠条形图的不同部分上,以获得计算出的百分比。
每列的标题中都有可视化。以下显示了列可能具有的可视化类型:
-
分类 – 条形图
-
数字 – 直方图
-
日期时间 – 条形图
-
文本 – 条形图
对于每种可视化,数据准备小部件都以橙色突出显示异常值。
当您选择一列时,它会打开一个侧面板。侧面板显示了见解选项卡。该窗格提供了以下类型值的计数:
-
无效值 – 类型与列类型不匹配的值。
-
缺失值 – 缺少的值,如
NaN
或None
。 -
有效值 – 既不缺失也非无效的值。
对于数字列,见解选项卡显示了以下汇总统计数据:
-
最小值 – 最小的值。
-
最大值 – 最大的值。
-
平均值 – 值的平均值。
-
众数 – 出现频率最高的值。
-
标准差 – 值的标准差。
对于分类列,见解选项卡显示了以下汇总统计数据:
-
唯一值 – 列中唯一值的数量。
-
最高频数 – 出现频率最高的值。
标题中带有警告图标的列存在数据质量问题。选择一列可打开数据质量选项卡,您可以使用该选项卡查找转换,以帮助解决问题。警告具有以下严重性级别之一:
-
低 – 可能不会影响您的分析,但可能有助于修复的问题。
-
中 – 可能会影响您的分析,但可能不是需要修复的关键问题。
-
高 – 我们强烈建议修复的严重问题。
注意
小部件对列进行排序,将存在数据质量问题的值显示在数据框顶部。还会突出显示导致问题的值。突出显示的颜色与严重性级别相对应。
在下方 SUGGESTEDTRANSFORMS,您可以选择一种转换来修复数据质量问题。小部件可以提供多种转换以修复问题。它可以为最适合问题的转换提供建议。您可以将光标移到转换上,获取有关转换的更多信息。
要将转换应用于数据集,可选择应用并导出代码。转换会修改数据集,并使用修改后的值更新可视化。转换的代码显示在笔记本的下一个单元格中。如果对数据集应用其他转换,小部件会将该转换追加到单元格。您可以使用小部件生成的代码执行以下操作:
-
进行自定义,以更好地满足您的需求。
-
用于您自己的工作流中。
您可以通过重新运行笔记本中的所有单元格,重现所做的所有转换。
小部件可以为目标列提供见解和警告。目标列即您尝试预测的列。可使用以下过程获取目标列见解。
要获取目标列见解,请执行以下操作。
-
选择要用作目标列的列。
-
选择选择为目标列。
-
选择问题类型。小部件的见解和警告是根据问题类型定制的。以下是问题类型:
-
分类 – 目标列包含分类数据。
-
回归 – 目标列包含数字数据。
-
-
选择运行。
-
(可选)在目标列见解下,选择一个建议的转换。
小部件中见解和转换的参考
对于特征列(不是目标列的列),您可以获得以下见解,以警告您数据集存在问题。
-
缺失值 – 该列包含缺失值,例如
None
、NaN
(不是数字)或NaT
(不是时间戳)。许多机器学习算法在输入数据中不支持缺失值。因此,填充或删除缺失数据的行是至关重要的数据准备步骤。如果您看到缺失值警告,可以使用以下转换之一来纠正此问题。-
删除缺失 – 删除含缺失值的行。如果缺失数据的行比例很小并且不适合填补缺失值,那么我们建议删除这些行。
-
替换为新值 – 将文本缺失值替换为
Other
。您可以在输出代码中将Other
更改为其他值。用 0 替换数字缺失值。 -
替换为平均值 – 用列的平均值替换缺失值。
-
替换为中位数 – 用列的中位数替换缺失值。
-
删除列 – 从数据集中删除含缺失值的列。当缺失数据的行比例很高时,我们建议删除整列。
-
-
伪装的缺失值 – 该列包含伪装的缺失值。伪装的缺失值是指未明确编码为缺失值的值。例如,值可能为
Placeholder
,而不是采用NaN
来表示缺失值。您可以使用以下转换之一来处理缺失值:-
删除缺失 – 删除含缺失值的行
-
替换为新值 – 将文本缺失值替换为
Other
。您可以在输出代码中将Other
更改为其他值。用 0 替换数字缺失值。
-
-
常量列 – 该列只有一个值。因此,该列没有预测能力。我们强烈建议使用删除列转换,将该列从数据集中删除。
-
ID 列 – 该列没有重复值。该列中所有的值都是唯一的。它们可能是IDs或数据库密钥。如果没有更多信息,该列并没有预测能力。我们强烈建议使用删除列转换,将该列从数据集中删除。
-
高基数 – 该列包含比例很高的唯一值。高基数限制了分类列的预测能力。检查该列在分析中的重要性,并考虑使用删除列转换将其删除。
对于目标列,您可以获得以下见解,以警告您数据集存在问题。您可以使用警告中提供的建议转换来纠正问题。
-
目标中的混合数据类型(回归)– 目标列中存在某些非数字值。可能存在数据输入错误。对于包含无法转换的值的行,我们建议删除。
-
频繁标签 – 目标列中某些值的出现频率高于回归环境中的正常值。数据收集或处理中可能存在错误。频繁出现的类别可能表明该值被用作默认值,或者是缺失值的占位符。我们建议使用替换为新值转换,将缺失值替换为
Other
。 -
每个类的实例太少 – 目标列具有很少出现的类别。有些类别的行数不足以让目标列发挥作用。您可以使用以下转换之一:
-
删除稀有目标 – 删除观察值少于十个的唯一值。例如,如果
cat
在列中出现九次,则将其删除。 -
替换稀有目标 – 将数据集中很少出现的类别替换为
Other
。
-
-
类别过于不平衡(多类分类)– 数据集中有些类别的出现频率比其他类别高得多。类别不平衡可能会影响预测精度。为使预测尽可能准确,我们建议使用包含当前出现频率较低的类别的行来更新数据集。
-
大量的类/过多的类 – 目标列中存在大量的类。类过多可能会导致训练时间加长或预测质量低下。我们建议执行以下操作之一:
-
将某些类别分组到自己的类别中。例如,如果六个类别密切相关,我们建议对它们使用单个类别。
-
使用对多个类别具有弹性的机器学习算法。
-