Curso de Matemáticas para IA · Lección 33 de 180
El rango de una matriz cuenta la información independiente en las características de IA
Calcula el rango de una matriz mediante pivotes o características, relaciona las perspectivas de filas y columnas, y usa valores singulares para detectar datos redundantes.
Un conjunto de datos puede tener tres columnas de características y, aun así, contener solo dos direcciones independientes de variación. Esta diferencia importa cuando un modelo intenta asignar efectos separados a características que siempre varían juntas. El rango de una matriz cuenta sus direcciones independientes, tanto si examinamos las columnas de características como si observamos las filas de muestras.
Al terminar la lección, podrás calcular el rango de una matriz buscando pivotes, explicar por qué las perspectivas de filas y columnas dan el mismo número y leer una vista previa de valores singulares sin considerar que todo valor pequeño es exactamente cero.
Objetivo de aprendizaje: Calcular el rango y relacionar las perspectivas de filas y columnas.
Esta lección reúne las ideas de la forma escalonada por filas y la dimensión: los pivotes identifican direcciones independientes y el rango las cuenta. La sección 2.6.2 de Mathematics for Machine Learning define el rango mediante filas y columnas linealmente independientes. La matriz de datos, la interpretación de características, el gráfico de valores singulares, los cálculos y los ejercicios de esta lección son originales.
Tres columnas pueden contener solo dos direcciones
Imagina cuatro sesiones descritas por los minutos de uso de una aplicación móvil, los minutos en un sitio web y el total de minutos activos. Cada sesión ocupa una fila y cada medición una columna:
En cada fila, la tercera característica se calcula sumando el tiempo móvil y el tiempo en el sitio web:
Por tanto, las tres columnas son dependientes. La columna del total sigue siendo una medición útil con nombre propio, pero no añade una dirección lineal nueva a esta matriz concreta. Las dos primeras columnas son independientes: en la tercera fila, solo la columna web es distinta de cero, lo que descarta cualquier múltiplo no nulo de esa columna. Después, la primera fila descarta cualquier múltiplo no nulo de la columna móvil. Así, el espacio columna tiene dimensión dos.
Aquí, representa las sesiones y las características, por lo que el rango no puede superar tres. Ya hemos demostrado que las tres columnas son dependientes y que las dos primeras son independientes. Por tanto, .
Los pivotes de las filas permiten calcular el rango
Al resolver un sistema lineal, también hay que aplicar las operaciones por filas al lado derecho para conservar las soluciones. En esta matriz de características, la eliminación conserva el rango y revela los pivotes. Primero sustituye la fila 2 por la fila 2 menos dos veces la fila 1 y, después, sustituye la fila 4 por la fila 4 menos la fila 1. A continuación, resta la fila 3 de la nueva fila 4 y mueve la tercera fila no nula a la segunda posición:
Hay dos filas no nulas y dos columnas pivote, así que el rango es dos. Las columnas primera y segunda de la matriz original forman una base de su espacio columna; la tercera no tiene pivote porque es la suma de las dos primeras.
La perspectiva de las filas llega directamente al mismo resultado. Escribe las filas de muestra como . La segunda fila es y la cuarta es . Las filas primera y tercera son independientes, por lo que el espacio fila también tiene dimensión dos. En general, el rango fila y el rango columna coinciden para toda matriz finita, incluidas las rectangulares. La transposición intercambia esos dos espacios, pero no cambia cuántas direcciones independientes contienen.
Los valores singulares muestran las direcciones
Para matrices ruidosas o grandes, el software suele estimar el rango mediante una descomposición en valores singulares (SVD). La SVD representa la matriz como , donde las entradas diagonales de son valores singulares no negativos ordenados de mayor a menor. Cada valor indica la intensidad con que la matriz actúa a lo largo de un par de direcciones. Un cero exacto significa que esa dirección no está presente.
En este ejemplo, los valores singulares son aproximadamente , y cero (salvo el redondeo de punto flotante). Al dividirlos por el mayor obtenemos una vista previa independiente de la escala: , y aproximadamente . La tercera barra desaparece porque la característica de tiempo total es exactamente la suma de las otras. La segunda dirección es menor que la primera, pero no es cero. Estos cocientes no son porcentajes de varianza explicada: los valores singulares muestran la escala, mientras que sus cuadrados son los valores propios de . En datos centrados, esos cuadrados siguen la varianza en las direcciones correspondientes, salvo por un factor de normalización común.
Vista previa de valores singulares
La matriz de características conserva dos direcciones
Cada barra muestra un valor singular dividido por el mayor. La tercera dirección es cero, salvo el redondeo de punto flotante, porque el tiempo total es la suma de las otras características.
- Primera dirección1.000
- Segunda dirección0.059
- Tercera dirección≈ 0
El gráfico es una vista previa de una matriz, no un umbral universal. matrix_rank de NumPy cuenta los valores singulares que superan una tolerancia. De forma predeterminada, esa tolerancia depende del mayor valor singular, la dimensión más grande de la matriz y la precisión de punto flotante del tipo de datos. Esto permite tratar el redondeo en dependencias exactas; si el ruido de medición supera el error de punto flotante, puede convenir otra tolerancia. La rutina svd devuelve los valores singulares en orden descendente.
import numpy as np
X = np.array([
[1, 2, 3],
[2, 4, 6],
[0, 1, 1],
[1, 3, 4],
], dtype=float)
singular_values = np.linalg.svd(X, compute_uv=False)
rank_columns = np.linalg.matrix_rank(X)
rank_rows = np.linalg.matrix_rank(X.T)
print(X.shape) # (4, 3)
print(np.round(singular_values, 3)) # [9.882 0.581 0. ]
print(rank_columns, rank_rows) # 2 2
La SVD de punto flotante puede devolver un número positivo diminuto cuando la aritmética exacta daría cero. La tolerancia de NumPy clasifica ese valor como cero para estimar el rango. El 0. que se muestra es un resultado redondeado, no una afirmación de que el valor calculado en todos los ordenadores sea exactamente cero bit a bit.
El rango identifica pesos redundantes del modelo
Un modelo lineal sin término independiente y con pesos predice los resultados de las cuatro sesiones como . Sean los pesos del tiempo móvil, web y total. Como el tiempo total es la suma de las dos primeras características,
Solo dos pesos combinados afectan a las predicciones, aunque el modelo almacena tres. Para cualquier número , sustituir por mantiene todas las predicciones. En este conjunto de datos, un rango de dos significa que no se pueden identificar de forma única los tres coeficientes solo a partir de las predicciones. La regularización puede seleccionar un conjunto de pesos, pero el cálculo del rango por sí solo no indica qué característica merece una interpretación causal o semántica.
Esta es la aplicación a la IA: el rango mide la diversidad lineal efectiva de características en una matriz de datos. Puede revelar características derivadas redundantes antes de que compliquen la interpretación de los coeficientes o el ajuste por mínimos cuadrados. El número no mide toda la información de un conjunto de datos, no predice la precisión del modelo ni captura relaciones no lineales. El rango puede cambiar si cambian las filas de datos, las definiciones de las características o el preprocesamiento.
La dependencia aproximada requiere una tolerancia explícita
El total construido en el ejemplo es una suma exacta. En mediciones reales, puede cumplirse . Entonces, el rango matemático exacto podría ser tres, aunque el valor singular más pequeño sea diminuto. El rango numérico puede considerar despreciable esa dirección si queda por debajo de una tolerancia elegida. Si esta diferencia afecta a una decisión, indica la tolerancia y la escala de los datos.
El escalado de características también cambia el tamaño de los valores singulares. Multiplicar una columna por una constante distinta de cero conserva el rango exacto, pero puede cambiar los cocientes de valores singulares usados para juzgar un rango numérico o aproximado. Por eso, la estandarización no es un detalle superficial al interpretar valores singulares pequeños. El rango describe la dependencia lineal de la matriz representada con la codificación elegida; no asigna una cantidad fija de información semántica a cada columna.
Si una matriz tiene columnas de características, pero solo direcciones independientes, la forma escalonada por filas muestra qué columnas pueden servir como base, mientras que los valores singulares indican la intensidad numérica de esas direcciones. El siguiente paso consiste en preguntar a qué transforma una matriz y qué direcciones de entrada pierde: el núcleo y la imagen hacen explícitas esas dos preguntas.
Comprueba lo que has aprendido
Pregunta 1
Para una matriz de 5 × 3, ¿cuál es el rango máximo posible y qué implica un rango de 2 para sus columnas y filas?
Mostrar la solución paso a paso
El rango máximo es . Si el rango es dos, el espacio columna tiene dimensión dos, así que solo dos columnas pueden ser independientes y al menos una de las tres es combinación de las demás. El espacio fila también tiene dimensión dos, es decir, solo dos de las cinco filas son independientes. Esto no significa que la matriz tenga solo dos elementos o dos registros.
Pregunta 2
En la matriz de sesiones, verifica la relación entre columnas que hace redundante una característica. ¿Qué dos columnas son independientes?
Mostrar la solución paso a paso
Lee las columnas como vectores: , y . Componente a componente, , así que las tres son dependientes. Las dos primeras son independientes: una combinación tiene en la tercera coordenada y, después, en la primera. Abarcan un espacio columna bidimensional.
Pregunta 3
La segunda fila es el doble de la primera, y la cuarta es la suma de la primera y la tercera. ¿Por qué esto da un rango fila de 2?
Mostrar la solución paso a paso
Esas dos igualdades muestran que las filas segunda y cuarta no añaden nuevas direcciones. Las filas primera y tercera son independientes: si , la primera coordenada da y la segunda da . Por tanto, dos filas independientes forman una base del espacio fila, que tiene dimensión dos.
Pregunta 4
Tras reducir por filas una matriz, quedan tres filas no nulas y las columnas pivote son la 1, la 2 y la 4. ¿Cuál es su rango y qué columnas originales forman una base del espacio columna?
Mostrar la solución paso a paso
Hay tres pivotes, así que el rango es tres. Para obtener una base del espacio columna original, toma las columnas 1, 2 y 4 de la matriz original, no de la matriz reducida. Las operaciones por filas revelan qué columnas originales son independientes, pero pueden modificar las propias columnas.
Pregunta 5
¿Por qué <code>np.linalg.svd</code> podría devolver un tercer valor singular positivo muy pequeño para la relación exacta entre características de esta lección, mientras que <code>np.linalg.matrix_rank</code> devuelve 2?
Mostrar la solución paso a paso
La aritmética de punto flotante redondea los cálculos intermedios, así que la SVD puede no producir un cero bit a bit aunque las columnas de entrada almacenadas sean exactamente dependientes. matrix_rank compara los valores singulares con una tolerancia; el valor diminuto queda por debajo del umbral predeterminado de NumPy y se cuenta como cero. La estimación es numérica y depende de la tolerancia y del tipo de datos.
Pregunta 6
Demuestra por qué hay infinitas ternas de coeficientes que producen las mismas predicciones cuando el tiempo total equivale al tiempo móvil más el tiempo web.
Mostrar la solución paso a paso
El vector de predicciones es , que se simplifica a . Para cualquier , la sustitución conserva los dos pesos combinados: , y lo mismo sucede con el peso web. Por tanto, las predicciones no cambian y los tres pesos originales no quedan determinados de forma única por ellas.
Pregunta 7
Una matriz tiene valores singulares 8, 0.4 y 0.001. ¿Eso demuestra que su rango exacto es 2? ¿Qué información adicional ayudaría a determinar un rango numérico?
Mostrar la solución paso a paso
No. Los tres valores singulares son positivos, así que si fueran valores exactos, el rango exacto sería tres. El tercer valor puede considerarse despreciable para un rango numérico o aproximado, pero esa decisión requiere una tolerancia relacionada con la escala de la matriz, la precisión de punto flotante, el ruido de medición y la tarea posterior. Los cocientes por sí solos no establecen un umbral universal.
Pregunta 8
Si dos características son exactamente proporcionales en la matriz de entrenamiento, ¿basta el rango para afirmar que una de ellas es inútil en toda predicción futura? Explica el alcance de la conclusión.
Mostrar la solución paso a paso
El rango describe la dependencia lineal entre las columnas de características de la matriz analizada. La proporcionalidad puede deberse a una fórmula que también se cumple para registros futuros; en ese caso, una columna no aporta una nueva dirección lineal. O puede ser una coincidencia de una muestra limitada que no se repita con datos nuevos. El rango por sí solo no permite determinar qué caso se cumple ni dice nada sobre la utilidad no lineal o la precisión predictiva.