创建Data Flow

每年有超过1.4亿预订在互联网上进行,许多酒店预订是通过访问量最大的旅游网站如Booking.com、Expedia.com、Hotels.com等进行的。根据谷歌数据,酒店预订通常提前12周进行。接下来我们将创建一个模型,预测客户是否会取消在线酒店的预订。

我们将使用酒店预订数据集来演示如何使用 SageMaker Data Wrangler 执行探索性数据分析 (EDA)特征工程

数据集介绍

酒店预订需求数据集 数据集包含城市酒店和度假酒店的预订信息,包括预订时间、入住时间、成人、儿童和/或婴儿数量以及可用停车位数量等信息事物。

下载数据集:

https://www.kaggle.com/datasets/jessemostipak/hotel-booking-demand

image-20231209152349930

将数据集解压缩到本地计算机中,解压出来是hotel_bookings.csv

我们将使用此数据集根据历史模式和其他特征来预测客户是否会取消预订。

点击这里查看列说明 <

创建S3数据源

Data Wrangler 支持从多个数据源导入数据集 ,包括 S3、AppFlow、Athena、Redshift、EMR、Snowflake 和 Databricks。

创建S3桶:

aws s3 mb s3://<bucket-name> --region us-east-1

确保 S3 存储桶位于和SageMaker Studio 同一区域。

在存储桶中创建一个名为bookings_dataset的文件夹,然后将解压的 CSV 文件上传到bookings_dataset文件夹中:

image-20240902192957159

从 S3 导入数据集

回到SageMaker Studio,进入左侧的Data -> Data Wrangler页面,Data Wrangler需要在Canvas里运行,首先开启Canvas:

image-20231209184409560

等待8分钟左右后,Canvas启动成功,点击Open in Canvas

image-20231210095448346

点击Import and prepare

image-20240902214622465

选择导入表类型数据:

image-20231210100019011

选择从S3中导入数据,这里看到支持几十种数据源:

image-20231210100034635

选择之前上传的文件路径并导入:

image-20231210100117646

导入的时候会先preview data,确认数据格式没问题后点击Import data

image-20231210100217595

探索性数据分析 (EDA)

导入数据后,Data Wrangler 会验证数据集,检测数据类型(可以覆盖),并提供每列的直方图。加载后,可以看到数据分布、无效值和缺失值。异常值和缺失值是错误数据的特征,识别它们至关重要,因为它们可能会影响结果。

直方图顶部有一个条形图,显示无效值和缺失值。我们可以查看数字、分类、二进制、文本和日期时间类型的有效值的比率,以及基于总 null 和空单元格的缺失值的比率,最后是无效值的比率。

image-20240902214821687

Data flow视图

单击页面顶部的数据流,返回主数据流页面。

image-20231210101115679

流程编辑器现在显示两个块,显示数据是从源导入的并且数据类型已识别:

image-20240902214934289

为了对导入的数据应用操作,我们可以选择数据类型块并单击它旁边的+号。如下图所示,可以看到用于添加转换、执行分析、添加目标接收器或将步骤导出为 Jupyter Notebook 的选项。

除了导入之外,还可以将一个导入的数据集与其他数据集连接起来:

image-20240902215021493

重命名Data flow文件

进入data flow主页面,将 Data Wrangler文件重命名hotel-bookings.flow

image-20231210101329776

命名后:

image-20231210101357101

在下一节中,我们将使用数据质量和见解报告对刚刚导入 Data Wrangler 的酒店预订数据集进行分析