Probando QuantileTransformer
La estandarización sufre los mismos problemas que los z-scores. Ambos usan la media y la desviación estándar en sus cálculos, lo que los hace muy sensibles a los valores extremos.
Para evitar este problema, deberías usar QuantileTransformer, que utiliza cuantiles. Los cuantiles de una distribución se mantienen iguales independientemente de la magnitud de los outliers.
Deberías usar StandardScaler cuando los datos siguen una distribución normal (puedes comprobarlo con un histograma). Para otras distribuciones, QuantileTransformer es una mejor opción.
Practicarás con el conjunto de datos females ya cargado. matplotlib.pyplot está cargado con su alias habitual, plt.
Este ejercicio forma parte del curso
Detección de anomalías en Python
Instrucciones del ejercicio
- Instancia un
QuantileTransformer()que transforme las variables a una distribución normal y asígnalo aqt. - Ajusta y transforma el array de características
Xy conserva los nombres de las columnas. - Dibuja un histograma de la columna
palmlength.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
from sklearn.preprocessing import QuantileTransformer
# Instantiate an instance that casts to normal
qt = ____
# Fit and transform the feature array
X.____ = ____
# Plot a histogram of palm length
plt.____(____, color='red')
plt.xlabel("Palm length")
plt.show()