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 grupos | Nombre |
|---|---|
| 2 | Mitades |
| 4 | Cuartiles |
| 5 | Quintiles |
| 10 | Deciles |
| 100 | Percentiles |
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 1 | Grupo 2 |
|---|---|
| 10 | 30 |
| 15 | 35 |
| 18 | 40 |
| 22 | 45 |
| 25 | 100 |
Observa que los intervalos tienen diferentes amplitudes, pero contienen la misma cantidad de registros.
Grupo 1: 10 - 25
Grupo 2: 30 - 100Beneficios 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ística | Equal Width | Equal Frequency |
|---|---|---|
| Tamaño de intervalos | Igual | Variable |
| Número de observaciones | Variable | Similar |
| Considera distribución | No | Sí |
| Sensible a outliers | Alta | Menor |
| Interpretación de límites | Fácil | Media |
| Equilibrio entre grupos | Bajo | Alto |
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 AltoObteniendo 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.