開始使用免費開始

修正右偏態資料

在投影片中我們示範了如何用對數轉換來修正正偏態的資料(分佈大多集中在左側)。要修正負偏態(分佈大多在右側),在套用 \(\log\) 的反函數、也就是寫作 (1/\(\log\)) 之前,你需要先多做一步稱為「反射」(reflecting)的處理,讓資料更接近常態分佈。反射資料可使用以下公式對每個值進行轉換:$(x_{\text{max}} +1) – x$。

本練習屬於課程

使用 PySpark 進行特徵工程

檢視課程

練習說明

  • 使用聚合函式 skewness() 驗證 'YEARBUILT' 是否為負偏態。
  • 使用 withColumn() 建立新欄位 'Reflect_YearBuilt',並對 'YEARBUILT' 的值做反射轉換。
  • 使用 'Reflect_YearBuilt' 欄位,再建立另一個欄位 'adj_yearbuilt',其值為 1/log()(對該欄位值取 1/log())。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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[____]))
編輯並執行程式碼