Discretización Equal Frequency

Conversión de Variables Continuas en Intervalos con Igual Número de Observaciones

En Data Science y Machine Learning, muchas variables numéricas contienen una gran cantidad de valores distintos. Aunque esta información detallada puede ser útil, existen situaciones en las que resulta conveniente agrupar los datos en categorías para facilitar el análisis, mejorar la interpretabilidad o simplificar determinados modelos.

Este proceso se conoce como discretización (binning) y consiste en transformar una variable continua en una variable categórica. Entre las técnicas más utilizadas destaca la Discretización Equal Frequency, también conocida como Equal Frequency Binning, Quantile Binning o Discretización por Cuantiles.

A diferencia de Equal Width, donde todos los intervalos tienen la misma amplitud, Equal Frequency construye intervalos que contienen aproximadamente el mismo número de observaciones.

¿Qué es la discretización Equal Frequency?

La discretización Equal Frequency es una técnica que divide una variable continua en varios grupos de forma que cada grupo contenga una cantidad similar de observaciones. El objetivo es distribuir los datos de manera equilibrada entre los distintos intervalos.

Por ejemplo, si disponemos de 100 observaciones y queremos crear 4 intervalos, cada grupo contendrá aproximadamente 25 observaciones independientemente de la amplitud de los intervalos.

¿Cómo Funciona?

El procedimiento sigue los siguientes pasos:

  • Ordenar los datos de menor a mayor.
  • Definir el número de intervalos deseado.
  • Calcular los cuantiles correspondientes.
  • Utilizar dichos cuantiles como límites de los intervalos.
  • Asignar cada observación al grupo correspondiente.

Cuando se crean cuatro grupos, los límites suelen corresponder a:

  • Percentil 25.
  • Percentil 50.
  • Percentil 75.

Estos valores dividen la distribución en cuatro partes con aproximadamente el mismo número de observaciones.

Relación con los Cuantiles

Equal Frequency se basa directamente en los cuantiles de una distribución.

Los grupos más habituales son:

Número de gruposNombre
2Mitades
4Cuartiles
5Quintiles
10Deciles
100Percentiles

Por ejemplo, una discretización en cuartiles divide la variable en cuatro segmentos con aproximadamente el 25% de las observaciones en cada uno.

Ejemplo Práctico

Supongamos la siguiente variable ordenada:

var = [10, 15, 18, 22, 25, 30, 35, 40, 45, 100]

Queremos crear dos grupos. Cada grupo contendrá aproximadamente cinco observaciones.

Grupo 1Grupo 2
1030
1535
1840
2245
25100

Observa que los intervalos tienen diferentes amplitudes, pero contienen la misma cantidad de registros.

Grupo 1: 10 - 25
Grupo 2: 30 - 100

Beneficios de la Discretización Equal Frequency

  • Genera grupos equilibrados.
  • Reduce el efecto de distribuciones muy sesgadas.
  • Disminuye la influencia de valores extremos.
  • Facilita la comparación entre categorías.
  • Produce segmentos con tamaños similares.
  • Resulta especialmente útil en análisis descriptivos.
  • Puede mejorar la estabilidad de ciertos modelos.

¿Cuándo Utilizar Equal Frequency?

  • La distribución de los datos es muy asimétrica.
  • Existen valores extremos importantes.
  • Se desean grupos equilibrados.
  • Se construyen modelos de scoring.
  • Se crean segmentos de clientes.
  • Se trabaja con variables altamente sesgadas.

También resulta útil cuando Equal Width genera intervalos con muy pocas observaciones.

Ventajas

  • Tiene en cuenta la distribución real de los datos.
  • Produce grupos más equilibrados.
  • Reduce problemas derivados de distribuciones sesgadas.
  • Es menos sensible a outliers que Equal Width.
  • Facilita la creación de segmentos comparables.
  • Suele generar categorías más representativas.
  • Funciona bien en datos con colas largas.

Desventajas

  • Los intervalos tienen amplitudes diferentes.
  • Los límites pueden resultar menos intuitivos.
  • Puede generar categorías difíciles de interpretar.
  • Los puntos de corte dependen completamente de la distribución observada.
  • La comparación entre distintos conjuntos de datos puede resultar más compleja.

Limitaciones

  • No elimina valores atípicos.
  • No corrige problemas de calidad de datos.
  • Puede ocultar diferencias importantes dentro de un mismo grupo.
  • La información original se simplifica considerablemente.
  • No garantiza una mejora del rendimiento predictivo.

Además, cuando existen muchos valores repetidos pueden aparecer grupos con tamaños ligeramente desequilibrados.

Comparación con Equal Width

Las dos técnicas de discretización más utilizadas presentan diferencias importantes.

CaracterísticaEqual WidthEqual Frequency
Tamaño de intervalosIgualVariable
Número de observacionesVariableSimilar
Considera distribuciónNo
Sensible a outliersAltaMenor
Interpretación de límitesFácilMedia
Equilibrio entre gruposBajoAlto

En términos generales:

  • Equal Width divide el rango de valores.
  • Equal Frequency divide las observaciones.

Aplicaciones en Data Science y Machine Learning

  • Análisis Exploratorio de Datos (EDA).
  • Segmentación de clientes.
  • Scoring crediticio.
  • Modelos de riesgo.
  • Marketing analítico.
  • Sistemas de recomendación.
  • Ingeniería de características.
  • Modelos basados en reglas.
  • Visualización de datos.

También es ampliamente utilizada en banca, seguros y analítica de negocio.

Implementación en Python

Utilizando Pandas

La función qcut() implementa directamente Equal Frequency.

import pandas as pd

df = pd.DataFrame({
    "ingresos": [
        1200, 1400, 1800, 2200, 3000,
        3500, 4500, 6000, 8000, 20000
    ]
})

df["grupo"] = pd.qcut(
    df["ingresos"],
    q=4,
    labels=["Bajo", "Medio-Bajo", "Medio-Alto", "Alto"]
)

print(df)
   ingresos               grupo
0      1200  (1199.999, 1900.0]
1      1400  (1199.999, 1900.0]
2      1800  (1199.999, 1900.0]
3      2200    (1900.0, 3250.0]
4      3000    (1900.0, 3250.0]
5      3500    (3250.0, 5625.0]
6      4500    (3250.0, 5625.0]
7      6000   (5625.0, 20000.0]
8      8000   (5625.0, 20000.0]
9     20000   (5625.0, 20000.0]

Asignando Etiquetas Personalizadas

df["grupo"] = pd.qcut(
    df["ingresos"],
    q=4,
    labels=[
        "Bajo",
        "Medio-Bajo",
        "Medio-Alto",
        "Alto"
    ]
)
   ingresos       grupo
0      1200        Bajo
1      1400        Bajo
2      1800        Bajo
3      2200  Medio-Bajo
4      3000  Medio-Bajo
5      3500  Medio-Alto
6      4500  Medio-Alto
7      6000        Alto
8      8000        Alto
9     20000        Alto

Obteniendo los Límites de los Intervalos

categorias, limites = pd.qcut(
    df["ingresos"],
    q=4,
    retbins=True
)

print(limites)

Implementación con Scikit-Learn

from sklearn.preprocessing import KBinsDiscretizer

discretizador = KBinsDiscretizer(
    n_bins=4,
    encode="ordinal",
    strategy="quantile"
)

X_transformado = discretizador.fit_transform(X)

En Scikit-Learn, la estrategia "quantile" corresponde a Equal Frequency.

Uso dentro de un Pipeline

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import KBinsDiscretizer
from sklearn.linear_model import LogisticRegression

pipeline = Pipeline([
    (
        "binning",
        KBinsDiscretizer(
            n_bins=4,
            strategy="quantile",
            encode="ordinal"
        )
    ),
    (
        "modelo",
        LogisticRegression()
    )
])

pipeline.fit(X_train, y_train)

Esta es la forma recomendada cuando la discretización forma parte del proceso de entrenamiento del modelo.

Buenas Prácticas

  • Analizar previamente la distribución de la variable.
  • Evaluar la presencia de valores repetidos.
  • Seleccionar un número razonable de grupos.
  • Revisar la interpretabilidad de los intervalos generados.
  • Comparar los resultados con Equal Width.
  • Verificar si la discretización mejora la comprensión de los datos o el rendimiento del modelo.

Conclusión

La Discretización Equal Frequency es una técnica de binning que transforma variables continuas en categorías mediante intervalos que contienen aproximadamente el mismo número de observaciones. Gracias a este enfoque, consigue adaptarse a la distribución real de los datos y generar grupos más equilibrados que los obtenidos mediante Equal Width.

Su capacidad para manejar distribuciones asimétricas y reducir el impacto de valores extremos la convierte en una herramienta muy útil para análisis exploratorios, segmentación de datos, scoring y procesos de ingeniería de características. Aunque implica una pérdida de detalle respecto a los valores originales, sigue siendo una de las técnicas de discretización más utilizadas en proyectos modernos de Data Science y Machine Learning.