使用笔记本分析数据

本教程重点介绍如何使用内置于Data Science Workspace中的Jupyter Notebooks来访问、探索和可视化您的数据。 在本教程结束时,您应该了解Jupyter Notebooks提供的一些功能,以便更好地了解您的数据。

引入了以下概念:

  • JupyterLab: JupyterLab是Project Jupyter的新一代基于Web的接口,已紧密集成到Adobe Experience Platform中。
  • 批次: ​数据集由批次组成。 批次是指一段时间内收集并作为单个单元一起处理的一组数据。 向数据集中添加数据时会创建新批次。
  • 数据访问SDK(已弃用): ​数据访问SDK现已弃用。 请使用Platform SDK指南。

在数据科学Workspace中探索笔记本

在此部分中,将探讨之前摄取到零售模式的数据。

数据科学Workspace允许用户通过JupyterLab平台创建Jupyter Notebooks,他们可以在其中创建和编辑机器学习工作流。 JupyterLab是一种服务器 — 客户端协作工具,允许用户通过Web浏览器编辑笔记本文档。 这些笔记本可以包含可执行代码和富文本元素。 出于我们的目的,我们将使用Markdown作为分析描述和可执行Python代码来执行数据探索和分析。

选择工作区

在启动JupyterLab时,我们将看到一个用于Jupyter Notebooks的基于Web的界面。 根据我们选择的笔记本类型,将启动相应的内核。

在比较要使用的环境时,我们必须考虑每个服务的限制。 例如,如果将pandas库与Python一起使用,则作为常规用户,RAM限制为2 GB。 即使作为高级用户,RAM限制为20 GB。 如果处理较大的计算,则最好使用Spark,它提供了1.5 TB的容量,可与所有笔记本实例共享。

默认情况下,Tensorflow方法在GPU群集中工作,Python在CPU群集中运行。

创建新笔记本

在Adobe Experience Platform UI中,从顶部菜单中选择数据科学以转到数据科学Workspace。 从该页面中,选择JupyterLab以打开JupyterLab启动器。 您应会看到一个类似于此内容的页面。

在我们的教程中,我们将使用Jupyter Notebook中的Python 3来展示如何访问和浏览数据。 在Launcher页面中,提供了示例笔记本。 我们将使用Python 3的零售方法。

零售方法是一个独立的示例,它使用相同的零售数据集来显示如何在Jupyter Notebook中浏览和可视化数据。 此外,该笔记本在培训和验证方面也更加深入。 有关此特定笔记本的详细信息,请参阅此演练

访问数据

NOTE
data_access_sdk_python已弃用,不再推荐。 请参阅将数据访问SDK转换为Platform SDK教程以转换您的代码。 以下相同步骤仍适用于本教程。

我们将再次从Adobe Experience Platform内部访问数据,从外部访问数据。 我们将使用data_access_sdk_python库访问内部数据,如数据集和XDM架构。 对于外部数据,我们将使用熊猫Python库。

外部数据

打开零售业笔记本后,找到“加载数据”标头。 以下Python代码使用熊猫“DataFrame”数据结构和read_csv()函数将Github上托管的CSV读取到DataFrame中:

熊猫的DataFrame数据结构是一种二维标记数据结构。 若要快速查看数据的维度,我们可以使用df.shape。 这将返回一个表示DataFrame维度的元组:

最后,我们可以看看我们的数据是什么样的。 我们可以使用df.head(n)查看DataFrame的前n行:

Experience Platform数据

现在,我们将再次访问Experience Platform数据。

按数据集ID

对于此部分,我们使用的是“零售额”数据集,该数据集与“零售额”示例笔记本中使用的数据集相同。

在Jupyter Notebook中,您可以从左侧的​ 数据 ​选项卡 数据选项卡 访问您的数据。 选择该选项卡后,将提供两个文件夹。 选择​ 数据集 ​文件夹。

现在,在“数据集”目录中,您可以看到所有摄取的数据集。 请注意,如果您的目录中填充了大量数据集,则加载所有条目可能需要一分钟。

由于数据集相同,因此我们希望替换使用外部数据的上一节中的加载数据。 在​ Load Data ​下选择代码块,然后按键盘上的​ 'd' ​键两次。 确保焦点位于块上而不是文本中。 您可以按​ 'esc' ​以转义文本焦点,然后再按​ 'd' ​两次。

现在,我们可以右键单击Retail-Training-<your-alias>数据集,然后在下拉列表中选择“在笔记本中浏览数据”选项。 您的笔记本中将显示一个可执行代码条目。

TIP
请参阅Platform SDK指南以转换代码。
from data_access_sdk_python.reader import DataSetReader
from datetime import date
reader = DataSetReader()
df = reader.load(data_set_id="xxxxxxxx", ims_org="xxxxxxxx@AdobeOrg")
df.head()

如果您使用的是Python以外的其他内核,请参阅此页面以访问Adobe Experience Platform上的数据。

选择可执行单元格,然后按工具栏中的播放按钮将运行可执行代码。 head()的输出将是一个表,其中数据集的键为列,且是数据集的前n行。 head()接受一个整数参数以指定要输出的行数。 默认情况下,此值为5。

如果重新启动内核并再次运行所有单元格,则应该获得与之前相同的输出。

探索您的数据

现在,我们可以访问您的数据,接下来让我们通过使用统计和可视化来关注数据本身。 我们正在使用的数据集是一个零售数据集,它提供了一天中有关45个不同商店的各种信息。 给定datestore的某些特性包括:

  • storeType
  • weeklySales
  • storeSize
  • temperature
  • regionalFuelPrice
  • markDown
  • cpi
  • unemployment
  • isHoliday

统计摘要

我们可以利用Python’s熊猫库来获取每个属性的数据类型。 以下调用的输出将为我们提供有关每个列的条目数和数据类型的信息:

df.info()

此信息非常有用,因为知道每列的数据类型将使我们能够知道如何处理数据。

现在,我们来看看统计摘要。 将仅显示数值数据类型,因此不会输出datestoreTypeisHoliday

df.describe()

这样,我们可以看到每个特征有6435个实例。 此外,还给出了平均值、标准偏差(std)、最小值、最大值以及四分位数等统计信息。 这为我们提供了有关数据偏差的信息。 在下一部分中,我们将介绍可视化图表,它可与此信息配合使用,使我们能够很好地了解我们的数据。

查看store的最小值和最大值,我们可以看到数据表示有45个唯一存储。 还有storeTypes用于区分存储是什么。 通过执行以下操作,我们可以看到storeTypes的分布:

这意味着22个存储区属于storeType A,17个是storeType B,6个是storeType C

数据可视化

现在我们知道了数据帧的值,我们要用可视化图表来补充此信息,以使事情更清晰、更易于识别模式。 在将结果传递给受众时,图形也很有用。 一些Python库对可视化图表很有用,其中包括:

在本节中,我们将快速介绍使用每个库的一些优势。

Matplotlib是最早的Python可视化包。 他们的目标是让“容易的事情变为可能,困难的事情也变为可能”。 这往往是对的,因为软件包功能非常强大,但也伴随着复杂性。 要获得合理的图表并不总是容易的,需要花费大量的时间和精力。

Pandas主要用于其DataFrame对象,该对象允许使用集成索引进行数据操作。 不过,熊猫还包括基于matplotlib的内置绘图功能。

seaborn是基于matplotlib的包生成。 其主要目标是使默认图形更加直观并简化复杂图形的创建。

ggplot也是基于matplotlib构建的包。 但主要区别在于,该工具是R的ggplot2端口。与seaborn类似,其目标是改进matplotlib。 熟悉R的ggplot2的用户应考虑此库。

单变量图

单变量图是指单个变量的图形。 用于可视化您的数据的常用单变量图是盒形图和胡须图。

使用我们之前提供的零售数据集,我们可以为45家商店中的每一家及其每周销售额生成盒子和胡须图。 使用seaborn.boxplot函数生成绘图。

盒子和须子图用于显示数据的分布。 该图的外线显示上四分位点和下四分位点,而框跨越四分位点之间的范围。 方框中的线条标记中间值。 任何大于四分位数上或下四分位数的1.5倍的数据点均被标记为圆形。 这些点被视为离群值。

多变量图

多变量图用于查看变量之间的交互。 借助这个可视化图表,数据科学家可以看到变量之间是否存在任何关联或模式。 常用的多变量图是关联矩阵。 利用相关矩阵,用相关系数量化多个变量之间的相关性。

使用相同的零售数据集,我们可以生成关联矩阵。

注意中间1的对角线。 这表明,将变量与其自身进行比较时,变量具有完全正相关性。 强正关联强度将接近1,而弱关联强度将接近0。 负相关显示负系数,负系数显示反向趋势。

后续步骤

本教程介绍了如何在数据科学Workspace中创建新的Jupyter Notebook,以及如何从外部和从Adobe Experience Platform访问数据。 具体来说,我们执行了以下步骤:

  • 创建新的Jupyter Notebook
  • 访问数据集和架构
  • 浏览数据集

现在您已准备好转至下一部分以打包方法并导入数据科学Workspace。

recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9