Difusión
Parte de la sección Datos y gráficos del Journey de Machine Learning de Coddy. Lección 13 de 60.
Los modelos aprenden mejor cuando cada característica está alrededor de 0. Así que restas la media de cada columna a todos sus valores, y NumPy copia las medias en todas las filas:
En código, para las alturas y los pesos de tres personas:
data = np.array([[170, 60],
[180, 80],
[160, 70]])
print(data - data.mean(axis=0))Esto imprime:
[[ 0. -10.]
[ 10. 10.]
[-10. 0.]]Ese centrado es estandarización. La tabla ahora está centrada: cada valor indica a qué distancia se encuentra de la media de su columna.
Las medias tienen forma (2,): un valor por columna de la tabla (3, 2). Cualquier otra longitud provoca un error.
Desafío
FácilUna aplicación de fitness centra cada tabla antes del entrenamiento. El código inicial llama a center para dos tablas, users (3 características) y workouts (2), e imprime los resultados. Ahora mismo, center devuelve la tabla sin modificar.
Completa center para que reste la media de cada columna de esa columna, sea cual sea el número de columnas. Deja sin cambios las líneas que aparecen debajo.
Con dos usuarios y dos entrenamientos, el resultado tendría este aspecto:
Centered users:
[[-6. 7. -5.]
[ 6. -7. 5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
[ 10. 90.]]
Column means after centering: [0. 0.]Pruébalo tú mismo
import numpy as np
def center(table):
# Devuelve table con la media de cada columna restada
# Escribe tu código a continuación
return table
# Una fila por usuario: edad, frecuencia cardíaca en reposo, minutos de ejercicio al día
users = np.array([[25, 62, 30],
[31, 70, 45],
[40, 58, 20],
[29, 66, 25]])
# Una fila por entrenamiento: minutos, calorías quemadas
workouts = np.array([[30, 240],
[45, 410],
[20, 150],
[60, 520],
[35, 300]])
# No cambies las líneas siguientes
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Datos y gráficos
4Dar forma a los datos
Cambiar la forma de los arraysUnir arraysNúmeros aleatoriosRepaso: simulación de dados2Arrays de NumPy
Creación de arraysForma y tamañoRangos de númerosIndexación y segmentaciónRepaso: cuadrícula de temperaturas5Gráficos de líneas y de dispersión
Etiquetas y títulosGráficos de dispersiónVarias líneas y leyendasColores y marcadoresFiguras y ejesRepaso: pasos semanales3Matemáticas con arrays
Operaciones matemáticas con arrays completosEstadísticas resumidasEstadísticas por ejeDifusiónMáscaras booleanasRepaso: calificaciones de exámenes6Gráficos para datos
Gráficos de barrasHistogramasVarios gráficos en unoImágenes como matricesRepaso: informe de precipitacionesPractica por tu cuenta: Compilador de Python online