Apéndice · Repaso de álgebra y notación

Este apéndice reúne el álgebra lineal mínima que el texto da por sabida y fija la notación que se usa en el resto del libro. No es un curso, sino un recordatorio compacto de los objetos —vectores y matrices— y de las operaciones —producto escalar, producto matricial, normas— que reaparecen al vectorizar cálculos con NumPy (cap. 7) y al ajustar modelos (caps. 13 y 14). Para un tratamiento completo, Hastie et al. (2009) y James et al. (2023) desarrollan justo el álgebra que necesita el aprendizaje automático.

Vectores

Un vector \(\mathbf{x} \in \mathbb{R}^{n}\) es una lista ordenada de \(n\) números reales, sus componentes \(x_1, \dots, x_n\); por convenio lo tratamos como columna, \(\mathbf{x} = (x_1, \dots, x_n)^{\top}\). En ciencia de datos un vector es casi siempre una observación —una fila de la tabla vista como punto en \(\mathbb{R}^{n}\)— o una característica —una columna—. Dos vectores de la misma longitud se suman componente a componente, y se multiplican por un escalar \(\alpha \in \mathbb{R}\) estirando cada componente: \[\mathbf{x} + \mathbf{y} = (x_1 + y_1, \dots, x_n + y_n)^{\top}, \qquad \alpha\,\mathbf{x} = (\alpha x_1, \dots, \alpha x_n)^{\top}.\] Estas dos operaciones son la base de la vectorización: NumPy las aplica al array completo, sin bucles en Python (cap. 7).

Producto escalar y norma

El producto escalar de dos vectores de \(\mathbb{R}^{n}\) resume su alineación en un único número: \[\mathbf{x} \cdot \mathbf{y} = \mathbf{x}^{\top}\mathbf{y} = \sum_{i=1}^{n} x_i\,y_i.\] A partir de él se define la norma euclídea —la longitud del vector— y, con ella, la distancia entre dos puntos: \[\lVert \mathbf{x} \rVert_2 = \sqrt{\mathbf{x}^{\top}\mathbf{x}} = \sqrt{\textstyle\sum_i x_i^{2}}, \qquad \lVert \mathbf{x} - \mathbf{y} \rVert_2 = \sqrt{\textstyle\sum_i (x_i - y_i)^{2}}.\] La norma \(L_1\), \(\lVert \mathbf{x} \rVert_1 = \sum_i \lvert x_i \rvert\), suma valores absolutos y aparece en la regularización lasso (cap. 14). Dos vectores son ortogonales cuando \(\mathbf{x}^{\top}\mathbf{y} = 0\); más en general, el coseno del ángulo que forman, \[\cos\theta = \frac{\mathbf{x}^{\top}\mathbf{y}}{\lVert \mathbf{x}\rVert_2\,\lVert \mathbf{y}\rVert_2},\] mide su similitud con independencia de la escala, y es la base de la similitud del coseno entre observaciones.

Matrices

Una matriz \(\mathbf{A} \in \mathbb{R}^{m \times n}\) es una tabla rectangular de \(m\) filas y \(n\) columnas, con entradas \(a_{ij}\). Su traspuesta \(\mathbf{A}^{\top} \in \mathbb{R}^{n \times m}\) intercambia filas por columnas, de modo que \((\mathbf{A}^{\top})_{ij} = a_{ji}\). Tres matrices reaparecen con nombre propio: la identidad \(\mathbf{I}\) —unos en la diagonal, ceros fuera; deja igual a cualquier vector, \(\mathbf{I}\mathbf{x} = \mathbf{x}\)—, las diagonales —solo con entradas en la diagonal— y las simétricas\(\mathbf{A} = \mathbf{A}^{\top}\)—, entre las que está toda matriz de covarianzas (cap. 11).

Producto matriz–vector y matriz–matriz

El producto matriz–vector \(\mathbf{A}\mathbf{x}\) combina las columnas de \(\mathbf{A}\) con los pesos que da \(\mathbf{x}\) y produce un vector de \(\mathbb{R}^{m}\); su componente \(i\) es el producto escalar de la fila \(i\) de \(\mathbf{A}\) con \(\mathbf{x}\). El producto matriz–matriz \(\mathbf{A}\mathbf{B}\) solo está definido cuando las dimensiones encajan\(\mathbf{A}\) de \(m\times n\) y \(\mathbf{B}\) de \(n\times p\), con resultado \(m\times p\)—, y su entrada \((i,j)\) es el producto escalar de la fila \(i\) de \(\mathbf{A}\) con la columna \(j\) de \(\mathbf{B}\): \[(\mathbf{A}\mathbf{B})_{ij} = \sum_{k=1}^{n} a_{ik}\,b_{kj}.\] El producto no es conmutativo —\(\mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A}\) en general— y se traspone invirtiendo el orden: \((\mathbf{A}\mathbf{B})^{\top} = \mathbf{B}^{\top}\mathbf{A}^{\top}\). En NumPy esta operación es el operador @ (cap. 7); confundir el orden o las dimensiones es la causa más común de error al vectorizar.

La matriz de diseño y la ecuación normal

Casi todo modelo lineal se escribe con una matriz de diseño \(\mathbf{X} \in \mathbb{R}^{n \times p}\): \(n\) observaciones en las filas, \(p\) características en las columnas. La predicción lineal de todas las observaciones a la vez es el vector \(\mathbf{X}\mathbf{\beta}\), con \(\mathbf{\beta} \in \mathbb{R}^{p}\) el vector de coeficientes. Ajustar por mínimos cuadrados es elegir el \(\mathbf{\beta}\) que minimiza la suma de cuadrados de los errores, \(\lVert \mathbf{X}\mathbf{\beta} - \mathbf{y}\rVert_2^{2}\), y la solución satisface la ecuación normal \[\mathbf{X}^{\top}\mathbf{X}\,\mathbf{\beta} = \mathbf{X}^{\top}\mathbf{y}.\] Esta es, por dentro, la ecuación que resuelve la regresión lineal de scikit-learn (cap. 13). Reconocerla —un producto de traspuesta por matriz, igualado a traspuesta por vector— es reconocer, bajo la etiqueta del modelo, las mismas operaciones de este apéndice.

Referencias

Hastie, Trevor, Robert Tibshirani, y Jerome Friedman. 2009. The Elements of Statistical Learning. 2.ª ed. Springer. https://doi.org/10.1007/978-0-387-84858-7.
James, Gareth, Daniela Witten, Trevor Hastie, Robert Tibshirani, y Jonathan Taylor. 2023. An Introduction to Statistical Learning with Applications in Python. Springer. https://doi.org/10.1007/978-3-031-38747-0.