Autor: Fernando

  • Ranking Simple

    Transformación Basada en Rangos

    En Data Science y Machine Learning, es frecuente trabajar con variables que presentan distribuciones altamente asimétricas, valores extremos o escalas muy diferentes. En estos casos, los valores absolutos pueden dificultar el análisis y afectar el rendimiento de determinados algoritmos.

    Una estrategia alternativa para tratar con variables que presentan distribuciones altamente asimétricas, valores extremos o escalas muy diferentes consiste en ignorar temporalmente los valores originales y centrarse únicamente en su posición relativa dentro del conjunto de datos. Este enfoque da lugar a la Rank Transformation o Transformación por Rangos, una técnica que reemplaza cada observación por su posición ordenada dentro de la variable.

    La variante más sencilla de esta técnica es el Ranking Simple, que asigna un rango numérico a cada observación según su orden relativo.

    ¿Qué es la Rank Transformation?

    La Rank Transformation es una técnica de transformación de datos que sustituye los valores originales de una variable por sus rangos dentro de la distribución. En lugar de trabajar con magnitudes absolutas, la transformación utiliza únicamente la posición relativa de cada observación.

    Por ejemplo:

    var = [100, 50, 200, 150]

    Tras ordenar los datos:

    ValorRango
    501
    1002
    1503
    2004

    La variable transformada pasa a ser:

    var = [2, 1, 4, 3]

    De esta manera, se conserva el orden de las observaciones, pero se elimina la influencia de la escala original.

    ¿Cómo Funciona?

    El procedimiento es relativamente sencillo:

    • Ordenar los datos de menor a mayor.
    • Asignar una posición numérica a cada observación.
    • Sustituir los valores originales por sus rangos correspondientes.

    Matemáticamente:

    $$R(x_i)=r_i$$

    Donde:

    • xᵢ representa una observación.
    • rᵢ representa su rango dentro del conjunto de datos.

    El resultado final es una variable ordinal que refleja únicamente el orden relativo de las observaciones.

    Tratamiento de Empates

    Uno de los aspectos más importantes en las transformaciones por rangos es la gestión de valores repetidos y existen varios métodos para asignar rangos.

    Average Ranking

    Los empates reciben el promedio de las posiciones que ocuparían.

    ValorRango
    101
    202.5
    202.5
    404

    Min Ranking

    Todos los empates reciben el rango mínimo.

    ValorRango
    101
    202
    202
    404

    Dense Ranking

    No se dejan huecos entre rangos consecutivos.

    ValorRango
    101
    202
    202
    403

    El valor extremo deja de influir por su magnitud y únicamente conserva su posición relativa.

    Beneficios de Simple Rank

    • Elimina la influencia de la escala original.
    • Reduce el impacto de valores extremos.
    • Conserva el orden relativo de las observaciones.
    • Facilita la comparación entre variables con unidades diferentes.
    • Es robusta frente a distribuciones no normales.
    • Puede simplificar ciertos análisis estadísticos.
    • Resulta sencilla de implementar.

    ¿Cuándo Utilizar Simple Rank?

    • Existen valores atípicos importantes.
    • La escala de los datos no es relevante.
    • Se desea trabajar con posiciones relativas.
    • Los datos presentan distribuciones muy asimétricas.
    • Se utilizan métodos estadísticos no paramétricos.
    • Se quiere reducir la influencia de observaciones extremas sin eliminarlas.

    También resulta útil cuando las diferencias exactas entre valores son menos importantes que su orden relativo.

    Ventajas

    • Muy fácil de entender e implementar.
    • Reduce significativamente la influencia de outliers.
    • No requiere supuestos sobre la distribución.
    • Funciona con cualquier escala de medida numérica.
    • Conserva el orden de las observaciones.
    • Facilita ciertos análisis estadísticos robustos.
    • Puede mejorar la estabilidad de algunos algoritmos.

    Desventajas

    • Se pierde la información sobre las distancias reales entre valores.
    • Dos observaciones muy diferentes pueden quedar separadas por un único rango.
    • No conserva la magnitud original de los datos.
    • Puede reducir la interpretabilidad de algunas variables.
    • No siempre mejora el rendimiento predictivo.

    Limitaciones

    • No aproxima los datos a una distribución normal.
    • No realiza escalado en sentido estricto.
    • No conserva las diferencias cuantitativas originales.
    • Puede eliminar información relevante para determinados modelos.
    • No resulta adecuada cuando la magnitud exacta de las observaciones es importante.

    Por este motivo, suele utilizarse principalmente en análisis exploratorios y métodos estadísticos robustos.

    Comparación con Otras Transformaciones

    CaracterísticaRanking SimpleQuantile TransformationRank Gaussian
    Utiliza rangos
    Conserva orden
    Reduce outliers
    Aproxima normalidadNoOpcional
    Conserva magnitudes originalesNoNoNo
    Transformación no lineal

    Puede considerarse la forma más básica de todas las transformaciones basadas en rangos.

    Aplicaciones en Data Science y Machine Learning

    La Rank Transformation aparece frecuentemente en:

    • Estadística no paramétrica.
    • Análisis exploratorio de datos (EDA).
    • Sistemas de recomendación.
    • Detección de anomalías.
    • Modelos financieros.
    • Competiciones de Machine Learning.
    • Ingeniería de características.
    • Métodos robustos frente a outliers.

    También constituye la base de técnicas más avanzadas como Rank Gaussian Transformation y Quantile Transformation.

    Implementación en Python

    Aplicación Básica con Pandas

    import pandas as pd
    
    df = pd.DataFrame({
        "ingresos": [1500, 2000, 3000, 5000, 100000]
    })
    
    df["ranking"] = df["ingresos"].rank()
    
    print(df)
    

    Ranking Ascendente

    df["ranking"] = df["ingresos"].rank(
        ascending=True
    )
    

    Ranking Descendente

    df["ranking"] = df["ingresos"].rank(
        ascending=False
    )
    

    Ranking Denso

    df["ranking"] = df["ingresos"].rank(
        method="dense"
    )
    

    Ranking con Valores Empatados

    import pandas as pd
    
    datos = pd.Series([10, 20, 20, 40])
    
    print(datos.rank(method="average"))
    print(datos.rank(method="min"))
    print(datos.rank(method="dense"))
    

    Uso en Scikit-Learn

    Aunque Scikit-Learn no incluye un transformador específico para Ranking Simple, puede implementarse mediante FunctionTransformer.

    from sklearn.preprocessing import FunctionTransformer
    import pandas as pd
    
    def rank_transform(X):
        return pd.DataFrame(X).rank().values
    
    ranker = FunctionTransformer(rank_transform)
    
    X_transformado = ranker.fit_transform(X)
    

    Buenas Prácticas

    • Analizar si la magnitud original contiene información importante.
    • Elegir adecuadamente el método de tratamiento de empates.
    • Comparar los resultados con otras transformaciones basadas en cuantiles.
    • Utilizarla principalmente cuando interese el orden y no el valor exacto.
    • Evaluar el impacto sobre el rendimiento del modelo.

    Conclusión

    La Rank Transformation o Ranking Simple es una técnica de transformación basada en rangos que sustituye los valores originales por su posición relativa dentro de la distribución. Su simplicidad, robustez frente a valores extremos y ausencia de supuestos estadísticos la convierten en una herramienta muy útil para el análisis exploratorio y los métodos no paramétricos.

    Aunque implica la pérdida de información sobre las magnitudes originales, permite trabajar con variables complejas desde una perspectiva más robusta y menos sensible a outliers. Además, constituye el fundamento de transformaciones más avanzadas como Quantile Transformation y Rank Gaussian Transformation, ampliamente utilizadas en proyectos modernos de Data Science y Machine Learning.

  • Rank Gaussian Transformation

    Transformación Basada en Rangos para Aproximar una Distribución Normal

    En Data Science y Machine Learning, muchas variables presentan distribuciones altamente asimétricas, colas largas o una gran cantidad de valores atípicos. Estas características pueden afectar el rendimiento de ciertos algoritmos, especialmente aquellos que funcionan mejor cuando los datos siguen una distribución aproximadamente normal.

    Para abordar el problema de distribuciones altamente asimétricas, colas largas o una gran cantidad de valores atípicos, existen diversas técnicas de transformación. Entre ellas destaca la Rank Gaussian Transformation, una técnica robusta que combina el uso de rangos con la transformación hacia una distribución normal.

    Su principal ventaja es que no depende de los valores originales de la variable, sino de su posición relativa dentro de la distribución, lo que la hace especialmente resistente a los valores extremos y adecuada para variables con distribuciones complejas.

    ¿Qué es Rank Gaussian Transformation?

    La Rank Gaussian Transformation, también conocida como:

    • Rank Normalization.
    • RankGauss.
    • Inverse Normal Transformation.
    • Rank-Based Gaussian Transformation.

    Es una técnica que transforma una variable en una distribución aproximadamente normal utilizando los rangos de las observaciones. En lugar de trabajar directamente con los valores originales, el procedimiento:

    • Ordena los datos.
    • Asigna un rango a cada observación.
    • Convierte dichos rangos en probabilidades acumuladas.
    • Aplica la función inversa de la distribución normal.

    El resultado es una variable cuya distribución se asemeja a una distribución gaussiana estándar.

    ¿Cómo Funciona?

    La transformación se realiza en varias etapas.

    Paso 1: Ordenar los datos

    Supongamos la siguiente variable:

    var = [5, 10, 20, 50, 100]

    Al ordenarla obtenemos:

    rango = [1, 2, 3, 4, 5]

    Paso 2: Convertir rangos en probabilidades

    Cada rango se transforma en una posición relativa dentro de la distribución. Una fórmula habitual es:

    $$=\frac{r-0.5}{n}$$

    Donde:

    • r es el rango.
    • n es el número de observaciones.
    • p es la probabilidad acumulada.

    Paso 3: Aplicar la función inversa normal

    Posteriormente se utiliza la función inversa de la distribución normal acumulada:

    $$z=\Phi^{-1}(p)$$

    Donde:

    • Φ⁻¹ representa la función cuantílica de la distribución normal.
    • z es el valor transformado.

    El resultado final presenta una distribución cercana a una normal estándar.

    Beneficios de Rank Gaussian Transformation

    • Reduce significativamente la asimetría.
    • Aproxima la distribución a una normal.
    • Es extremadamente robusta frente a outliers.
    • Reduce el impacto de colas largas.
    • Facilita el trabajo con distribuciones complejas.
    • No requiere asumir ninguna forma previa de distribución.
    • Suele mejorar el comportamiento de modelos sensibles a la normalidad.

    ¿Cuándo Utilizar Rank Gaussian Transformation?

    • Existen distribuciones muy asimétricas.
    • Hay una gran cantidad de valores extremos.
    • Los datos presentan colas largas.
    • Se desea aproximar una distribución normal.
    • Box-Cox o Yeo-Johnson no ofrecen resultados satisfactorios.
    • Se utilizan algoritmos sensibles a la distribución de las variables.

    También es frecuente en conjuntos de datos tabulares utilizados en competiciones de Machine Learning.

    Ventajas

    • Muy robusta frente a valores atípicos.
    • Reduce eficazmente la asimetría.
    • Aproxima la distribución a una normal estándar.
    • Funciona correctamente con variables complejas.
    • No requiere optimización de parámetros.
    • Puede mejorar la convergencia de algunos algoritmos.
    • Es independiente de la escala original de los datos.

    Desventajas

    • La interpretación de los valores transformados resulta difícil.
    • Se pierde la escala original de la variable.
    • Modifica completamente la distribución inicial.
    • Puede alterar relaciones lineales entre variables.
    • No siempre mejora el rendimiento predictivo.
    • Puede complicar la explicación de resultados a usuarios de negocio.

    Limitaciones

    • No conserva las unidades originales.
    • La transformación es completamente no lineal.
    • Puede distorsionar ciertas relaciones estadísticas.
    • No siempre es adecuada para modelos que requieren interpretabilidad.
    • Su efecto puede variar cuando aparecen nuevos datos fuera de la distribución observada durante el entrenamiento.

    Por este motivo suele utilizarse principalmente en contextos donde el rendimiento predictivo es más importante que la interpretabilidad.

    Diferencias con Quantile Transformation

    Aunque ambas técnicas son muy similares, existen algunas diferencias conceptuales.

    CaracterísticaQuantile TransformationRank Gaussian Transformation
    Utiliza rangos
    Utiliza percentiles
    Distribución uniformeNo
    Distribución normal
    Transformación basada en cuantiles
    Aproximación gaussiana explícitaOpcional
    Robustez frente a outliersAltaMuy alta

    En la práctica, la implementación de QuantileTransformer con salida normal genera resultados muy similares a una Rank Gaussian Transformation.

    Aplicaciones en Data Science y Machine Learning

    Rank Gaussian Transformation se utiliza frecuentemente en:

    • Regresión Lineal.
    • Regresión Logística.
    • Redes Neuronales.
    • Support Vector Machines (SVM).
    • PCA.
    • Clustering.
    • Modelos de detección de anomalías.
    • Sistemas de recomendación.
    • Competiciones de Machine Learning.

    Ha sido especialmente popular en plataformas como Kaggle, donde numerosos participantes la utilizan para mejorar el comportamiento de variables altamente sesgadas.

    Implementación en Python

    Scikit-Learn no dispone de una clase denominada específicamente “RankGaussianTransformer“, pero puede obtenerse un comportamiento prácticamente equivalente mediante QuantileTransformer con distribución normal.

    Implementación con QuantileTransformer

    from sklearn.preprocessing import QuantileTransformer
    
    transformer = QuantileTransformer(
        output_distribution="normal"
    )
    
    X_transformado = transformer.fit_transform(X)
    

    Aplicación sobre un DataFrame

    import pandas as pd
    from sklearn.preprocessing import QuantileTransformer
    
    df = pd.DataFrame({
        "ingresos": [1000, 1200, 1500, 3000, 50000]
    })
    
    transformer = QuantileTransformer(
        output_distribution="normal"
    )
    
    df["ingresos_rankgauss"] = transformer.fit_transform(
        df[["ingresos"]]
    )
    
    print(df)
    

    Configuración del Número de Cuantiles

    from sklearn.preprocessing import QuantileTransformer
    
    transformer = QuantileTransformer(
        n_quantiles=1000,
        output_distribution="normal"
    )
    
    X_transformado = transformer.fit_transform(X)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import QuantileTransformer
    from sklearn.linear_model import LogisticRegression
    
    pipeline = Pipeline([
        (
            "rank_gauss",
            QuantileTransformer(
                output_distribution="normal"
            )
        ),
        (
            "model",
            LogisticRegression()
        )
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta es la estrategia recomendada para evitar problemas de data leakage durante el entrenamiento.

    Buenas Prácticas

    • Analizar previamente la distribución de las variables.
    • Comparar los resultados con Box-Cox y Yeo-Johnson.
    • Aplicar la transformación únicamente sobre variables numéricas.
    • Ajustar el transformador únicamente con los datos de entrenamiento.
    • Evaluar el impacto sobre la interpretabilidad.
    • Verificar que la transformación mejora realmente el rendimiento del modelo.

    Conclusión

    La Rank Gaussian Transformation es una técnica avanzada de transformación basada en rangos que permite convertir distribuciones complejas y altamente asimétricas en distribuciones aproximadamente normales. Gracias a su enfoque basado en posiciones relativas, resulta extremadamente robusta frente a valores atípicos y distribuciones con colas largas.

    Aunque implica la pérdida de la escala original y puede dificultar la interpretación de los resultados, constituye una herramienta muy valiosa cuando se busca mejorar la calidad de las variables utilizadas por algoritmos sensibles a la distribución de los datos. Por ello, se ha convertido en una técnica ampliamente utilizada en Machine Learning moderno, especialmente en problemas tabulares donde la normalización avanzada puede aportar mejoras significativas al rendimiento predictivo.

  • Quantile Transformation

    Transformación Basada en Cuantiles para Escalado y Normalización de Datos

    Una de las técnicas más potentes para tratar con variables que presentan distribuciones altamente asimétricas, presencia de valores extremos o rangos muy diferentes entre sí es Quantile Transformation, una transformación no lineal que utiliza la posición relativa de cada observación dentro de la distribución para transformar los datos a una nueva escala.

    A diferencia de técnicas como Min-Max Scaling o Standardization, que únicamente modifican la escala de los datos, Quantile Transformation también modifica la forma de la distribución, permitiendo obtener variables con una distribución uniforme o aproximadamente normal.

    ¿Qué es Quantile Transformation?

    Quantile Transformation es una técnica de transformación basada en rangos que convierte los valores de una variable utilizando su posición relativa dentro de la distribución original.

    El procedimiento consiste en:

    • Ordenar los datos.
    • Calcular el percentil o cuantíl correspondiente a cada observación.
    • Asignar un nuevo valor según una distribución objetivo.

    Las distribuciones objetivo más utilizadas son:

    • Distribución uniforme.
    • Distribución normal (gaussiana).

    Como resultado, la forma original de la distribución cambia completamente.

    ¿Cómo Funciona?

    El proceso puede resumirse en tres etapas:

    • Ordenar las observaciones de menor a mayor.
    • Calcular la posición relativa de cada valor dentro de la distribución.
    • Transformar dicha posición a una nueva distribución objetivo.

    Por ejemplo, supongamos los siguientes valores y las posiciones relativas:

    ValorPercentil
    100%
    2025%
    3050%
    4075%
    50100%

    Posteriormente estos percentiles se proyectan sobre una nueva distribución.

    Distribución Uniforme

    Cuando se utiliza una distribución uniforme, cada observación se transforma a un valor comprendido entre 0 y 1.

    El resultado presenta:

    • Valores distribuidos uniformemente.
    • Mismo número aproximado de observaciones en cada intervalo.

    Ejemplo:

    Valor OriginalTransformado
    100.00
    200.25
    300.50
    400.75
    501.00

    Distribución Normal

    Cuando se selecciona una distribución normal como objetivo, los percentiles se transforman utilizando la función inversa de la distribución normal acumulada. El resultado es una variable que presenta una forma aproximadamente gaussiana. Esta opción es especialmente útil para algoritmos que asumen normalidad.

    Ejemplo Práctico

    ventas = [1000, 1500, 2000, 2500, 100000

    La distribución presenta una fuerte asimetría positiva debido al valor extremo de 100000.

    Tras aplicar Quantile Transformation:

    • Los ingresos se redistribuyen según sus posiciones relativas.
    • El valor extremo deja de dominar la escala.
    • La distribución se vuelve mucho más equilibrada.
    ventas_transformadas = [0.00, 0.25, 0.50, 0.75, 1.00]

    Beneficios de Quantile Transformation

    • Reduce significativamente la asimetría.
    • Disminuye el impacto de valores atípicos.
    • Puede aproximar una distribución normal.
    • Permite obtener una distribución uniforme.
    • Facilita el entrenamiento de algoritmos sensibles a la distribución.
    • Mejora la estabilidad de ciertos modelos estadísticos.
    • Funciona correctamente con distribuciones muy complejas.

    ¿Cuándo Utilizar Quantile Transformation?

    • Existen distribuciones altamente sesgadas.
    • Hay presencia de valores extremos importantes.
    • Se necesita aproximar una distribución normal.
    • Los métodos de escalado tradicionales no producen buenos resultados.
    • Se trabaja con algoritmos sensibles a la forma de la distribución.

    Ventajas

    • Es robusta frente a valores atípicos.
    • Reduce eficazmente la asimetría.
    • Puede transformar distribuciones muy complejas.
    • No depende de la media ni de la desviación estándar.
    • Permite elegir entre distribución uniforme o normal.
    • Suele mejorar el comportamiento de muchos algoritmos de Machine Learning.
    • Funciona correctamente con datos no gaussianos.

    Desventajas

    • Modifica completamente la forma original de la distribución.
    • Puede dificultar la interpretación de los resultados.
    • La relación lineal entre variables puede alterarse.
    • Los valores transformados dejan de tener unidades interpretables.
    • Puede generar sobreajuste si se utiliza incorrectamente.
    • Requiere más procesamiento que técnicas simples de escalado.

    Limitaciones

    • No conserva la distribución original.
    • Puede afectar la interpretabilidad de las variables.
    • No siempre mejora el rendimiento del modelo.
    • Puede distorsionar relaciones estadísticas importantes.
    • Su comportamiento puede variar cuando aparecen nuevos datos fuera del rango observado durante el entrenamiento.

    Por este motivo, debe utilizarse después de analizar cuidadosamente la naturaleza de los datos y los requisitos del modelo.

    Comparación con Otros Métodos de Escalado

    CaracterísticaMin-MaxStandardScalerRobustScalerQuantile Transformer
    Escala fijaNoNo
    Sensible a outliersBajaMuy baja
    Reduce asimetríaNoNoNo
    Aproxima normalidadNoNoNo
    Conserva distribución originalNo
    Transformación no linealNoNoNo

    Aplicaciones en Data Science y Machine Learning

    Quantile Transformation se utiliza frecuentemente en:

    • Regresión Lineal.
    • Regresión Logística.
    • Support Vector Machines (SVM).
    • Redes Neuronales.
    • PCA.
    • Clustering.
    • Sistemas de detección de anomalías.
    • Modelos estadísticos que requieren normalidad aproximada.

    También resulta útil en procesos de preparación de datos donde existen distribuciones altamente sesgadas o con colas largas.

    Implementación en Python

    Aplicación Básica con Distribución Uniforme

    from sklearn.preprocessing import QuantileTransformer
    import pandas as pd
    
    df = pd.DataFrame({
        "ingresos": [1000, 1500, 2000, 2500, 100000]
    })
    
    qt = QuantileTransformer(
        output_distribution="uniform"
    )
    
    df["ingresos_transformados"] = qt.fit_transform(
        df[["ingresos"]]
    )
    
    print(df)
    

    Aplicación con Distribución Normal

    from sklearn.preprocessing import QuantileTransformer
    
    qt = QuantileTransformer(
        output_distribution="normal"
    )
    
    X_transformado = qt.fit_transform(X)
    

    Ajuste del Número de Cuantiles

    from sklearn.preprocessing import QuantileTransformer
    
    qt = QuantileTransformer(
        n_quantiles=1000,
        output_distribution="normal"
    )
    
    X_transformado = qt.fit_transform(X)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import QuantileTransformer
    from sklearn.linear_model import LogisticRegression
    
    pipeline = Pipeline([
        (
            "quantile",
            QuantileTransformer(
                output_distribution="normal"
            )
        ),
        (
            "model",
            LogisticRegression()
        )
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta estrategia evita problemas de data leakage y garantiza que la transformación se aplique correctamente durante el entrenamiento y la inferencia.

    Buenas Prácticas

    Al utilizar Quantile Transformation es recomendable:

    • Analizar la distribución original antes de aplicar la transformación.
    • Comparar los resultados con Box-Cox y Yeo-Johnson.
    • Ajustar el transformador únicamente con los datos de entrenamiento.
    • Aplicar exactamente la misma transformación sobre los datos de prueba.
    • Evaluar el impacto sobre la interpretabilidad de las variables.
    • Verificar si realmente mejora el rendimiento del modelo.

    Conclusión

    Quantile Transformation es una de las técnicas de transformación más potentes disponibles en Scikit-Learn para tratar distribuciones complejas, altamente asimétricas y con presencia de valores extremos. Su enfoque basado en cuantiles permite transformar los datos hacia distribuciones uniformes o aproximadamente normales, reduciendo significativamente el impacto de los outliers y mejorando la calidad de las variables utilizadas en el modelado.

    Aunque modifica la forma original de la distribución y puede dificultar la interpretación de los resultados, constituye una herramienta muy valiosa cuando las técnicas de escalado tradicionales no son suficientes para preparar adecuadamente los datos para el análisis o el entrenamiento de modelos de Machine Learning.

  • Robust Scaling

    En los proyectos de Data Science y Machine Learning, es habitual encontrar variables numéricas con valores atípicos (outliers) que pueden distorsionar significativamente los procesos de análisis y modelado. Cuando se aplican técnicas de escalado tradicionales como Min-Max Scaling o Standardization (Z-Score), estos valores extremos pueden influir en los parámetros utilizados para la transformación, produciendo resultados poco representativos para la mayoría de las observaciones.

    Para solucionar este problema, Scikit-Learn proporciona una técnica denominada Robust Scaling, diseñada específicamente para escalar variables numéricas utilizando medidas estadísticas robustas que son menos sensibles a los valores extremos.

    Esta técnica es especialmente útil cuando se trabaja con datos reales, donde la presencia de outliers es frecuente y no siempre es conveniente eliminarlos.

    ¿Qué es Robust Scaling?

    Robust Scaling es una técnica de escalado que transforma las variables utilizando:

    • La mediana como medida de tendencia central.
    • El rango intercuartílico (IQR) como medida de dispersión.

    A diferencia de StandardScaler, que utiliza la media y la desviación estándar, RobustScaler emplea estadísticas que apenas se ven afectadas por valores extremos. El objetivo es conseguir que las variables tengan una escala comparable sin que los outliers distorsionen la transformación.

    ¿Cómo Funciona?

    La transformación consiste en restar la mediana a cada observación y dividir posteriormente por el rango intercuartílico.

    La fórmula utilizada es:

    $$x’=\frac{x-Q_2}{Q_3-Q_1}$$

    Donde:

    • Q₁ representa el primer cuartil (25%).
    • Q₂ representa la mediana (50%).
    • Q₃ representa el tercer cuartil (75%).
    • Q₃ – Q₁ corresponde al rango intercuartílico (IQR).

    Como resultado:

    • La mediana queda centrada en 0.
    • La escala se basa en el rango central de los datos.
    • Los valores extremos tienen una influencia mucho menor.

    Conceptos Clave

    Para comprender Robust Scaling es necesario conocer los cuartiles. Supongamos la siguiente distribución ordenada:

    10, 15, 20, 25, 30, 35, 40, 45, 50

    Los cuartiles serían:

    • Q1 = 20
    • Mediana (Q2) = 30
    • Q3 = 40

    Por tanto:

    IQR = Q3 - Q1 = 40 - 20 = 20

    El rango intercuartílico representa la dispersión del 50% central de los datos, ignorando los extremos.

    Beneficios de Robust Scaling

    • Reduce la influencia de valores atípicos.
    • Utiliza estadísticas robustas frente a observaciones extremas.
    • Facilita la comparación entre variables con distintas magnitudes.
    • Mantiene la estructura general de los datos.
    • Mejora el comportamiento de algoritmos sensibles a la escala.
    • Resulta especialmente útil en conjuntos de datos reales con ruido.

    ¿Cuándo Utilizar Robust Scaling?

    • Existen valores atípicos significativos.
    • No se desea eliminar los outliers.
    • Las variables presentan distribuciones con colas largas.
    • Se utilizan algoritmos sensibles a la escala.
    • Los datos provienen de fuentes reales con alta variabilidad.

    También suele ser una excelente alternativa cuando StandardScaler produce resultados poco satisfactorios debido a la presencia de observaciones extremas.

    Ventajas

    • Es mucho menos sensible a outliers que Min-Max Scaling y StandardScaler.
    • Mantiene la información de los datos extremos.
    • No requiere eliminar observaciones atípicas.
    • Es sencillo de implementar.
    • Funciona correctamente con distribuciones no normales.
    • Mejora la estabilidad de muchos algoritmos.

    Desventajas

    • No elimina los valores atípicos.
    • Los outliers continúan presentes en el conjunto de datos.
    • No corrige problemas de asimetría.
    • No transforma la distribución hacia una forma normal.
    • Puede ser menos intuitivo de interpretar que Min-Max Scaling.
    • No siempre ofrece mejoras cuando los datos carecen de valores extremos.

    Limitaciones

    Es importante entender que Robust Scaling no sustituye otras técnicas de preparación de datos.

    Entre sus principales limitaciones se encuentran:

    • No reduce la asimetría de una distribución.
    • No corrige heterocedasticidad.
    • No elimina errores de captura de datos.
    • No aproxima la distribución a una normal.
    • No reemplaza el tratamiento específico de outliers cuando estos son errores evidentes.

    Si el objetivo es corregir distribuciones sesgadas, técnicas como Box-Cox o Yeo-Johnson suelen ser más adecuadas.

    Comparación con Otros Métodos de Escalado

    CaracterísticaMin-MaxStandardScalerRobustScaler
    Utiliza mediaNoNo
    Utiliza medianaNoNo
    Utiliza desviación estándarNoNo
    Utiliza IQRNoNo
    Sensible a outliersAltaAltaBaja
    Escala fijaNoNo
    Adecuado para datos con outliersNoParcialmente

    Aplicaciones en Data Science y Machine Learning

    Robust Scaling se utiliza frecuentemente en:

    • Regresión Lineal.
    • Regresión Logística.
    • Support Vector Machines (SVM).
    • K-Nearest Neighbors (KNN).
    • K-Means.
    • Redes Neuronales.
    • PCA.
    • Modelos de clustering.
    • Sistemas de detección de anomalías.

    Es especialmente útil cuando los datos contienen valores extremos que no deben eliminarse porque representan situaciones reales del negocio.

    Implementación en Python

    Aplicación Básica con Scikit-Learn

    from sklearn.preprocessing import RobustScaler
    import pandas as pd
    
    df = pd.DataFrame({
        "salario": [20000, 25000, 28000, 30000, 32000, 35000, 500000]
    })
    
    scaler = RobustScaler()
    
    df["salario_robust"] = scaler.fit_transform(df[["salario"]])
    
    print(df)
    

    Escalado de varias variables

    from sklearn.preprocessing import RobustScaler
    
    scaler = RobustScaler()
    
    X_scaled = scaler.fit_transform(X)
    

    Personalización del Rango Intercuartílico

    Por defecto se utiliza el rango comprendido entre los percentiles 25 y 75. Sin embargo, puede modificarse:

    from sklearn.preprocessing import RobustScaler
    
    scaler = RobustScaler(
        quantile_range=(10, 90)
    )
    
    X_scaled = scaler.fit_transform(X)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import RobustScaler
    from sklearn.linear_model import LogisticRegression
    
    pipeline = Pipeline([
        ("scaler", RobustScaler()),
        ("model", LogisticRegression())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta es la forma recomendada para evitar problemas de data leakage durante el entrenamiento del modelo.

    Buenas Prácticas

    • Analizar previamente la presencia de outliers.
    • Comparar los resultados con StandardScaler y MinMaxScaler.
    • Ajustar el escalador únicamente con los datos de entrenamiento.
    • Aplicar la misma transformación a los datos de prueba.
    • Integrar el proceso dentro de un Pipeline.
    • Evaluar si los valores extremos representan errores o información relevante.

    Conclusión

    Robust Scaling es una técnica de escalado diseñada para trabajar eficazmente con conjuntos de datos que contienen valores atípicos. Al utilizar la mediana y el rango intercuartílico en lugar de la media y la desviación estándar, consigue reducir significativamente la influencia de los outliers sin necesidad de eliminarlos.

    Gracias a esta característica, se ha convertido en una herramienta fundamental dentro de los procesos modernos de preparación de datos para Machine Learning. Aunque no corrige problemas de asimetría ni transforma la distribución de los datos, proporciona una escala más estable y representativa cuando se trabaja con datos reales que contienen observaciones extremas.

  • Standard Scaling (Z-Score)

    Una de las técnicas más utilizadas para resolver rl problema de variables que poseen escalas muy diferentes, es la estandarización mediante Z-Score, también conocida como Standardization o Standard Scaling. A diferencia de Min-Max Scaling, esta técnica no transforma los datos a un rango fijo, sino que los centra alrededor de la media y los escala utilizando la desviación estándar.

    ¿Qué es Standardization (Z-Score)?

    La estandarización es una técnica de escalado que transforma una variable para que tenga:

    • Media igual a 0.
    • Desviación estándar igual a 1.
    • Una escala comparable con otras variables del conjunto de datos.

    Tras la transformación, los valores dejan de representar las unidades originales y pasan a indicar cuántas desviaciones estándar se encuentran por encima o por debajo de la media.

    Esta técnica es especialmente útil cuando se desea comparar variables con unidades diferentes o cuando se utilizan algoritmos sensibles a la magnitud de las características.

    ¿Cómo Funciona?

    La estandarización calcula la distancia de cada observación respecto a la media de la variable y posteriormente divide dicha distancia por la desviación estándar.

    La fórmula utilizada es:

    $$z=\frac{x-\mu}{\sigma}$$

    Donde:

    • x es el valor original.
    • μ es la media de la variable.
    • σ es la desviación estándar.
    • z es el valor estandarizado.

    El resultado indica la posición relativa de una observación dentro de la distribución.

    Interpretación del Z-Score

    Después de la transformación:

    • Un valor de 0 indica que la observación coincide con la media.
    • Un valor positivo indica que está por encima de la media.
    • Un valor negativo indica que está por debajo de la media.
    • Un valor de 2 significa que la observación se encuentra a dos desviaciones estándar por encima de la media.

    Ejemplo Práctico

    Supongamos una variable que representa edades:

    edad = [20, 30, 40, 50, 60]
    media = 40
    std_desviation = 14.14
    
    edad_zscore = [-1.41, -0.71, 0.00, 0.71, 1.41]

    Ahora todas las observaciones están expresadas en función de su distancia respecto a la media.

    Beneficios de Standardization

    Entre las principales ventajas de esta técnica destacan:

    • Permite comparar variables con unidades completamente diferentes.
    • Centra los datos alrededor de la media.
    • Facilita el entrenamiento de algoritmos basados en gradientes.
    • Reduce los problemas derivados de diferencias de escala.
    • Mejora la estabilidad numérica de muchos modelos.
    • Favorece la convergencia de algoritmos de optimización.
    • Es una de las técnicas de escalado más utilizadas en Machine Learning.

    ¿Cuándo Utilizar Standardization?

    • Las variables presentan escalas muy diferentes.
    • Se utilizan algoritmos sensibles a la magnitud de las características.
    • Los datos tienen una distribución aproximadamente normal.
    • Se desea comparar la importancia relativa de diferentes variables.
    • Se trabaja con métodos basados en distancia o componentes principales.

    Es especialmente útil cuando la distribución de los datos no necesita ser comprimida, sino simplemente escalada.

    Ventajas

    • Conserva la forma de la distribución original.
    • Facilita la comparación entre variables.
    • Es adecuada para variables con distribuciones aproximadamente normales.
    • Mejora el rendimiento de numerosos algoritmos de Machine Learning.
    • No restringe los datos a un rango fijo.

    Desventajas

    • Es sensible a valores atípicos.
    • Los outliers pueden afectar la media y la desviación estándar.
    • No corrige distribuciones altamente sesgadas.
    • No reduce el impacto de observaciones extremas.
    • No garantiza una distribución normal.
    • Los valores transformados pueden ser difíciles de interpretar para usuarios de negocio.

    Limitaciones

    • No elimina outliers.
    • No corrige problemas de asimetría.
    • No modifica la forma de la distribución.
    • Puede verse afectada por valores extremos.
    • No siempre es la mejor opción para datos con distribuciones muy sesgadas.

    En escenarios con muchos outliers suele ser preferible utilizar técnicas como RobustScaler.

    Aplicaciones en Data Science y Machine Learning

    La estandarización es especialmente útil en:

    • Regresión Lineal.
    • Regresión Logística.
    • Support Vector Machines (SVM).
    • Redes Neuronales.
    • PCA (Principal Component Analysis).
    • K-Means.
    • K-Nearest Neighbors (KNN).
    • Análisis de Clustering.
    • Métodos basados en gradientes.

    En estos algoritmos, la escala de las variables influye directamente sobre el rendimiento y la estabilidad del entrenamiento.

    Comparación con Min-Max Scaling

    CaracterísticaStandardizationMin-Max Scaling
    Media centrada en 0No
    Desviación estándar igual a 1No
    Rango fijoNo
    Sensible a outliers
    Conserva distribución
    Fácil interpretación relativaAltaMedia
    Adecuado para PCA
    Adecuado para redes neuronales

    Implementación en Python

    Aplicación Básica con Scikit-Learn

    from sklearn.preprocessing import StandardScaler
    import pandas as pd
    
    df = pd.DataFrame({
        "edad": [20, 30, 40, 50, 60]
    })
    
    scaler = StandardScaler()
    
    df["edad_estandarizada"] = scaler.fit_transform(df[["edad"]])
    
    print(df)
    

    Escalado de varias variables

    from sklearn.preprocessing import StandardScaler
    
    scaler = StandardScaler()
    
    X_scaled = scaler.fit_transform(X)
    

    Obtener la Media y la Desviación Estándar

    from sklearn.preprocessing import StandardScaler
    
    scaler = StandardScaler()
    
    scaler.fit(X)
    
    print(scaler.mean_)
    print(scaler.scale_)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import StandardScaler
    from sklearn.linear_model import LogisticRegression
    
    pipeline = Pipeline([
        ("scaler", StandardScaler()),
        ("model", LogisticRegression())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta es la práctica recomendada para evitar fugas de información (data leakage) entre los conjuntos de entrenamiento y prueba.

    Buenas Prácticas

    • Ajustar el escalador únicamente con los datos de entrenamiento.
    • Aplicar la misma transformación a los datos de validación y prueba.
    • Analizar previamente la presencia de outliers.
    • Comparar su rendimiento frente a Min-Max Scaling y RobustScaler.
    • Integrar la transformación dentro de un Pipeline.
    • Evaluar el impacto del escalado sobre el rendimiento del modelo.

    Conclusión

    La estandarización mediante Z-Score es una de las técnicas de escalado más importantes y utilizadas en Machine Learning. Su objetivo es centrar las variables alrededor de una media de cero y una desviación estándar de uno, permitiendo que todas las características contribuyan de forma equilibrada al entrenamiento de los modelos.

    Gracias a su simplicidad, interpretabilidad y compatibilidad con numerosos algoritmos, Standardization se ha convertido en una herramienta fundamental dentro de cualquier proceso moderno de preparación de datos. Aunque no corrige problemas de asimetría ni elimina valores atípicos, constituye una excelente opción cuando se necesita trabajar con variables en escalas comparables y mejorar la estabilidad de los algoritmos de aprendizaje automático.

  • Min-Max Scaling

    En los proyectos de Data Science y Machine Learning es común trabajar con variables que poseen escalas muy diferentes. Por ejemplo, una variable puede representar la edad de una persona con valores entre 18 y 90 años, mientras que otra puede representar ingresos anuales con valores que superan los cientos de miles de euros.

    Estas diferencias de magnitud pueden generar problemas en numerosos algoritmos de aprendizaje automático, especialmente aquellos basados en distancias o gradientes. Para solucionar este problema se utilizan técnicas de escalado de datos, siendo una de las más populares el Min-Max Scaling.

    Esta técnica transforma los valores de una variable para que se encuentren dentro de un rango específico, normalmente entre 0 y 1, preservando las relaciones relativas entre las observaciones.

    ¿Qué es Min-Max Scaling?

    Min-Max Scaling, también conocido como Normalización Min-Max, es una técnica de escalado que transforma una variable numérica a un rango predeterminado. El rango más utilizado es (0, 1). Después de aplicar la transformación:

    • El valor mínimo se convierte en 0.
    • El valor máximo se convierte en 1.
    • El resto de los valores se distribuye proporcionalmente entre ambos extremos.

    Su objetivo principal es garantizar que todas las variables trabajen en la misma escala.

    ¿Cómo Funciona?

    La técnica utiliza el valor mínimo y máximo de la variable para realizar una transformación lineal. La fórmula es:

    $$x’ = \frac{x-x_{min}}{x_{max}-x_{min}}$$

    Donde:

    • x = valor original.
    • xmin = valor mínimo de la variable.
    • xmax = valor máximo de la variable.
    • x’ = valor transformado.

    El resultado siempre estará entre 0 y 1.

    Ejemplo Práctico

    Supongamos una variable de edades:

    edad = [20, 30, 40, 50, 60]
    
    edad_scaled = [0.00, 0.25, 0.50, 0.75, 1.00]

    Observamos que todos los valores quedan dentro del rango [0,1].

    Escalado a Otros Rangos

    Aunque normalmente se utiliza el rango [0,1], Min-Max permite escalar a cualquier intervalo. La fórmula general es:

    $$x’ = a + \frac{(x-x_{min})(b-a)}{x_{max}-x_{min}}$$

    Donde:

    • a = límite inferior.
    • b = límite superior.

    Por ejemplo:

    [-1,1]
    [0,100]
    [-5,5]

    ¿Por qué es necesario escalar los datos?

    Muchos algoritmos son sensibles a las magnitudes de las variables. Supongamos dos variables:

    VariableRango
    Edad18 – 80
    Ingresos10.000 – 500.000

    Sin escalado, la variable ingresos dominaría completamente los cálculos de distancia o los procesos de optimización. Min-Max elimina este problema al llevar ambas variables a la misma escala.

    Beneficios de Min-Max Scaling

    • Iguala la escala de las variables: todas las características trabajan dentro del mismo rango.
    • Conserva las Relaciones Relativas: la distancia proporcional entre observaciones se mantiene.
    • Fácil Interpretación: los valores transformados siempre pertenecen al rango especificado.
    • Mejora la estabilidad numérica: muchos algoritmos convergen más rápido cuando las variables están escaladas.
    • Compatible con redes neuronales: las funciones de activación suelen comportarse mejor cuando las entradas están normalizadas.

    ¿Cuándo Utilizar Min-Max Scaling?

    • Es recomendable cuando se utilizan algoritmos basados en distancia, por ejemplo:
      • K-Nearest Neighbors (KNN)
      • K-Means
      • DBSCAN
    • Se entrenan redes neuronales: la normalización favorece la convergencia durante el entrenamiento.
    • Se utiliza PCA: las variables deben encontrarse en escalas comparables.
    • Existen diferencias importantes de magnitud entre las distintas características del dataset.

    Ventajas

    • Implementación sencilla: Requiere únicamente conocer el mínimo y máximo.
    • Conserva la distribución original: No altera la forma de la distribución.
    • Mantiene la proporcionalidad: Las relaciones entre observaciones permanecen intactas.
    • Mejora muchos algoritmos: Especialmente los sensibles a la escala.
    • Computacionalmente eficiente: Su coste de cálculo es muy bajo.

    Desventajas

    • Muy sensible a los outliers: Es su principal inconveniente. Si existe un valor extremo:(35, 5000). El máximo será 5000 y la mayoría de observaciones quedarán comprimidas cerca de cero.
    • No reduce la asimetría: A diferencia de Box-Cox o Yeo-Johnson.
    • No corrige la distribución: Simplemente cambia la escala.
    • Dependencia de los datos de entrenamiento: Si aparecen nuevos valores fuera del rango original pueden generarse valores superiores a 1 o inferiores a 0.

    Limitaciones

    • No es robusto frente a outliers: Cuando existen valores extremos suele ser preferible: RobustScaler o Quantile Transformer
    • No aproxima a una distribución normal: La forma de la distribución permanece igual.
    • Puede requerir actualización: Cuando llegan nuevos datos con mínimos o máximos diferentes.

    Aplicaciones en Data Science y Machine Learning

    • K-Nearest Neighbors (KNN): Las distancias son el núcleo del algoritmo. Sin escalado, las variables con mayor rango dominan el cálculo.
    • K-Means: Los centroides se calculan utilizando distancias euclidianas.
    • Redes Neuronales: Ayuda a estabilizar gradientes, acelerar convergencia y mejorar entrenamiento.
    • Support Vector Machines (SVM): La escala afecta directamente al hiperplano de separación.
    • PCA (Principal Component Analysis): Los componentes principales son sensibles a la magnitud de las variables.
    • Deep Learning: Es una práctica habitual antes del entrenamiento de modelos profundos.

    Comparación con Otras Técnicas de Escalado

    CaracterísticaMin-MaxStandardScalerRobustScaler
    Rango fijoNoNo
    Sensible a outliersNo
    Conserva distribuciónParcialmenteParcialmente
    Utiliza mediaNoNo
    Utiliza medianaNoNo
    Fácil interpretaciónAltaMediaMedia

    Implementación en Python

    Aplicación Básica con Scikit-Learn

    from sklearn.preprocessing import MinMaxScaler
    import pandas as pd
    
    df = pd.DataFrame({
        "edad": [20, 30, 40, 50, 60]
    })
    
    scaler = MinMaxScaler()
    
    df["edad_escalada"] = scaler.fit_transform(df[["edad"]])
    
    print(df)

    Escalado de varias variables

    from sklearn.preprocessing import MinMaxScaler
    
    scaler = MinMaxScaler()
    
    X_scaled = scaler.fit_transform(X)

    Escalado a un Rango Personalizado

    from sklearn.preprocessing import MinMaxScaler
    
    scaler = MinMaxScaler(feature_range=(-1, 1))
    
    X_scaled = scaler.fit_transform(X)

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.neighbors import KNeighborsClassifier
    
    pipeline = Pipeline([
        ("scaler", MinMaxScaler()),
        ("model", KNeighborsClassifier())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta es la forma recomendada para evitar problemas de data leakage durante el entrenamiento.

    Buenas Prácticas

    1. Ajustar el escalador únicamente con los datos de entrenamiento.
    2. Aplicar la misma transformación a los datos de prueba.
    3. Analizar previamente la presencia de outliers.
    4. Integrar el escalado dentro de un Pipeline.
    5. Comparar su rendimiento con StandardScaler y RobustScaler.

    Conclusión

    Min-Max Scaling es una de las técnicas de escalado más utilizadas en Machine Learning debido a su simplicidad y eficacia. Su objetivo es transformar las variables numéricas a un rango específico, normalmente entre 0 y 1, permitiendo que todas las características contribuyan de manera equilibrada al entrenamiento del modelo.

    Aunque presenta limitaciones importantes frente a valores atípicos, sigue siendo una excelente opción para algoritmos basados en distancia, redes neuronales y métodos de reducción de dimensionalidad. Utilizado correctamente, Min-Max Scaling constituye un paso fundamental dentro de cualquier pipeline moderno de preparación de datos.

  • Transformación Recíproca

    Una de estas técnicas es la Transformación Recíproca (Reciprocal Transformation), una transformación matemática perteneciente al grupo de las transformaciones de potencia. Aunque actualmente suele utilizarse menos que alternativas como Box-Cox o Yeo-Johnson, sigue siendo una herramienta útil en determinados escenarios donde se necesita una compresión muy agresiva de los valores grandes.

    ¿Qué es la transformación recíproca?

    La Transformación Recíproca consiste en reemplazar cada valor de una variable por su inverso matemático.

    La fórmula básica es:

    $$y=\frac{1}{x}$$

    Donde:

    • x es el valor original.
    • y es el valor transformado.

    Esta transformación invierte la escala de la variable:

    • Los valores grandes se convierten en números pequeños.
    • Los valores pequeños se convierten en números grandes.

    Como consecuencia, se reduce drásticamente la influencia de los valores extremos elevados.

    ¿Cómo Funciona?

    La transformación modifica la relación entre los datos mediante una función hiperbólica.

    var = [1, 2, 5, 10, 100, 1000]
    
    var_inverse = [1, 0.5, 0.2, 0.1, 0.01, 0.001

    Puede observarse que:

    • Los valores grandes son comprimidos fuertemente.
    • Las diferencias entre valores extremos disminuyen considerablemente.
    • La distribución suele volverse menos asimétrica.

    Fundamento Matemático

    La transformación recíproca es un caso particular de las transformaciones de potencia. La fórmula general de las transformaciones de potencia es:

    $$y=x^{\lambda}$$

    Cuando:

    $$\lambda=-1$$

    obtenemos:

    $$y=x^{-1}=\frac{1}{x}$$

    Por ello, la transformación recíproca puede considerarse una transformación de potencia con exponente negativo.

    Beneficios de la Transformación Recíproca

    • Reduce la asimetría positiva: es especialmente eficaz cuando existen colas largas hacia la derecha.
    • Comprime fuertemente los valores grandes: los valores extremos pierden gran parte de su influencia sobre el análisis.
    • Puede mejorar la linealidad: en algunos modelos de regresión ayuda a transformar relaciones no lineales en relaciones más cercanas a la linealidad.
    • Fácil Implementación: su cálculo requiere únicamente una operación matemática simple.
    • Útil en Variables de Tasas y Velocidades: la interpretación física suele mantenerse en determinados dominios (velocidad, frecuencia, tiempo por unidad, etc.).

    ¿Cuándo utilizar la transformación recíproca?

    • Es recomendable cuando existe una fuerte asimetría positiva. Por ejemplo:
      • Tiempos de espera.
      • Duración de procesos.
      • Costes elevados.
      • Consumo energético.
    • Hay valores extremos muy grandes: La transformación recíproca comprime estos valores de manera más agresiva que:
      • Logaritmo.
      • Raíz cuadrada.
      • Raíz cúbica.
    • Se busca mejorar relaciones no lineales: especialmente en análisis de regresión.
    • La variable representa una magnitud inversa: Por ejemplo:
      • Tiempo por operación.
      • Coste por unidad.
      • Latencia.

    Ventajas

    • Compresión muy potente de outliers: Es una de las transformaciones clásicas más agresivas frente a valores elevados.
    • Fácil de comprender: su fundamento matemático es simple.
    • Sin necesidad de optimización: no requiere estimar parámetros como Box-Cox o Yeo-Johnson.
    • Puede mejorar ciertos modelos estadísticos: especialmente en análisis de regresión tradicional.

    Desventajas

    • No admite valores iguales a cero: la operación \(\frac{1}{0}\) no está definida matemáticamente.
    • Sensible a valores cercanos a cero, un valor como 0.01 genera un valor de 100, generando nuevos valores extremos.
    • Interpretación menos intuitiva: la escala transformada suele ser más difícil de explicar a usuarios de negocio.
    • Puede invertir la relación de los datos: los valores grandes pasan a ser pequeños y viceversa.

    Limitaciones

    • No funciona con ceros: es la limitación más importante, si existen ceros, suele utilizarse: \( y=\frac{1}{x+c} \) donde c es una constante positiva.
    • No garantiza normalidad: reducir la asimetría no implica obtener una distribución normal.
    • Puede generar nuevos outliers: cuando existen observaciones muy próximas a cero.
    • No siempre mejora el rendimiento del modelo: algunos algoritmos modernos apenas se benefician de este tipo de transformaciones. Por ejemplo:
      • Random Forest
      • XGBoost
      • LightGBM
      • CatBoost

    Aplicaciones en Data Science y Machine Learning

    • Regresión lineal: puede ayudar a reducir la heterocedasticidad y a mejorar la linealidad. y aproximar la normalidad de residuos.
    • Análisis Exploratorio de Datos (EDA): permite examinar distribuciones altamente sesgadas desde otra perspectiva.
    • Ingeniería de características: puede utilizarse para crear variables derivadas con mayor capacidad predictiva.
    • Modelos Estadísticos Clásicos: Es una transformación habitual en:
      • Econometría.
      • Bioestadística.
      • Investigación experimental.
    • Series Temporales: en algunos contextos se emplean para estabilizar la varianza de ciertas variables.

    Comparación con Otras Transformaciones

    CaracterísticaLogRaíz CuadradaRaíz CúbicaRecíproca
    Reduce asimetríaAltaModeradaModeradaMuy Alta
    Admite negativosNoNoSí*
    Admite ceroNoNo
    Sensible a valores pequeñosBajaBajaBajaMuy Alta
    Compresión de outliersAltaModeradaModeradaMuy Alta

    * Siempre que no sean exactamente cero.

    Implementación en Python

    Aplicación Básica con NumPy

    import numpy as np
    
    datos = np.array([1, 2, 5, 10, 100])
    
    transformados = 1 / datos
    
    print(transformados)
    
    [1.    0.5   0.2   0.1   0.01]

    Aplicación sobre un DataFrame

    import pandas as pd
    
    df = pd.DataFrame({"ventas": [10, 20, 50, 100, 500]})
    
    df["ventas_reciproca"] = 1 / df["ventas"]
    
    print(df)

    Manejo de Valores Cero

    Cuando existen ceros se añade una constante:

    import numpy as np
    
    datos = np.array([0, 1, 2, 5, 10])
    
    transformados = 1 / (datos + 1)
    
    print(transformados)
    

    Integración con Scikit-Learn

    Mediante FunctionTransformer:

    from sklearn.preprocessing import FunctionTransformer
    import numpy as np
    
    reciprocal = FunctionTransformer(
        lambda x: 1 / (x + 1)
    )
    
    X_transformado = reciprocal.fit_transform(X)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import FunctionTransformer
    from sklearn.linear_model import LinearRegression
    
    pipeline = Pipeline([
        (
            "reciprocal",
            FunctionTransformer(lambda x: 1 / (x + 1))
        ),
        (
            "modelo",
            LinearRegression()
        )
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta estrategia garantiza que la transformación se aplique correctamente durante el entrenamiento y la inferencia, evitando problemas de data leakage.

    Buenas Prácticas

    1. Verificar que no existan valores iguales a cero.
    2. Analizar la distribución antes y después de la transformación.
    3. Comprobar si realmente mejora el rendimiento del modelo.
    4. Utilizarla principalmente cuando existan valores extremadamente grandes.
    5. Integrarla dentro de un Pipeline de Machine Learning.

    Conclusión

    La Transformación Recíproca es una técnica clásica de transformación de potencia que reemplaza cada observación por su inverso matemático. Su principal fortaleza es la capacidad para comprimir de forma muy agresiva los valores elevados, reduciendo la asimetría positiva y el impacto de los outliers.

    Aunque presenta limitaciones importantes, especialmente en presencia de ceros o valores cercanos a cero, sigue siendo una herramienta útil en análisis estadístico, regresión y determinadas tareas de preparación de datos. Su simplicidad matemática y facilidad de implementación la convierten en una alternativa interesante cuando otras transformaciones más suaves no logran corregir adecuadamente la distribución de una variable.

  • Introducción a la Transformación de datos

    En Data Science, Estadística y Machine Learning, las transformaciones de variables suelen agruparse según el objetivo que persiguen. Aunque existen varias clasificaciones, la más utilizada las divide en los siguientes grupos:

    1. Transformaciones de Potencia (Power Transformations)

    Su objetivo principal es reducir la asimetría, estabilizar la varianza y aproximar la distribución a una normal para corregir datos sesgados. Las transformaciones son:

    Cuándo usarlas

    • Distribuciones sesgadas.
    • Variables con colas largas.
    • Problemas de heterocedasticidad.
    • Regresión lineal.

    2. Transformaciones de Escalado (Feature Scaling)

    Su objetivo es llevar las variables a una escala comparable. Utilizando la mediana y el rango intercuartílico (IQR)

    Cuándo usarlas

    • K-Means
    • KNN
    • PCA
    • Redes Neuronales
    • SVM

    3. Transformaciones de Normalización

    Buscan modificar la forma de la distribución para acercarla a una distribución normal.

    Cuándo usarlas

    • Regresión lineal
    • Modelos estadísticos clásicos
    • Análisis de hipótesis
    • PCA

    4. Transformaciones Basadas en Rangos (Rank Transformations)

    Reemplazan los valores originales por su posición ordenada.

    Beneficios

    • Muy robustas ante outliers.
    • Reducen el efecto de distribuciones extremas.

    5. Transformaciones Trigonométricas o Cíclicas

    Se utilizan para variables periódicas. Como hora, día de la semana, mes del año, etc.

    Aplicaciones

    • Series temporales.
    • Forecasting.
    • Redes neuronales.

    6. Transformaciones de Discretización (Binning)

    Convierten variables continuas en categorías.

    • Equal Width
    • Equal Frequency: cada grupo contiene aproximadamente el mismo número de observaciones.

    Ejemplo

    EdadCategoría
    22Joven
    45Adulto
    70Senior

    Aplicaciones

    • Scorecards.
    • Modelos de riesgo.
    • Interpretabilidad.

    7. Transformaciones para Variables Categóricas

    Transforman texto o categorías en valores numéricos.

    • One-Hot Encoding
    • Label Encoding
    • Target Encoding

    Utiliza la variable objetivo para generar la codificación.

    8. Transformaciones de Reducción de Dimensionalidad

    Transforman múltiples variables en un número menor de componentes.

    • Principal Component Analysis (PCA)
    • Linear Discriminant Analysis
    • Independent Component Analysis
    • t-SNE
    • UMAP

    Objetivos

    • Reducir ruido.
    • Mejorar velocidad.
    • Visualización.

    9. Transformaciones de Ingeniería de Características

    Crean nuevas variables a partir de las existentes.

    • Polinomiales
    • Interacciones
    • Ratios
    • Ventas / Clientes
    • Coste / Ingreso

    Aplicaciones

    • Regresión.
    • Machine Learning.
    • Deep Learning.

    Clasificación práctica más utilizada en Machine Learning

    Cuando estudias preprocesamiento de datos, normalmente las transformaciones se agrupan en cuatro grandes familias:

    Transformaciones de Distribución

    Modifican la forma de la distribución.

    • Log
    • Raíz cuadrada
    • Raíz cúbica
    • Recíproca
    • Box-Cox
    • Yeo-Johnson

    Escalado

    Modifican la magnitud de los valores.

    • Min-Max
    • StandardScaler
    • RobustScaler
    • MaxAbsScaler

    Codificación

    Transforman variables categóricas.

    • One-Hot Encoding
    • Label Encoding
    • Target Encoding

    Ingeniería de Características

    Crean nuevas variables.

    • Polinomiales
    • Interacciones
    • Variables temporales
    • Variables agregadas

    Esta última clasificación es la más utilizada en bibliotecas como Scikit-learn y en los pipelines modernos de Machine Learning.

  • Transformación de Raíz Cúbica

    Entre las técnicas de transformación más utilizadas para corregir este problema se encuentran las transformaciones de potencia, como la transformación logarítmica, la raíz cuadrada y la raíz cúbica. Aunque suele recibir menos atención que otras alternativas, la Transformación de Raíz Cúbica es una herramienta muy útil cuando los datos contienen valores positivos, negativos o cero, y se desea reducir la asimetría sin aplicar una transformación demasiado agresiva.

    ¿Qué es la transformación de raíz cúbica?

    La Transformación de Raíz Cúbica (Cube Root Transformation) consiste en sustituir cada valor de una variable por su raíz cúbica.

    Matemáticamente:

    $$y=\sqrt[3]{x}=x^{\frac{1}{3}}$$

    Donde:

    • x representa el valor original.
    • y representa el valor transformado.

    Esta transformación pertenece al grupo de las transformaciones de potencia y tiene como objetivo principal:

    • Reducir la asimetría.
    • Comprimir valores extremos.
    • Estabilizar la varianza.
    • Facilitar el modelado estadístico.

    Una de sus principales características es que puede aplicarse directamente a números positivos, negativos y al valor cero.

    ¿Cómo Funciona?

    La raíz cúbica reduce la distancia relativa entre los valores grandes y pequeños de una variable.

    ventas: [1, 8, 27, 125, 1000]
    
    ventas_sqr3 = [1, 2, 3, 5, 10]

    Obsérvese que mientras los valores originales crecen rápidamente, los valores transformados crecen mucho más lentamente. Este efecto produce una compresión de las colas de la distribución y ayuda a disminuir la asimetría positiva.

    La transformación de raíz cúbica admite: valores positivos, negativos y valor cero.

    Beneficios

    • Reduce la asimetría: cuando una distribución presenta una cola larga hacia la derecha, la raíz cúbica ayuda a equilibrarla.
    • Comprime Valores Extremos: Los valores muy grandes dejan de dominar la distribución. Esto reduce la influencia excesiva de ciertos registros sobre el modelo.
    • Admite valores negativos: una ventaja importante frente a las transformaciones logarítmicas y de raíz cuadrada.
    • Fácil Interpretación: Su comportamiento matemático es sencillo y fácilmente comprensible.
    • Implementación simple: No requiere estimar parámetros adicionales ni realizar optimización matemática.

    ¿Cuándo utilizar la transformación de raíz cúbica?

    • Es recomendable cuando existen valores negativos, por ejemplo: beneficios y pérdidas, variaciones de precios, cambios porcentuales o indicadores financieros.
    • Hay asimetría moderada o alta: Variables como ingresos, consumo energético y producción industrial
    • Se desea una transformación menos agresiva: La transformación logarítmica puede modificar drásticamente la escala de los datos. La raíz cúbica suele ofrecer una corrección más suave.
    • Existen valores extremos: La compresión de las colas ayuda a reducir su influencia.

    Ventajas

    • Funciona con cualquier número real: no necesita ajustes previos para tratar valores negativos o ceros.
    • No requiere estimar parámetros: a diferencia de Box-Cox o Yeo-Johnson.
    • Fácil de aplicar: Puede implementarse con una única operación matemática.
    • Reduce la influencia de outliers: aunque no los elimina, disminuye significativamente su impacto.
    • Mantiene el orden de los datos: Las observaciones conservan su posición relativa. Si un valor era mayor que otro antes de la transformación, seguirá siéndolo después.

    Desventajas

    • Menor capacidad de normalización: no suele acercar la distribución a la normalidad tanto como Box-Cox o Yeo-Johnson.
    • Puede ser insuficiente: en distribuciones extremadamente sesgadas puede no generar una mejora significativa.
    • No elimina outliers: los valores extremos continúan existiendo. Simplemente se reduce su influencia.
    • Pérdida de interpretabilidad directa: los valores transformados dejan de representar las unidades originales.

    Limitaciones

    Aunque es una técnica útil, presenta ciertas limitaciones.

    • No garantiza normalidad: reducir la asimetría no implica obtener una distribución normal.
    • No corrige relaciones no lineales: la transformación actúa sobre una variable individual. No modifica las relaciones entre variables.
    • No sustituye al tratamiento de outliers: si existen errores de captura o valores anómalos extremos, será necesario tratarlos mediante técnicas específicas.
    • No siempre mejora el rendimiento: algunos algoritmos modernos son poco sensibles a la distribución de las variables.
      • Random Forest.
      • XGBoost.
      • LightGBM.
      • CatBoost.

    Aplicaciones en Data Science y Machine Learning

    • Regresión Lineal
    • EDA
    • Clustering
    • Detección de anomalías
    • Ingeniería de Características (Feature Engineering)

    Implementación en Python

    Utilizando NumPy

    import numpy as np
    
    datos = np.array([
        -1000,
        -125,
        -8,
        0,
        8,
        125,
        1000
    ])
    
    datos_transformados = np.cbrt(datos)
    
    print(datos_transformados)
    

    Resultado:

    [-10.  -5.  -2.   0.   2.   5.  10.]

    Aplicación sobre un DataFrame

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({
        "ventas": [10, 50, 125, 1000, 5000]
    })
    
    df["ventas_cuberoot"] = np.cbrt(df["ventas"])
    
    print(df)
    

    Integración con Scikit-Learn

    Puede utilizarse mediante FunctionTransformer.

    from sklearn.preprocessing import FunctionTransformer
    import numpy as np
    
    cube_root = FunctionTransformer(np.cbrt)
    
    X_transformado = cube_root.fit_transform(X)
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import FunctionTransformer
    from sklearn.linear_model import LinearRegression
    import numpy as np
    
    pipeline = Pipeline([
        ("cube_root", FunctionTransformer(np.cbrt)),
        ("modelo", LinearRegression())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Esta es la forma recomendada para evitar fugas de información (data leakage) durante el entrenamiento.

    Comparación con Otras Transformaciones

    CaracterísticaLogarítmicaRaíz CuadradaRaíz CúbicaYeo-Johnson
    Admite negativosNoNo
    Admite ceroNo
    Reduce asimetríaAltaModeradaModeradaAlta
    Requiere parámetrosNoNoNo
    Fácil implementaciónAltaAltaAltaMedia
    Normalización avanzadaBajaBajaBajaAlta

    Buenas Prácticas

    1. Analizar la distribución antes y después de la transformación.
    2. Medir el nivel de asimetría para comprobar la mejora obtenida.
    3. Aplicar la transformación únicamente sobre variables numéricas.
    4. Integrarla dentro de un Pipeline cuando forme parte de un modelo de Machine Learning.
    5. Comparar los resultados con otras transformaciones como logaritmo, Box-Cox o Yeo-Johnson.

    Conclusión

    La Transformación de Raíz Cúbica es una técnica simple, eficiente y extremadamente flexible para reducir la asimetría de variables numéricas. Su principal ventaja frente a otras transformaciones clásicas es que puede aplicarse directamente a valores positivos, negativos y ceros, sin necesidad de modificaciones previas en los datos.

    Aunque su capacidad para aproximar una distribución normal suele ser menor que la de métodos más avanzados como Box-Cox o Yeo-Johnson, su facilidad de implementación y su capacidad para comprimir valores extremos la convierten en una herramienta muy valiosa dentro de los procesos de limpieza, transformación y preparación de datos para proyectos de Data Science y Machine Learning.

  • Transformación Yeo-Johnson

    Muchos algoritmos funcionan mejor cuando las variables presentan una distribución aproximadamente normal. Para lograrlo, existen diversas técnicas de transformación matemática, entre ellas la Transformación Yeo-Johnson, una de las más versátiles debido a que puede aplicarse tanto a valores positivos como negativos.

    Esta técnica fue propuesta por In-Kwon Yeo y Richard A. Johnson en el año 2000 como una extensión de la Transformación Box-Cox, eliminando una de sus principales limitaciones: la necesidad de trabajar exclusivamente con valores positivos.

    ¿Qué es la Transformación Yeo-Johnson?

    La Transformación Yeo-Johnson es un método de transformación de potencia (Power Transformation) diseñado para reducir la asimetría de una variable y acercar su distribución a una forma normal. Su principal objetivo es:

    • Reducir la asimetría.
    • Disminuir el impacto de valores extremos.
    • Estabilizar la varianza.
    • Mejorar el comportamiento estadístico de los datos.
    • Facilitar el aprendizaje de modelos sensibles a la distribución de las variables.

    A diferencia de Box-Cox, Yeo-Johnson puede trabajar con:

    • Valores positivos.
    • Valores negativos.
    • Valores iguales a cero.

    Por ello se ha convertido en una de las transformaciones más utilizadas en los procesos modernos de preprocesamiento de datos.

    Fundamento Matemático

    La transformación utiliza un parámetro λ (lambda), que controla el grado de transformación aplicado a los datos.

    Para valores positivos (x ≥ 0)

    $$y=\frac{(x+1)^{\lambda}-1}{\lambda},\quad \lambda\neq0$$

    Cuando λ = 0:

    $$y=\ln(x+1)$$

    Para valores negativos (x < 0)

    $$y=-\frac{(-x+1)^{2-\lambda}-1}{2-\lambda},\quad \lambda\neq2$$

    Cuando λ = 2:

    $$y=-\ln(-x+1)$$

    Interpretación del parámetro λ

    El parámetro λ determina la intensidad de la transformación.

    Valor de λEfecto
    λ = 1Sin transformación
    λ < 1Reduce asimetría positiva
    λ = 0Similar a transformación logarítmica
    λ > 1Expande ciertas regiones de los datos
    λ < 0Compresión más agresiva

    El valor óptimo suele calcularse automáticamente mediante máxima verosimilitud (Maximum Likelihood Estimation).

    ¿Cómo Funciona?

    El procedimiento general es:

    • Paso 1: Analizar la distribución: Se identifica si la variable presenta: asimetría positiva, negativa o varianza inestable.
    • Paso 2: Estimar λ: El algoritmo busca el valor de λ que mejor aproxima la distribución a una distribución normal.
    • Paso 3: Aplicar la transformación: Cada observación se transforma utilizando la fórmula correspondiente según sea positiva o negativa.
    • Paso 4: Evaluar el resultado: Se comprueban: histograma, skewness, curtosis y test de normalidad.

    Beneficios de la Transformación Yeo-Johnson

    • 1. Admite valores negativos: Es su principal ventaja frente a Box-Cox. No requiere desplazar los datos para volverlos positivos.
    • 2. Reduce la asimetría: Permite acercar la distribución a una forma más normal. Esto facilita el aprendizaje de numerosos algoritmos estadísticos.
    • 3. Estabiliza la varianza: Variables con dispersión heterogénea suelen comportarse mejor tras la transformación.
    • 4. Reduce el efecto de valores extremos: Aunque no elimina outliers, disminuye su influencia sobre el modelo.
    • 5. Automatiza la búsqueda del mejor λ: No es necesario seleccionar manualmente el parámetro. Las librerías modernas calculan automáticamente el valor óptimo.

    ¿Cuándo Utilizar Yeo-Johnson?

    • Es recomendable cuando existen valores negativos. Algunos tipos de datos pueden tener valores positivos como el beneficio neto, rendimientos financieros, variaciones porcentuales y temperaturas.
    • Hay una fuerte asimetría, como sucede en ingresos, ventas, gastos y clientes.
    • Se utilizarán algoritmos sensibles a la escala y distribución como:
      • Regresión Lineal.
      • Regresión Logística.
      • Redes Neuronales.
      • Análisis Discriminante.
      • PCA.
    • Se busca aproximar una distribución normal: especialmente en modelos estadísticos clásicos.

    Ventajas

    • Mayor flexibilidad que Box-Cox: puede trabajar con cualquier valor real.
    • Menor necesidad de ingeniería manual: no requiere sumar constantes para eliminar negativos.
    • Compatible con pipelines de Machine Learning: puede integrarse fácilmente dentro de procesos automatizados.
    • Fácil implementación: Scikit-Learn la incluye de forma nativa.

    Desventajas

    • Menor interpretabilidad:
      • Después de la transformación:
      • Los valores dejan de tener significado directo.
      • Las unidades originales se pierden temporalmente.
    • No garantiza normalidad perfecta: la distribución puede mejorar considerablemente sin llegar a ser completamente normal.
    • Puede no aportar beneficios: Algunos algoritmos modernos son robustos frente a distribuciones asimétricas. Por ejemplo:
      • Random Forest.
      • XGBoost.
      • LightGBM.
      • CatBoost.

    Limitaciones

    Aunque es una técnica muy potente, tiene ciertas limitaciones.

    • No elimina outliers: solo reduce parcialmente su impacto. Si existen valores extremos muy severos, puede ser necesario:
      • Winsorización.
      • Recorte de datos.
      • Métodos robustos.
    • No corrige relaciones no lineales: la transformación actúa sobre una variable individual. No modifica las relaciones entre variables.
    • Puede afectar la interpretabilidad del modelo : especialmente en entornos de negocio donde se requiere explicar los resultados en unidades originales.

    Aplicaciones en Data Science y Machine Learning

    • Modelos de Regresión: Mejora:
      • Normalidad de residuos.
      • Homocedasticidad.
      • Estabilidad de coeficientes.
    • En EDA: Permite visualizar patrones que antes quedaban ocultos por distribuciones extremadamente sesgadas.
    • Reducción de Dimensionalidad: Métodos como PCA suelen beneficiarse de variables más próximas a la normalidad.
    • Clustering: Algoritmos basados en distancia pueden producir grupos más consistentes.
    • Detección de Anomalías: La reducción de la asimetría puede facilitar la identificación de observaciones atípicas.

    Implementación en Python

    from sklearn.preprocessing import PowerTransformer
    import pandas as pd
    
    df = pd.DataFrame({
        "ventas": [-100, 0, 50, 200, 1000, 5000]
    })
    
    pt = PowerTransformer(method="yeo-johnson")
    
    df["ventas_transformadas"] = pt.fit_transform(df[["ventas"]])
    
    print(df)
    

    Obtener el valor λ calculado

    from sklearn.preprocessing import PowerTransformer
    
    pt = PowerTransformer(method="yeo-johnson")
    
    pt.fit(df[["ventas"]])
    
    print(pt.lambdas_)
    
    [0.34]

    Este valor representa el λ óptimo encontrado para la variable.

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import PowerTransformer
    from sklearn.linear_model import LinearRegression
    
    pipeline = Pipeline([
        ("yeo_johnson", PowerTransformer(method="yeo-johnson")),
        ("modelo", LinearRegression())
    ])
    
    pipeline.fit(X_train, y_train)

    Esta es la forma recomendada en proyectos de Machine Learning, ya que evita fugas de información (data leakage) entre entrenamiento y prueba.

    Comparación entre Yeo-Johnson y Box-Cox

    CaracterísticaYeo-JohnsonBox-Cox
    Admite valores negativosNo
    Admite cerosNo
    Usa parámetro λ
    Reduce asimetría
    Estabiliza varianza
    Implementación en Scikit-Learn
    Requiere datos positivosNo

    Buenas Prácticas

    1. Aplicar únicamente sobre variables numéricas.
    2. Ajustar la transformación únicamente con los datos de entrenamiento.
    3. Integrarla dentro de un Pipeline.
    4. Comparar la distribución antes y después de la transformación.
    5. Verificar si realmente mejora el rendimiento del modelo.

    Conclusión

    La Transformación Yeo-Johnson es una de las técnicas de normalización más versátiles utilizadas actualmente en Data Science y Machine Learning. Su capacidad para trabajar con valores positivos, negativos y ceros la convierte en una alternativa superior a Box-Cox en muchos escenarios reales.

    Cuando los datos presentan asimetría significativa, varianza inestable o contienen valores negativos, Yeo-Johnson permite generar distribuciones más equilibradas, facilitando el trabajo de algoritmos estadísticos y mejorando la calidad de los modelos predictivos.

    Por su facilidad de uso, integración con Scikit-Learn y capacidad para automatizar la búsqueda del parámetro óptimo λ, constituye una herramienta fundamental dentro del proceso moderno de preparación de datos.