En el preprocesamiento de datos, la normalización y la estandarización son técnicas cruciales para preparar los datos antes de aplicar algoritmos de Machine Learning. Estas técnicas ayudan a mejorar la precisión y la eficiencia de los modelos al asegurar que las características de los datos estén en una escala comparable.

Conceptos Clave

Normalización

La normalización es el proceso de ajustar los valores de las características para que caigan dentro de un rango específico, típicamente [0, 1]. Esto es útil cuando las características tienen diferentes unidades o escalas.

Fórmula de Normalización: \[ X_{\text{norm}} = \frac{X - X_{\min}}{X_{\max} - X_{\min}} \]

Donde:

  • \( X \) es el valor original.
  • \( X_{\min} \) es el valor mínimo de la característica.
  • \( X_{\max} \) es el valor máximo de la característica.

Estandarización

La estandarización transforma los datos para que tengan una media de 0 y una desviación estándar de 1. Esto es útil cuando los datos siguen una distribución normal.

Fórmula de Estandarización: \[ X_{\text{std}} = \frac{X - \mu}{\sigma} \]

Donde:

  • \( X \) es el valor original.
  • \( \mu \) es la media de la característica.
  • \( \sigma \) es la desviación estándar de la característica.

Ejemplo Práctico

Vamos a aplicar normalización y estandarización a un conjunto de datos utilizando Python y la biblioteca scikit-learn.

Paso 1: Importar las Bibliotecas Necesarias

import numpy as np
from sklearn.preprocessing import MinMaxScaler, StandardScaler

Paso 2: Crear un Conjunto de Datos de Ejemplo

# Datos de ejemplo
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9],
                 [10, 11, 12]])

Paso 3: Aplicar Normalización

# Crear el escalador de MinMax
min_max_scaler = MinMaxScaler()

# Ajustar y transformar los datos
data_normalized = min_max_scaler.fit_transform(data)

print("Datos Normalizados:")
print(data_normalized)

Salida Esperada:

Datos Normalizados:
[[0.   0.   0.  ]
 [0.33 0.33 0.33]
 [0.67 0.67 0.67]
 [1.   1.   1.  ]]

Paso 4: Aplicar Estandarización

# Crear el escalador estándar
standard_scaler = StandardScaler()

# Ajustar y transformar los datos
data_standardized = standard_scaler.fit_transform(data)

print("Datos Estandarizados:")
print(data_standardized)

Salida Esperada:

Datos Estandarizados:
[[-1.34164079 -1.34164079 -1.34164079]
 [-0.4472136  -0.4472136  -0.4472136 ]
 [ 0.4472136   0.4472136   0.4472136 ]
 [ 1.34164079  1.34164079  1.34164079]]

Ejercicio Práctico

Ejercicio 1: Normalización

Dado el siguiente conjunto de datos, aplique la normalización utilizando MinMaxScaler de scikit-learn.

data = np.array([[15, 20, 35],
                 [25, 30, 45],
                 [35, 40, 55],
                 [45, 50, 65]])

Solución:

from sklearn.preprocessing import MinMaxScaler

# Crear el escalador de MinMax
min_max_scaler = MinMaxScaler()

# Ajustar y transformar los datos
data_normalized = min_max_scaler.fit_transform(data)

print("Datos Normalizados:")
print(data_normalized)

Ejercicio 2: Estandarización

Dado el siguiente conjunto de datos, aplique la estandarización utilizando StandardScaler de scikit-learn.

data = np.array([[10, 20, 30],
                 [20, 30, 40],
                 [30, 40, 50],
                 [40, 50, 60]])

Solución:

from sklearn.preprocessing import StandardScaler

# Crear el escalador estándar
standard_scaler = StandardScaler()

# Ajustar y transformar los datos
data_standardized = standard_scaler.fit_transform(data)

print("Datos Estandarizados:")
print(data_standardized)

Conclusión

La normalización y la estandarización son técnicas esenciales en el preprocesamiento de datos para Machine Learning. La normalización ajusta los valores de las características a un rango específico, mientras que la estandarización transforma los datos para que tengan una media de 0 y una desviación estándar de 1. Estas técnicas aseguran que las características estén en una escala comparable, mejorando así la precisión y la eficiencia de los modelos de Machine Learning.

En el siguiente tema, abordaremos el manejo de datos faltantes, una parte crucial del preprocesamiento de datos.

Curso de Machine Learning

Módulo 1: Introducción al Machine Learning

Módulo 2: Fundamentos de Estadística y Probabilidad

Módulo 3: Preprocesamiento de Datos

Módulo 4: Algoritmos de Machine Learning Supervisado

Módulo 5: Algoritmos de Machine Learning No Supervisado

Módulo 6: Evaluación y Validación de Modelos

Módulo 7: Técnicas Avanzadas y Optimización

Módulo 8: Implementación y Despliegue de Modelos

Módulo 9: Proyectos Prácticos

Módulo 10: Recursos Adicionales

© Copyright 2024. Todos los derechos reservados