Centrado y Escalado de Datos

Como científico de datos, uno de los pasos más importantes antes de visualizar, analizar o modelar información es transformar adecuadamente los datos. En particular, centrar y escalar son operaciones esenciales del preprocesamiento que garantizan que todas las variables contribuyan de manera equilibrada a los modelos estadísticos o de aprendizaje automático.

En este artículo aprenderás:

  • Qué significa centrar datos e interpretar datos centrados.
  • Por qué es importante escalar tus datos.
  • Cómo escalar datos utilizando normalización min–máx y estandarización.
  • Cuándo elegir entre ambos métodos.

Centrado de Datos

El centrado de los datos consiste en restar la media de un conjunto de valores a cada punto del mismo, de manera que la nueva media sea cero.

$$X^{(centrado)}_i = X_i – \mu$$

donde:

  • \( X_i \) es un valor individual,
  • \( \mu \) es la media del conjunto \( X \).

Ejemplo:

Supón que tenemos un conjunto de edades:

ages = [24, 40, 28, 22, 56]

La media es:

$$\mu = \frac{24 + 40 + 28 + 22 + 56}{5} = 34$$

Al centrar los datos:

$$X^{(centrado)} = [-10, 6, -6, -12, 22]$$

La suma de estos valores es cero, lo que implica que su media también es cero.
Interpretativamente, cada valor indica cuánto se desvía respecto a la media: la primera persona tiene 10 años menos que el promedio, la última 22 años más.

Escalado de Datos

Aunque el centrado corrige el desplazamiento, no resuelve las diferencias de escala entre variables. Por ejemplo, en un conjunto de datos con las variables edad (0–100) e ingresos (0–100,000), el modelo podría interpretar que los ingresos son “más importantes” solo por tener valores mayores.

Los algoritmos de machine learning —como regresión lineal, SVM, k-means o PCAasumen que todas las variables tienen una escala comparable. Por ello, es fundamental escalar los datos, es decir, ajustar su rango o su dispersión.

Normalización Min–Máx

La normalización min–máx reescala los valores para que todos estén dentro del rango ([0, 1]):

$$X’ = \frac{X – X_{\min}}{X_{\max} – X_{\min}}$$

donde:

  • \(X_{\min}\) y \( X_{\max}\) son el valor mínimo y máximo de la variable.

Ejemplo:

Si \( X_{\min} = 10 ), ( X_{\max} = 30 ), ( X = 20 )\):

$$X’ = \frac{20 – 10}{30 – 10} = 0.5$$

En Python

def min_max_normalize(lst):
    minimum = min(lst)
    maximum = max(lst)
    return [(x - minimum) / (maximum - minimum) for x in lst]

data = [1, 2, 3, 4, 5]
normalized_data = min_max_normalize(data)
print(normalized_data)

O con scikit-learn:

from sklearn.preprocessing import MinMaxScaler

data = [[1], [2], [3], [4], [5]]
scaler = MinMaxScaler()
normalized = scaler.fit_transform(data)
print(normalized)

Desventaja

La normalización min–máx no maneja bien los valores atípicos. Si un único dato es muy grande, comprime el rango del resto. En ese caso, la estandarización es una mejor opción.

Estandarización (Z-score)

La estandarización transforma los datos restando la media y dividiendo por la desviación estándar:

$$Z = \frac{X – \mu}{\sigma}$$

donde:

  • \( \mu \) es la media,
  • \( \sigma \) es la desviación estándar.

De este modo, la variable resultante tiene:

  • Media = 0
  • Desviación estándar = 1

A diferencia de la normalización, no limita los valores a un rango fijo, por lo que no se ve tan afectada por valores extremos.

En Python

def standardize(lst):
    mean = sum(lst) / len(lst)
    std_dev = (sum((x - mean) ** 2 for x in lst) / len(lst)) ** 0.5
    return [(x - mean) / std_dev for x in lst]

data = [1, 2, 3, 4, 5]
standardized = standardize(data)
print(standardized)

O utilizando scikit-learn:

from sklearn.preprocessing import StandardScaler

data = [[1], [2], [3], [4], [5]]
scaler = StandardScaler()
standardized = scaler.fit_transform(data)
print(standardized)

Cuándo Normalizar o Estandarizar

CasoMétodo recomendado
Quieres los valores en rango [0, 1]Normalización min–máx
Tienes valores atípicos o distribuciones no uniformesEstandarización
Modelos sensibles a la escala (k-means, SVM, PCA)Ambos, según el caso
Modelos basados en árboles (Random Forest, XGBoost)No necesario

El centrado y escalado de datos no son simples pasos técnicos: son fundamentales para que los algoritmos interpreten correctamente la información. Elegir entre normalización y estandarización dependerá de la naturaleza del conjunto de datos y del modelo que vayas a emplear.

En resumen:

  • Centrar elimina el sesgo de posición (media ≈ 0).
  • Escalar elimina el sesgo de magnitud (dispersión comparable).
  • La normalización fija un rango; la estandarización fija la media y varianza.

Ambas operaciones son pilares del preprocesamiento de datos moderno en ciencia de datos y machine learning.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *