Normalización de datos
La normalización es un paso fundamental en Inteligencia Artificial. Muchos modelos funcionan mejor cuando todas las características están en rangos similares. En esta guía aprenderás las técnicas más usadas: Min‑Max y Estandarización.
Tabla de contenidos
- Qué es la normalización
- Por qué es necesaria
- Normalización Min‑Max
- Estandarización (Z‑Score)
- Normalización con Scikit‑Learn
- Ejercicios
- Mini‑proyecto
1. Qué es la normalización
La normalización consiste en transformar los valores de una columna para que estén en un rango específico.
# Ejemplo conceptual
edad_original = [18, 25, 40]
edad_normalizada = [0.0, 0.35, 1.0]
2. Por qué es necesaria
Muchos modelos se ven afectados por diferencias grandes entre columnas.
- Evita que una columna domine a las demás
- Mejora la convergencia de modelos
- Reduce errores numéricos
- Mejora el rendimiento general
3. Normalización Min‑Max
Min‑Max escala los valores a un rango entre 0 y 1.
# Fórmula Min‑Max
(x - min) / (max - min)
# Ejemplo
edad = [18, 25, 40]
min = 18
max = 40
normalizado = [(x - min) / (max - min) for x in edad]
4. Estandarización (Z‑Score)
La estandarización transforma los valores para que tengan media 0 y desviación estándar 1.
# Fórmula Z‑Score
(x - media) / desviación
# Ejemplo conceptual
media = df["edad"].mean()
desv = df["edad"].std()
df["edad_estandarizada"] = (df["edad"] - media) / desv
5. Normalización con Scikit‑Learn
Scikit‑Learn incluye transformadores profesionales para normalizar datos.
from sklearn.preprocessing import MinMaxScaler, StandardScaler
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df[["edad"]])
scaler2 = StandardScaler()
df_standard = scaler2.fit_transform(df[["edad"]])
Estos transformadores se usan en pipelines profesionales.
6. Ejercicios
- Normaliza una columna usando Min‑Max.
- Estandariza una columna usando Z‑Score.
- Normaliza una columna con Scikit‑Learn.
- Explica cuándo usar Min‑Max.
- Explica cuándo usar Z‑Score.
# pista min-max
(x - min) / (max - min)
# pista z-score
(x - media) / desviación
7. Mini‑proyecto: Normalización completa
Toma un dataset real y normaliza todas las columnas numéricas usando:
- Min‑Max
- Z‑Score
- Scikit‑Learn