Categoría: data science

  • Transformación Seno y Coseno:

    Codificación de Variables Cíclicas para Machine Learning

    En Data Science y Machine Learning existen variables que poseen una naturaleza cíclica o periódica. Algunos ejemplos comunes son:

    • Hora del día.
    • Día de la semana.
    • Mes del año.
    • Estaciones del año.
    • Ángulos.
    • Direcciones geográficas.
    • Fases de producción.

    Estas variables presentan una característica particular: después de alcanzar su valor máximo vuelven a comenzar desde el mínimo. Por ejemplo, después de las 23:00 horas llega nuevamente la hora 0, y después de diciembre vuelve enero.

    Si estas variables se representan utilizando valores numéricos convencionales, los algoritmos pueden interpretar incorrectamente las distancias entre observaciones. Para resolver este problema se utiliza la Transformación Seno y Coseno, una técnica que convierte variables cíclicas en coordenadas geométricas capaces de preservar correctamente su naturaleza periódica. En documentación moderna de Machine Learning, normalmente encontrarás nombres como:

    • Circular Encoding
    • Cyclical Encoding
    • Cyclical Features
    • Cyclical Transformation
    • Sine-Cosine Encoding

    ¿Qué es la Transformación Seno y Coseno?

    La Transformación Seno y Coseno es una técnica de ingeniería de características (Feature Engineering) utilizada para representar variables cíclicas mediante funciones trigonométricas.

    Su objetivo es:

    • Preservar la naturaleza circular de los datos.
    • Evitar discontinuidades artificiales.
    • Mejorar la representación matemática de variables periódicas.
    • Facilitar el aprendizaje de patrones temporales.

    En lugar de utilizar una única variable numérica, la transformación genera dos nuevas variables:

    • Componente seno.
    • Componente coseno.

    Estas dos variables representan la posición de una observación sobre una circunferencia unitaria.

    ¿Por qué es necesaria?

    Supongamos una variable que representa la hora del día:

    time = [22, 23, 0, 1, 2]

    Desde una perspectiva humana:

    • Las horas 23 y 0 están muy próximas.
    • Las horas 22 y 1 también están relativamente cerca.

    Sin embargo, para un algoritmo que utiliza los valores originales:

    |23 - 0| = 23

    El modelo interpreta que ambas observaciones están extremadamente alejadas, cuando en realidad son consecutivas. La transformación seno y coseno elimina este problema.

    ¿Cómo Funciona?

    • La variable se proyecta sobre una circunferencia de radio 1.
    • Cada observación se convierte en un ángulo.
    • Posteriormente se calculan las coordenadas cartesianas correspondientes utilizando las funciones seno y coseno.

    La transformación seno se calcula mediante:

    $$x_{sen}=\sin\left(\frac{2\pi x}{P}\right)$$

    La transformación coseno se calcula mediante:

    $$x_{cos}=\cos\left(\frac{2\pi x}{P}\right)$$

    Donde:

    • x es el valor original.
    • P es el período completo de la variable.
    • representa una vuelta completa en la circunferencia.

    Interpretación del Período

    El período depende de la variable que se esté transformando.

    VariablePeríodo
    Hora del día24
    Día de la semana7
    Mes del año12
    Minuto de la hora60
    Segundo60
    Dirección angular360

    Ejemplo Práctico: Supongamos una variable de horas:

    time = [0, 6, 12, 18]

    Aplicando la transformación:

    HoraSenoCoseno
    001
    610
    120-1
    18-10

    Las observaciones quedan representadas como puntos sobre una circunferencia.

    De esta forma:

    • La hora 23 y la hora 0 quedan próximas.
    • La hora 11 y la hora 12 también quedan próximas.
    • Se preserva la continuidad natural del ciclo.

    Representación Geométrica

    La transformación genera coordenadas sobre una circunferencia unitaria. Cada observación queda representada mediante:

    (x_cos, x_sen)

    Esto permite que los algoritmos perciban correctamente las relaciones cíclicas en lugar de una representación lineal:

    012...23

    se obtiene una representación circular:

    023

    que refleja mejor la realidad del fenómeno.

    Beneficios de la Transformación Seno y Coseno

    Entre los principales beneficios destacan:

    • Preserva la naturaleza cíclica de los datos.
    • Elimina discontinuidades artificiales.
    • Mejora la representación matemática de variables temporales.
    • Facilita el aprendizaje de patrones periódicos.
    • Genera características continuas.
    • Mantiene la proximidad entre valores cercanos dentro del ciclo.
    • Suele mejorar el rendimiento de numerosos modelos predictivos.

    ¿Cuándo utilizar la transformación de seno y coseno?

    Esta técnica es recomendable cuando se trabaja con:

    • Horas del día.
    • Días de la semana.
    • Meses del año.
    • Estaciones.
    • Variables temporales periódicas.
    • Ángulos.
    • Direcciones geográficas.
    • Datos de sensores con comportamiento cíclico.

    También resulta especialmente útil en problemas de predicción temporal.

    Ventajas

    • Captura correctamente la periodicidad.
    • Evita errores derivados de la codificación numérica simple.
    • Es sencilla de implementar.
    • Funciona con cualquier variable cíclica.
    • Mejora la capacidad predictiva de muchos modelos.
    • Compatible con algoritmos lineales y no lineales.
    • Produce características continuas y suaves.

    Desventajas

    • Incrementa el número de variables.
    • Genera dos características por cada variable original.
    • Puede resultar menos intuitiva para usuarios no técnicos.
    • No siempre aporta mejoras en modelos basados en árboles.
    • Requiere conocer correctamente el período de la variable.

    Limitaciones

    Antes de aplicar esta transformación es importante considerar algunas limitaciones:

    • Solo tiene sentido para variables verdaderamente cíclicas.
    • No debe utilizarse sobre variables categóricas convencionales.
    • Una elección incorrecta del período puede introducir errores.
    • No elimina ruido ni valores atípicos.
    • No corrige problemas de escalado o asimetría.

    Por ello debe considerarse una técnica de representación de datos y no una técnica de limpieza o normalización.

    Aplicaciones en Data Science y Machine Learning

    La transformación seno y coseno se utiliza ampliamente en:

    • Predicción de demanda.
    • Forecasting de series temporales.
    • Predicción meteorológica.
    • Sistemas de recomendación.
    • Optimización logística.
    • Redes neuronales.
    • Modelos de consumo energético.
    • Análisis de tráfico.
    • Internet de las Cosas (IoT).
    • Modelos financieros con componentes estacionales.

    Es especialmente frecuente en proyectos donde existe estacionalidad o comportamiento periódico.

    Implementación en Python

    Transformación de Horas del Día

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({
        "hora": [0, 6, 12, 18]
    })
    
    df["hora_sin"] = np.sin(
        2 * np.pi * df["hora"] / 24
    )
    
    df["hora_cos"] = np.cos(
        2 * np.pi * df["hora"] / 24
    )
    
    print(df)
    
      hora      hora_sin      hora_cos
    0     0  0.000000e+00  1.000000e+00
    1     6  1.000000e+00  6.123234e-17
    2    12  1.224647e-16 -1.000000e+00
    3    18 -1.000000e+00 -1.836970e-16

    Transformación de Meses del Año

    import numpy as np
    
    df["mes_sin"] = np.sin(
        2 * np.pi * df["mes"] / 12
    )
    
    df["mes_cos"] = np.cos(
        2 * np.pi * df["mes"] / 12
    )
    

    Función Reutilizable

    import numpy as np
    
    def cyclical_encoding(
        values,
        period
    ):
        sin_component = np.sin(
            2 * np.pi * values / period
        )
    
        cos_component = np.cos(
            2 * np.pi * values / period
        )
    
        return sin_component, cos_component
    

    Uso en un Pipeline de Scikit-Learn

    from sklearn.preprocessing import FunctionTransformer
    import numpy as np
    
    sin_transformer = FunctionTransformer(
        lambda x: np.sin(
            2 * np.pi * x / 24
        )
    )
    
    cos_transformer = FunctionTransformer(
        lambda x: np.cos(
            2 * np.pi * x / 24
        )
    )
    

    Buenas Prácticas

    Al aplicar esta transformación es recomendable:

    • Verificar que la variable sea realmente cíclica.
    • Identificar correctamente el período completo.
    • Mantener ambas variables (seno y coseno).
    • No eliminar una de las dos componentes.
    • Integrar la transformación dentro de un Pipeline.
    • Evaluar el impacto sobre el rendimiento del modelo.

    Conclusión

    La Transformación Seno y Coseno es una técnica fundamental de ingeniería de características utilizada para representar variables cíclicas de forma adecuada. Al convertir una variable periódica en coordenadas sobre una circunferencia unitaria, permite preservar la continuidad natural del ciclo y evita los problemas derivados de las representaciones lineales tradicionales.

    Gracias a su simplicidad, fundamento matemático sólido y eficacia práctica, se ha convertido en una de las transformaciones más utilizadas en proyectos de series temporales, forecasting, análisis estacional y Machine Learning aplicado a datos temporales. Su capacidad para capturar correctamente la periodicidad la convierte en una herramienta esencial dentro del conjunto de técnicas modernas de preparación de datos.

  • Rank Transformation mediante Percentiles

    Transformación Basada en Posiciones Relativas

    Las transformaciones basadas en rangos permiten precisamente este enfoque. Entre ellas, la Transformación por Percentiles destaca por convertir cada observación en una medida relativa que indica qué porcentaje de datos se encuentra por debajo de ella.

    Esta técnica es ampliamente utilizada en estadística, análisis exploratorio de datos, evaluación de rendimiento, sistemas de puntuación y procesos de preparación de datos para Machine Learning.

    ¿Qué es la transformación por percentiles?

    La Transformación por Percentiles es una técnica de transformación basada en rangos que reemplaza cada observación por su posición porcentual dentro de la distribución. En lugar de conservar el valor original, la variable pasa a representar el porcentaje de observaciones que son iguales o inferiores a dicho valor.

    ValorPercentil
    100%
    2025%
    3050%
    4075%
    50100%

    De esta forma, el valor original deja de ser relevante y la posición relativa pasa a ser la información principal.

    ¿Cómo Funciona?

    La transformación sigue los siguientes pasos:

    • Ordenar los datos.
    • Asignar un rango a cada observación.
    • Convertir el rango en una proporción o porcentaje.
    • Sustituir el valor original por su percentil correspondiente.

    Una fórmula habitual es:

    $$P=\frac{r-1}{n-1}\times100$$

    Donde:

    • P representa el percentil.
    • r representa el rango de la observación.
    • n representa el número total de observaciones.

    El resultado se expresa normalmente entre: 0 y 100 o alternativamente entre: 0 y 1.

    Interpretación de los Percentiles

    Los percentiles indican la posición relativa de una observación dentro de una distribución.

    PercentilInterpretación
    10El 10% de los datos está por debajo
    25El 25% de los datos está por debajo
    50Mediana de la distribución
    75El 75% de los datos está por debajo
    90El 90% de los datos está por debajo

    Por ejemplo, si un estudiante se encuentra en el percentil 90, significa que ha obtenido una puntuación superior al 90% de los participantes.

    Ejemplo Práctico.

    Supongamos una variable de ingresos:

    Ingreso
    1500
    2000
    3000
    5000
    100000

    La diferencia entre los ingresos es enorme.

    Tras aplicar la transformación:

    IngresoPercentil
    15000
    200025
    300050
    500075
    100000100

    Ahora la variable representa posiciones relativas en lugar de magnitudes monetarias.

    Beneficios de la Transformación por Percentiles

    • Reduce la influencia de valores extremos.
    • Facilita la comparación entre variables con escalas diferentes.
    • Convierte cualquier variable en una escala común.
    • Conserva el orden relativo de las observaciones.
    • Es robusta frente a distribuciones no normales.
    • Facilita la interpretación de posiciones relativas.
    • Resulta útil para construir sistemas de puntuación.

    ¿Cuándo utilizar la transformación por percentiles?

    • Interesa conocer posiciones relativas.
    • Existen distribuciones altamente asimétricas.
    • Hay valores atípicos importantes.
    • Se comparan variables con unidades diferentes.
    • Se construyen rankings o clasificaciones.
    • Se trabaja con métodos estadísticos robustos.

    También es muy utilizada cuando la magnitud exacta de una observación es menos importante que su posición dentro del conjunto de datos.

    Ventajas

    • Reduce el efecto de los outliers.
    • Funciona correctamente con distribuciones complejas.
    • No requiere supuestos de normalidad.
    • Permite comparar variables heterogéneas.
    • Conserva el orden de los datos.
    • Facilita la creación de indicadores comparables.

    Desventajas

    • Se pierde la magnitud original de las observaciones.
    • No conserva las distancias reales entre valores.
    • Puede ocultar diferencias importantes entre observaciones.
    • La interpretación absoluta desaparece.
    • No siempre mejora el rendimiento predictivo de los modelos.

    Limitaciones

    • No aproxima los datos a una distribución normal.
    • No conserva unidades originales.
    • No elimina valores atípicos.
    • No representa diferencias cuantitativas reales.
    • Puede reducir información relevante para determinados algoritmos.

    Por ello suele utilizarse cuando el interés principal es la posición relativa de los datos.

    Diferencias entre Ranking Simple y Percentiles

    Ambas técnicas pertenecen a la familia de las transformaciones basadas en rangos, pero presentan algunas diferencias.

    CaracterísticaRanking SimplePercentiles
    Utiliza rangos
    Conserva orden
    Escala uniformeNo
    Fácil comparación entre datasetsLimitadaAlta
    Resultado interpretableMedioAlto
    Valores entre 0 y 100No

    Los percentiles pueden considerarse una evolución natural del ranking simple, ya que transforman los rangos en posiciones relativas estandarizadas.

    Aplicaciones en Data Science y Machine Learning

    La Transformación por Percentiles se utiliza frecuentemente en:

    • Análisis Exploratorio de Datos (EDA).
    • Estadística descriptiva.
    • Sistemas de puntuación.
    • Modelos de riesgo financiero.
    • Recursos Humanos.
    • Sistemas de recomendación.
    • Detección de anomalías.
    • Evaluación de rendimiento académico.
    • Ingeniería de características.

    También suele utilizarse como paso previo a transformaciones más avanzadas como Quantile Transformation o Rank Gaussian Transformation.

    Implementación en Python

    Cálculo de Percentiles con Pandas

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

    Resultado Aproximado

       ingresos  percentil
    0      1500       20.0
    1      2000       40.0
    2      3000       60.0
    3      5000       80.0
    4    100000      100.0
    

    Utilizando SciPy

    from scipy.stats import percentileofscore
    
    datos = [1500, 2000, 3000, 5000, 100000]
    
    for valor in datos:
        p = percentileofscore(datos, valor)
        print(valor, p)
    

    Aplicación sobre Múltiples Variables

    import pandas as pd
    
    for columna in df.columns:
        df[columna + "_pct"] = (
            df[columna]
            .rank(pct=True)
        )
    

    Uso en un Pipeline Personalizado

    from sklearn.preprocessing import FunctionTransformer
    import pandas as pd
    
    def percentile_transform(X):
        return pd.DataFrame(X).rank(
            pct=True
        ).values
    
    transformer = FunctionTransformer(
        percentile_transform
    )
    
    X_transformado = transformer.fit_transform(X)
    

    Buenas Prácticas

    Al utilizar transformaciones por percentiles es recomendable:

    • Analizar previamente la distribución de la variable.
    • Evaluar si la magnitud original contiene información relevante.
    • Utilizar percentiles cuando el interés principal sea la posición relativa.
    • Comparar los resultados con otras transformaciones basadas en rangos.
    • Verificar el impacto sobre el rendimiento del modelo.
    • Aplicar la misma transformación durante entrenamiento e inferencia.

    Conclusión

    La Transformación por Percentiles es una técnica basada en rangos que convierte cada observación en una medida relativa dentro de la distribución. En lugar de representar magnitudes absolutas, permite expresar la posición de cada dato respecto al resto de observaciones.

    Gracias a su robustez frente a valores extremos, facilidad de interpretación y capacidad para estandarizar variables de diferentes escalas, constituye una herramienta muy útil en análisis estadístico, ingeniería de características y procesos de preparación de datos para Machine Learning. Además, sirve como fundamento para técnicas más avanzadas como Quantile Transformation y Rank Gaussian Transformation, ampliamente utilizadas en proyectos modernos de análisis de datos.

  • 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.