接下来,让我们看看如何使用Data wrangler来处理特征列中的缺失值。
children列表示成人随行儿童的数量,因为 children 列中存在一些缺失值。大多数访客没有随行儿童,因此可以将缺失数据替换为儿童数量 = 0。
搜索Handle missing转换:

选择Filling missing,并搜索children列,设置成0:

点击添加。
遍历 country 列可以发现,大多数客户来自欧洲。因此,country 列中的所有缺失值都被替换为出现次数最多的国家 - 葡萄牙(PRT)。
因此,对于缺失的 country 值,让我们根据值计数将其替换为 PRT。

此外,餐食类型列 meal 有 Undefined 类别。为了解决这个问题,我们可以将 Undefined 值更改为使用最多的 BB = Bread & Breakfast,通过实现一个自定义 pyspark 转换来实现,如下所示。

上述转换中使用的自定义代码片段如下:
from pyspark.sql.functions import when
df = df.withColumn('meal', when(df.meal == 'Undefined', 'BB').otherwise(df.meal))
机器学习模型对特征值的分布和范围很敏感。异常值或罕见值可能会对模型准确性产生负面影响,并导致训练时间更长。
当我们定义"处理异常值"转换步骤时,用于检测异常值的统计数据是在定义此步骤时Data Wrangler中可用的数据上生成的。在运行Data Wrangler作业时,将使用相同的统计数据。
Data Wrangler的"处理异常值"组有5种可应用的转换:
有关这些转换的详细信息,请参阅此处 。
添加一个transform,选择"Handle outliers”:

并选择Standard Deviation Numeric Outliers转换类型:

选择以下几列:

最后进行添加。