Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Álgebra lineal aplicada a IA, Unidad 5 — Sistemas lineales y modelos, 5.2 — Regresión lineal como problema matricial ·

Formulación matricial

Formulación matricial de la regresión lineal

Introducción

La regresión lineal es una técnica fundamental en machine learning y deep learning, utilizada para predecir valores continuos. Cuando se aplican conceptos de álgebra lineal a la regresión lineal, se puede obtener una formulación matricial que facilita su implementación y optimización computacional. En esta unidad del curso, exploraremos cómo representar y resolver problemas de regresión lineal en términos de matrices.

Explicación principal con ejemplos

En la regresión lineal, buscamos modelar una relación lineal entre una variable dependiente \(y\) y una o varias variables independientes \(x\). La ecuación general es:

\[ y = X \beta + \epsilon \]

donde:

  • \(y\) es un vector de salidas reales.
  • \(X\) es la matriz de características, donde cada fila representa un ejemplo y cada columna una característica.
  • \(\beta\) son los coeficientes del modelo que queremos estimar.
  • \(\epsilon\) es el error aleatorio.

La formulación matricial simplifica este proceso. Para obtener los coeficientes \(\beta\), se puede resolver la ecuación normal:

\[ X^T X \beta = X^T y \]

donde:

  • \(X^T\) denota la transpuesta de \(X\).

Ejemplo

Supongamos que tenemos un conjunto de datos con dos características (\(x_1, x_2\)) y una variable dependiente \(y\):

| \(x_1\) | \(x_2\) | \(y\) | |---------|---------|-------| | 1 | 3 | 4 | | 2 | 5 | 7 | | 3 | 6 | 9 |

Representamos estos datos en matrices:

\[ X = \begin{bmatrix} 1 & 3 \\ 2 & 5 \\ 3 & 6 \end{bmatrix}, \quad y = \begin{bmatrix} 4 \\ 7 \\ 9 \end{bmatrix} \]

Aplicando la fórmula, obtenemos:

\[ X^T X = \begin{bmatrix} 1 & 2 & 3 \\ 3 & 5 & 6 \end{bmatrix} \begin{bmatrix} 1 & 3 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} = \begin{bmatrix} 14 & 30 \\ 30 & 70 \end{bmatrix} \]

\[ X^T y = \begin{bmatrix} 1 & 2 & 3 \\ 3 & 5 & 6 \end{bmatrix} \begin{bmatrix} 4 \\ 7 \\ 9 \end{bmatrix} = \begin{bmatrix} 40 \\ 98 \end{bmatrix} \]

Entonces, la ecuación normal se convierte en:

\[ \beta = (X^T X)^{-1} X^T y \]

Calculando \( (X^T X)^{-1} \) y multiplicándolo por \(X^T y\), obtenemos los coeficientes \(\beta\).

Bloque de código

import numpy as np

# Datos
X = np.array([[1, 3], [2, 5], [3, 6]])
y = np.array([4, 7, 9])

# Formulación matricial
XT_X = np.dot(X.T, X)
beta = np.linalg.solve(XT_X, np.dot(X.T, y))

print("Coeficientes beta:", beta)

Errores típicos / trampas

  1. Condiciones mal condicionadas: Si \(X^T X\) es mal condicionado (tiene valores de autovalor muy grandes), el problema puede ser instable y los coeficientes estimados pueden tener errores significativos.
  1. Errores en la transpuesta: Es fácil cometer errores al trabajar con las matrices transpuestas, especialmente si se trabaja con código no vectorizado o mixto.
  1. Dimensión incorrecta de \(X\): La matriz \(X\) debe ser compatible en términos de dimensiones para realizar operaciones como la multiplicación y la transposición correctamente.

Checklist accionable

  1. Verifica que todas las características estén normalizadas.
  2. Asegúrate de que \(X^T X\) es invertible antes de resolver la ecuación.
  3. Usa librerías optimizadas para calcular inversas y productos matriciales.
  4. Verifica que los datos están correctamente transpuestos en cada paso.
  5. Comprueba las dimensiones de las matrices resultantes después de cada operación.

Siguientes pasos

  • Implementa la regresión lineal matricial con tu propio conjunto de datos.
  • Prueba el modelo con datos sintéticos para validar su funcionamiento.
  • Experimenta con diferentes normalizaciones y técnicas para mejorar la condición del sistema.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).