06 - Handle Missing Data

标题: “06 - 处理缺失数据” 权重: 08

我们已经讨论了什么是缺失值以及为什么处理它们很重要。到目前为止,我们一直在处理时间戳。现在,我们将处理其他属性中的缺失值。

我们可以将 duration 特征排除在此操作之外,因为它是在之前的步骤中从时间戳计算出来的。正如我们之前讨论的,有几种方法来处理缺失数据:填充一个静态数字或计算一个正确的值(例如:最近7天的中位数或平均值)。如果我们的时间序列表示连续的过程,如传感器读数或产品销售数量,计算一个值可能是有意义的。在我们的例子中,所有的行程都是独立的,我们无法根据之前的行程计算值,因为这可能会带来数据偏差并增加错误。我们可以用零替换缺失值,有时也可能有意义删除整个包含缺失值的行。

Data Wrangler有两种转换来处理缺失数据:i)通用的和ii)专门为时间序列数据设计的。在这里,我们演示如何使用这两种转换,并描述何时使用每种转换。

使用通用的"处理缺失值"转换来处理缺失数据

如果我们想要:

  • 用同一个静态值替换所有时间序列中的缺失值。
  • 用计算出的值替换缺失值,并且只有一个时间序列。例如,单个传感器。

可以使用这种转换。 按照以下步骤创建此转换:

  • 点击转换元素集合旁边的加号,选择"添加转换”。
  • 在TRANSFORMS菜单中点击"+ 添加步骤"橙色按钮。
  • 选择"处理缺失”。
  • 对于"转换"选择"填充缺失”。
  • 对于"输入列"选择 PULocationIDtip_amounttotal_amount
  • 对于"填充值"输入 0。
  • 选择预览。
  • 选择添加以保存步骤。

当应用此转换到数据集时,我们可以看到到目前为止的所有当前步骤,并获得结果数据集的预览。

使用特殊的时间序列转换来处理缺失数据

在实际的数据集中,我们在同一个数据集中有许多时间序列,为了将它们分开,我们使用某种形式的ID。例如,传感器ID或商品SKU。如果我们想用计算出的值(例如,最近10个传感器观测值的平均值)来替换缺失值,我们必须基于每个时间序列独立的数据来计算。与其编写代码,不如使用Data Wrangler中的特殊时间序列转换,这样就可以轻松完成!

按照以下步骤创建此转换:

  • 在TRANSFORMS菜单中点击"+ 添加步骤"橙色按钮。
  • 选择"时间序列”。
  • 对于"转换"选择"处理缺失”。
  • 对于"时间序列输入类型"选择"沿列”。
  • 对于"为此列补充缺失值"选择 trip_distance
  • 对于"时间戳列"选择 tpep_pickup_datetime
  • 对于"ID列"选择 PULocationID
  • 对于"补充缺失值的方法"选择"常量值”。
  • 对于"自定义值"输入 0.0。
  • 选择预览。
  • 选择添加以保存步骤。

当应用此转换到数据集时,我们可以看到到目前为止的所有当前步骤,并获得结果数据集的预览。

返回到数据流编辑器窗口。