¿Qué es Count Encoding?
Count Encoding es una técnica de codificación de variables categóricas que sustituye cada categoría por el número de veces que aparece en el conjunto de datos.
En lugar de crear múltiples columnas, como ocurre con One-Hot Encoding, o asignar identificadores arbitrarios, como en Label Encoding, Count Encoding utiliza información estadística real para representar las categorías mediante su frecuencia absoluta de aparición.
Esta técnica resulta especialmente útil cuando se trabaja con variables de alta cardinalidad, es decir, variables que contienen un gran número de categorías distintas.
Por ejemplo, si una categoría aparece 500 veces en el conjunto de datos, será reemplazada por el valor 500.

¿Cómo funciona?
El proceso consiste en:
- Identificar todas las categorías únicas de una variable.
- Contar el número de apariciones de cada categoría.
- Crear un diccionario de correspondencia entre categoría y número de ocurrencias.
- Sustituir cada categoría por su conteo correspondiente.
La transformación puede expresarse como:
$$Count(c)=\sum_{i=1}^{N}I(x_i=c)$$
Donde:
- (c) representa una categoría.
- (I(x_i=c)) es una función indicadora que vale 1 cuando la observación pertenece a la categoría (c).
- (N) es el número total de observaciones.
El resultado es un valor numérico que representa cuántas veces aparece cada categoría dentro del conjunto de datos.
Ejemplo de Count Encoding
Supongamos la siguiente variable:
| Ciudad |
|---|
| Madrid |
| Barcelona |
| Madrid |
| Sevilla |
| Madrid |
| Barcelona |
Calculamos el número de apariciones:
| Ciudad | Conteo |
|---|---|
| Madrid | 3 |
| Barcelona | 2 |
| Sevilla | 1 |
Tras aplicar Count Encoding:
| Ciudad Original | Ciudad Codificada |
|---|---|
| Madrid | 3 |
| Barcelona | 2 |
| Madrid | 3 |
| Sevilla | 1 |
| Madrid | 3 |
| Barcelona | 2 |
Cada categoría queda representada por su número total de apariciones.
Diferencia entre Count Encoding y Frequency Encoding
Ambas técnicas son muy similares, pero utilizan escalas distintas.
| Característica | Count Encoding | Frequency Encoding |
|---|---|---|
| Valor asignado | Número de apariciones | Proporción de apariciones |
| Escala | Enteros | Decimales |
| Depende del tamaño del dataset | Sí | No |
| Interpretación | Conteo absoluto | Frecuencia relativa |
Por ejemplo:
| Ciudad | Count Encoding | Frequency Encoding |
|---|---|---|
| Madrid | 300 | 0.60 |
| Barcelona | 150 | 0.30 |
| Sevilla | 50 | 0.10 |
Ambas técnicas contienen la misma información, pero representada de forma diferente.
¿Por qué utilizar Count Encoding?
Cuando una variable contiene cientos o miles de categorías, One-Hot Encoding puede generar una enorme cantidad de columnas.
Por ejemplo:
- Código postal.
- Ciudad.
- Producto.
- Cliente.
- Proveedor.
- Marca.
Count Encoding permite mantener una única columna y reducir significativamente el tamaño del conjunto de datos.
Beneficios de Count Encoding
- Reduce la dimensionalidad.
- Mantiene una sola columna por variable.
- Es sencillo de implementar.
- Utiliza información estadística real.
- Funciona bien con variables de alta cardinalidad.
- Reduce el consumo de memoria.
- Puede acelerar el entrenamiento de modelos.
¿Cuándo utilizar Count Encoding?
- Existen muchas categorías distintas.
- Se desea evitar la explosión dimensional.
- El número de apariciones de una categoría aporta información relevante.
- Se trabaja con grandes volúmenes de datos.
- Se busca una representación compacta.
Casos habituales:
- Comercio electrónico.
- Sistemas de recomendación.
- Marketing digital.
- Predicción de fraude.
- Segmentación de clientes.
- Modelos de scoring.
Ventajas
- Bajo consumo de memoria.
- No genera columnas adicionales.
- Escala bien en datasets grandes.
- Compatible con la mayoría de algoritmos.
- Aprovecha información estadística de la variable.
- Adecuado para variables de alta cardinalidad.
Desventajas
- Categorías diferentes pueden recibir exactamente el mismo valor.
- Se pierde parte de la identidad de las categorías.
- No captura relaciones semánticas.
- No utiliza información de la variable objetivo.
- Puede generar ambigüedad cuando varias categorías tienen el mismo conteo.
Por ejemplo:
| Categoría | Conteo |
|---|---|
| A | 100 |
| B | 100 |
Tras la codificación, ambas categorías serán indistinguibles para el modelo.
Limitaciones
- No incorpora información predictiva de la variable objetivo.
- No refleja similitud entre categorías.
- Puede perder capacidad discriminativa.
- Las categorías raras pueden quedar infrarrepresentadas.
- Los conteos dependen del conjunto de entrenamiento.
Además, si la distribución de categorías cambia con el tiempo, los valores calculados inicialmente pueden dejar de representar adecuadamente los datos futuros.
Comparación con otras técnicas de codificación
| Característica | Count Encoding | One-Hot Encoding | Ordinal Encoding | Target Encoding |
|---|---|---|---|---|
| Mantiene una sola columna | Sí | No | Sí | Sí |
| Adecuado para alta cardinalidad | Sí | No | Sí | Sí |
| Utiliza información del target | No | No | No | Sí |
| Riesgo de sobreajuste | Bajo | Bajo | Bajo | Alto |
| Incrementa dimensionalidad | No | Sí | No | No |
| Preserva categorías individualmente | Parcialmente | Sí | Sí | Parcialmente |
Count Encoding vs One-Hot Encoding
| Aspecto | Count Encoding | One-Hot Encoding |
|---|---|---|
| Número de columnas | Una | Una por categoría |
| Alta cardinalidad | Excelente | Problemática |
| Consumo de memoria | Bajo | Alto |
| Velocidad de entrenamiento | Alta | Menor |
| Conservación de categorías | Parcial | Total |
Count Encoding vs Frequency Encoding
| Aspecto | Count Encoding | Frequency Encoding |
|---|---|---|
| Valores generados | Conteos absolutos | Frecuencias relativas |
| Escala dependiente del tamaño del dataset | Sí | No |
| Interpretación | Número de apariciones | Proporción de apariciones |
| Información contenida | Equivalente | Equivalente |
En muchos problemas ambos métodos ofrecen resultados muy similares.
Aplicaciones en Data Science y Machine Learning
Count Encoding aparece frecuentemente en:
- Sistemas de recomendación.
- Predicción de fraude.
- Marketing analítico.
- Comercio electrónico.
- Segmentación de clientes.
- Predicción de abandono.
- Scoring crediticio.
- Análisis de comportamiento de usuarios.
- Modelos de clasificación.
Es especialmente útil cuando se trabaja con variables categóricas de alta cardinalidad que hacen inviable el uso de One-Hot Encoding.
Algoritmos donde suele utilizarse
Count Encoding puede utilizarse antes de algoritmos como:
- Regresión logística.
- Árboles de decisión.
- Random Forest.
- Gradient Boosting.
- XGBoost.
- LightGBM.
- CatBoost.
- Redes neuronales.
- Máquinas de vectores de soporte (SVM).
Al mantener una representación compacta, suele facilitar el entrenamiento en grandes conjuntos de datos.
Implementación en Python
Utilizando Pandas
import pandas as pd
df = pd.DataFrame({
"ciudad": [
"Madrid",
"Barcelona",
"Madrid",
"Sevilla",
"Madrid",
"Barcelona"
]
})
conteos = df["ciudad"].value_counts()
df["ciudad_count"] = df["ciudad"].map(conteos)
print(df)
ciudad ciudad_count
0 Madrid 3
1 Barcelona 2
2 Madrid 3
3 Sevilla 1
4 Madrid 3
5 Barcelona 2
Aplicación sobre múltiples columnas
import pandas as pd
columnas = ["ciudad", "producto"]
for columna in columnas:
conteos = df[columna].value_counts()
df[columna] = df[columna].map(conteos)
Creando un transformador personalizado
from sklearn.base import BaseEstimator, TransformerMixin
class CountEncoder(
BaseEstimator,
TransformerMixin
):
def fit(self, X, y=None):
self.count_map = (
X.iloc[:, 0]
.value_counts()
.to_dict()
)
return self
def transform(self, X):
return X.iloc[:, 0].map(
self.count_map
).to_frame()
Uso dentro de un Pipeline
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
pipeline = Pipeline([
("encoder", CountEncoder()),
("modelo", RandomForestClassifier())
])
pipeline.fit(X_train, y_train)
Este enfoque garantiza que el mismo mapeo calculado durante el entrenamiento se aplique posteriormente a nuevos datos.
Buenas prácticas
Al utilizar Count Encoding es recomendable:
- Calcular los conteos únicamente sobre el conjunto de entrenamiento.
- Aplicar exactamente el mismo mapeo al conjunto de prueba.
- Definir una estrategia para categorías no vistas.
- Evaluar posibles colisiones entre categorías con igual conteo.
- Comparar su rendimiento frente a Frequency Encoding y One-Hot Encoding.
Conclusión
Count Encoding es una técnica de codificación eficiente que sustituye cada categoría por su número de apariciones dentro del conjunto de datos. Gracias a su simplicidad y capacidad para manejar variables de alta cardinalidad, se ha convertido en una alternativa muy útil cuando One-Hot Encoding resulta costoso en términos de memoria y dimensionalidad.
Aunque puede perder información cuando varias categorías comparten el mismo conteo y no incorpora información de la variable objetivo, sigue siendo una herramienta valiosa para representar variables categóricas de forma compacta y eficiente en numerosos proyectos de Data Science y Machine Learning.