Jesus Ivan Villalobos de la Cruz
Esta clase me encanto!!
Daniel Erazo
ProfesorMe alegro que te haya encantado!
La matriz de covarianza es el resumen estadístico que revela la forma oculta de tus datos en machine learning. Aprenderás a interpretarla, calcular sus eigenvalores y eigenvectores con NumPy, y descubrir por qué es la base del análisis de componentes principales (PCA). Útil si trabajas con datos multivariados y quieres reducir dimensiones sin perder información.
Qué información contiene la matriz de covarianza
La matriz de covarianza es cuadrada y guarda dos tipos de información que cuentan cómo se comportan tus características [01:00].
En la diagonal principal encontrarás la varianza de cada característica, es decir, qué tan dispersos están sus valores respecto al promedio. Un número alto significa que los valores individuales tienden a alejarse de su media.
Fuera de la diagonal aparece la covarianza entre pares de características, y aquí está lo interesante:
¿Qué es la varianza en una matriz de covarianza? Es el valor en la diagonal principal que mide la dispersión de una característica respecto a su promedio. A mayor varianza, mayor dispersión de los datos.
Cómo calcular la matriz de covarianza con NumPy
En Google Colab, después de importar NumPy y Matplotlib, puedes construir una función que analice y grafique todo el proceso [03:30].
Por qué usar rowvar=False al calcular covarianza
La función np.cov(datos, rowvar=False) calcula la matriz de covarianza tomando las columnas como características. Por defecto, NumPy interpreta las filas como variables, pero en machine learning las columnas son las features, así que este parámetro es obligatorio.
Luego obtienes los eigenvalores y eigenvectores con np.linalg.eig(matriz_cov). Para que la visualización tenga sentido, conviene ordenar de mayor a menor usando np.argsort(eigenvalores)[::-1], ya que NumPy ordena por defecto de menor a mayor [05:30].
Por qué centrar los datos antes de graficar
Centrar los datos significa restarles su promedio con np.mean(datos, axis=0). Esto hace que la nube de puntos quede sobre el origen y los eigenvectores se vean alineados desde el (0,0). Es un paso visual, pero también conceptual: prepara el terreno para el análisis de componentes principales.
¿Por qué se usa la raíz cuadrada del eigenvalor para graficar? Porque los eigenvalores de la matriz de covarianza están elevados al cuadrado (son varianzas). Al sacarles raíz obtienes la desviación estándar, que sí representa una longitud real para dibujar la flecha del vector.
Qué nos dicen los eigenvectores sobre la forma de los datos
Al graficar tres escenarios con seis estudiantes y datos sintéticos, los resultados confirman la teoría [12:00].
Covarianza positiva: horas de estudio vs calificación
Con datos como (2 horas, 65), (3, 70), (5, 75), (6, 85), (8, 88) y (9, 94), la diagonal principal arroja varianzas de 7.5 para horas y 126.7 para calificaciones. La gran diferencia tiene sentido: las horas van de 2 a 9, mientras que las calificaciones van de 65 a 94.
Fuera de la diagonal aparece 30.3, un número grande y positivo. La elipse sube hacia la derecha y el eigenvector verde, el de mayor eigenvalor, marca la dirección de máxima información. El rojo solo captura ruido.
Covarianza negativa: horas de videojuegos vs calificación
Con datos como (10, 60), (8, 70), (7, 72), (5, 85), (3, 90) y (1, 95), las varianzas son 11.06 y 180.66. La covarianza fuera de la diagonal es un número negativo grande, porque cuando una variable sube la otra baja. La elipse cae hacia la derecha y el eigenvector principal sigue esa pendiente descendente.
Datos sin covarianza: ruido aleatorio
Generando 100 puntos con np.random.randn(100, 2) * np.array([10.0, 5.0]) y semilla 42, la covarianza fuera de la diagonal queda cercana a cero. La nube es circular (más ancha que alta) y los eigenvectores se alinean con los ejes X y Y, sin una dirección dominante.
Cómo se conecta esto con el análisis de componentes principales
Sin proponérnoslo del todo, hicimos PCA. La matriz de covarianza define la forma de los datos y sus eigenvectores localizan los ejes de máxima simetría [22:00].
La importancia de cada eje la mide su eigenvalor. Cuando un eje tiene un eigenvalor mucho mayor que el otro, PCA conserva solo ese eje y descarta el resto como ruido. Así puedes proyectar datos bidimensionales sobre una sola línea y reducir la dimensión sin perder información relevante.
¿Qué hace PCA con los eigenvectores? Los usa como nuevos ejes de coordenadas y conserva los que tienen mayor eigenvalor, descartando los de menor varianza. Esto reduce dimensiones manteniendo la información clave.
Ejercicio para practicar con covarianza y eigenvectores
Imagina dos características con fuerte covarianza positiva: años de experiencia y salario. Si la varianza del salario es mucho mayor que la de los años de experiencia, ¿la elipse será más vertical u horizontal? ¿Hacia dónde apuntará el eigenvector principal?
Comparte tu razonamiento en los comentarios.
Jesus Ivan Villalobos de la Cruz
Esta clase me encanto!!
Daniel Erazo
ProfesorMe alegro que te haya encantado!
Carlos Eduardo Cifuentes Sanabria
datos_pos = np.array([
[20,100],
[25,150],
[30,250],
[40,1000],
[45,1500],
[50,5000]
])
Me salió negativa
Juan Felipe Benavides
esta sin duda es una clase que hay que repasar!
Luis Felipe Rodríguez Zamora
Matriz de covarianza
Nos dice la relación entre las variables.
x con x es la varianza de x.
x con y es la covarianza de xy.
Si la covarianza es positiva nos indica que cuando una característica aumenta la otra también.
Eduardo José Álvarez
Team PlatziLa covarianza entre características es crucial porque revela su relación lineal, indicando si tienden a crecer o decrecer juntas. En Machine Learning, una covarianza alta puede señalar redundancia en los datos, mientras que una covarianza baja sugiere independencia, informando así la elección de modelos y la necesidad de técnicas como PCA para simplificar el conjunto de datos.