Transformación logarítmica
En los ejercicios anteriores escalaste los datos linealmente, lo cual no afecta a la forma de la distribución. Esto funciona muy bien si tus datos siguen una distribución normal (o cercana a normal), una suposición común en muchos modelos de Machine Learning. A veces trabajarás con datos que se ajustan bastante a la normalidad, p. ej., la altura o el peso de una población. En cambio, muchas variables del mundo real no siguen ese patrón, p. ej., los salarios o la edad de una población. En este ejercicio aplicarás una transformación logarítmica a la columna ConvertedSalary del DataFrame so_numeric_df, ya que gran parte de sus valores se concentran en los más bajos, pero también contiene valores muy altos. Se dice que estas distribuciones tienen una cola derecha larga.
Este ejercicio forma parte del curso
Ingeniería de características para Machine Learning en Python
Instrucciones del ejercicio
- Importa
PowerTransformerdel módulopreprocessingdesklearn. - Instancia
PowerTransformer()comopow_trans. - Ajusta (
fit) elPowerTransformersobre la columnaConvertedSalarydeso_numeric_df. - Transforma esa misma columna con el escalador que acabas de ajustar.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import PowerTransformer
from sklearn.preprocessing import ____
# Instantiate PowerTransformer
pow_trans = ____
# Train the transform on the data
____
# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])
# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()