Corregir datos con sesgo a la derecha
En las diapositivas vimos cómo puedes usar transformaciones logarítmicas para corregir datos con sesgo positivo (cuando la distribución se concentra a la izquierda). Para corregir el sesgo negativo (datos concentrados a la derecha) necesitas un paso adicional llamado "reflexión" antes de aplicar el inverso de \(\log\), escrito como (1/\(\log\)), para que los datos se parezcan más a una distribución normal. La reflexión de los datos usa la siguiente fórmula para reflejar cada valor: \((x_{\text{max}} +1) – x\).
Este ejercicio forma parte del curso
Ingeniería de características con PySpark
Instrucciones del ejercicio
- Usa la función de agregación
skewness()para comprobar que'YEARBUILT'tiene sesgo negativo. - Usa
withColumn()para crear una nueva columna'Reflect_YearBuilt'y reflejar los valores de'YEARBUILT'. - Usando la columna
'Reflect_YearBuilt', crea otra columna'adj_yearbuilt'tomando 1/log() de sus valores.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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[____]))