Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Python intermedio para IA, Unidad 6 — Archivos, formatos y datos reales, 6.2 — Limpieza de datos en Python puro ·

Normalización básica

Normalización básica

Introducción

La normalización es un paso crucial en la limpieza y preparación de datos para el análisis y el aprendizaje automático. El proceso consiste en transformar los datos a una escala o formato común, lo cual es fundamental para que los algoritmos funcionen correctamente y para comparar datos entre diferentes conjuntos. En este artículo, exploraremos las técnicas básicas de normalización en Python puro, con ejemplos prácticos y un checklist de verificación.

Explicación principal

Escala de datos

La escala de los datos puede variar significativamente dependiendo de la fuente y el tipo de variable. Por ejemplo, algunas variables pueden estar en escalas muy diferentes, lo que puede afectar al rendimiento del modelo. La normalización es una técnica para transformar todas las variables a una misma escala.

Ejemplo: Normalización de datos

Supongamos que tenemos un conjunto de datos con dos columnas: edad y altura. Vamos a normalizar estos datos en la escala [0, 1].

import numpy as np

# Datos de ejemplo
data = {
    'edad': [25, 30, 40, 60, 70],
    'altura': [1.65, 1.75, 1.80, 1.90, 2.00]
}

# Función de normalización
def normalize(data):
    min_data = np.min(data)
    max_data = np.max(data)
    normalized = (data - min_data) / (max_data - min_data)
    return normalized

# Normalizar datos
normalized_edad = normalize(np.array(data['edad']))
normalized_altura = normalize(np.array(data['altura']))

print("Normalización de edad:", normalized_edad)
print("Normalización de altura:", normalized_altura)

Métodos de normalización comunes

  1. Escalado a escala unitaria (Min-Max Scaling): Transforma los datos a una escala [0, 1].
  2. Escalado Z-score (Standardization): Transforma las variables a tener media 0 y desviación estándar 1.

Ejemplo de escalado Z-score

from sklearn.preprocessing import StandardScaler

# Datos de ejemplo con nueva columna 'peso'
data['peso'] = [65, 70, 80, 90, 100]

scaler = StandardScaler()
scaled_data = scaler.fit_transform(np.array(data).T)

print("Escalado Z-score:", scaled_data)

Errores típicos / trampas

Error 1: Ignorar variables categóricas

Es común que se normalicen solo las variables numéricas, olvidando variables categóricas. Estas pueden requerir técnicas de one-hot encoding o label encoding.

Error 2: Normalizar antes de escalamiento

El orden en el que se aplica la normalización y el escalamiento es importante. En general, se debe aplicar el escalamiento primero para asegurar que las variables numéricas están en la misma escala antes de normalizarlas.

Error 3: Normalizar datos sin valores faltantes

Antes de normalizar los datos, es necesario manejar adecuadamente los valores faltantes. Ignorarlos puede resultar en sesgos y malos resultados del modelo.

Checklist accionable

  1. Verifica que todos los datos numéricos estén incluidos: No olvides variables categóricas.
  2. Maneja los valores faltantes: Decide qué hacer con ellos (reemplazarlos, eliminarlos, etc.).
  3. Aplica el escalamiento antes de la normalización: Asegúrate de que las variables estén en la misma escala.
  4. Normaliza cada variable por separado: No mezcles datos entre variables para mantener la interpretabilidad.
  5. Revisa los resultados: Asegúrate de que los valores estén dentro del rango esperado.

Cierre

Siguientes pasos

  1. Aprende sobre escalado Z-score y normalización en profundidad.
  2. Explora otras técnicas de limpieza de datos como one-hot encoding para variables categóricas.
  3. Practica con diferentes conjuntos de datos para mejorar tus habilidades.

La normalización es un paso fundamental pero a menudo subestimado en el proceso de preparación de datos. Asegúrate de aplicarla correctamente y verás mejor rendimiento en tu modelo de aprendizaje automático.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).