Corrigindo dados com assimetria à direita
Nos slides mostramos como você pode usar transformações logarítmicas para corrigir dados com assimetria positiva (dados cuja distribuição está mais à esquerda). Para corrigir a assimetria negativa (dados mais à direita), é preciso dar um passo extra chamado “reflexão” antes de aplicar o inverso de \(\log\), escrito como (1/\(\log\)), para que os dados fiquem mais próximos de uma distribuição normal. A reflexão dos dados usa a seguinte fórmula para refletir cada valor: \((x_{\text{max}} +1) – x\).
Este exercício faz parte do curso
Feature Engineering com PySpark
Instruções do exercício
- Use a função de agregação
skewness()para verificar que'YEARBUILT'tem assimetria negativa. - Use
withColumn()para criar uma nova coluna'Reflect_YearBuilt'e refletir os valores de'YEARBUILT'. - Usando a coluna
'Reflect_YearBuilt', crie outra coluna'adj_yearbuilt'tomando 1/log() dos valores.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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[____]))