Preparación de datos para aprendizaje automático en Python
Los modelos de aprendizaje automático aprenden de números, y aprenden mejor cuando las variables tienen escalas parecidas. La normalización y la estandarización reescalan los datos, y la multiplicación de matrices es la forma en que los modelos combinan muchas variables a la vez.
El concepto en palabras sencillas
Los modelos de aprendizaje automático aprenden de números, y aprenden mejor cuando las variables tienen escalas parecidas. La normalización y la estandarización reescalan los datos, y la multiplicación de matrices es la forma en que los modelos combinan muchas variables a la vez.
Escala variables con normalización min-max y estandarización z-score, y multiplica matrices a mano.
Ideas clave
- Variables con escalas muy distintas hacen que los números grandes dominen el modelo.
- Min-max mantiene los valores entre 0 y 1; los z-scores conservan la forma pero la centran en 0.
- Calcula los valores de escalado con los datos de entrenamiento y reutilízalos para los datos nuevos.
- Un producto de matrices A × B necesita que el número de columnas de A coincida con las filas de B.
¿Cuándo se utiliza?
- Entender qué pasa dentro de las redes neuronales y las bibliotecas de IA.
- Aprender la idea antes de implementarla en los retos correspondientes.
- Prepararte para cursos de aprendizaje automático, entrevistas y proyectos.
Pruébalo en acción
Arrastra x5 para crear un valor atípico y compara cómo reaccionan min-max y z-score. Señala una celda de A·B para ver qué fila y qué columna usa.
Código de ejemplo
import statistics
heights = [150, 160, 170, 180, 190]
# Min-max scaling squeezes values into the range 0..1.
low, high = min(heights), max(heights)
print("min-max:", [round((h - low) / (high - low), 2) for h in heights])
# Z-score standardization centres values on 0 with a spread of 1.
mean = statistics.mean(heights)
std = statistics.pstdev(heights)
print("z-scores:", [round((h - mean) / std, 2) for h in heights])
# Matrix multiplication: each output is a row of A dotted with a column of B.
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
product = [[sum(A[i][k] * B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]
print("A x B:", product)
Resultado esperado
min-max: [0.0, 0.25, 0.5, 0.75, 1.0]
z-scores: [-1.41, -0.71, 0.0, 0.71, 1.41]
A x B: [[19, 22], [43, 50]]
Cómo funciona
El escalado min-max lleva la estatura más baja a 0 y la más alta a 1. Los z-scores restan la media y dividen entre la desviación estándar, así que los valores quedan centrados en 0. En el producto de matrices, cada celda es una fila de A multiplicada elemento a elemento por una columna de B y luego sumada.
Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.
Ejercicios prácticos
Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.
- Cambia las entradas o los pesos y predice la salida antes de ejecutar.
- Imprime los valores intermedios para seguir cada paso del cálculo.
- Resuelve los retos enlazados abajo para implementar la idea por tu cuenta.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Multiplicación de matrices Multiplica dos matrices, la operación detrás de cada capa de una red neuronal. Fácil
- Normalización min-max Reescala una variable para que su valor mínimo sea 0 y su máximo sea 1. Fácil
- Estandarización por puntuación z Centra una variable en 0 y escálala a una desviación estándar de 1. Fácil