始める無料で始める

右裾(負の歪度)の補正

スライドでは、正の歪み(分布が主に左側にあるデータ)を対数変換で補正する方法を紹介しました。負の歪み(分布が主に右側にあるデータ)を補正するには、逆対数、つまり (1/\(\log\)) を適用して正規分布に近づける前に、"反転(reflecting)" と呼ばれるひと手間が必要です。データの反転は、各値を次の式で変換します: $(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[____]))
コードを編集して実行