纠正右偏数据
在幻灯片中,我们演示了如何用对数变换来修正正偏数据(分布主要集中在左侧的数据)。要矫正负偏(分布主要在右侧),在应用 \(\log\) 的逆(写作 1/$\log\()使数据更接近正态分布之前,您需要额外执行一步"反射"。对数据进行反射可使用以下公式对每个值进行变换:\)(x_{\text{max}} + 1) - x$。
本练习是课程的一部分
使用 PySpark 进行特征工程
练习说明
- 使用聚合函数
skewness()验证'YEARBUILT'为负偏。 - 使用
withColumn()创建新列'Reflect_YearBuilt',对'YEARBUILT'的取值进行反射。 - 基于
'Reflect_YearBuilt'列,通过对其取值执行 1/log(),创建另一列'adj_yearbuilt'。
交互式实操练习
通过完成这段示例代码来试试这个练习。
from pyspark.sql.functions import log
# Compute the skewness
print(df.____({____: ____}).____())
# Calculate the max year
max_year = df.____({____: ____}).____()[0][0]
# Create a new column of reflected data
df = df.____(____, (max_year + 1) - df[____])
# Create a new column based reflected data
df = df.____(____, 1 / ____(df[____]))