🧮 Computational Mathematics

Inicio · Parte 02 — Álgebra y funciones

060 — Capstone: construir y comparar modelos funcionales

basico clase 20 de 20 4 horas demostración capstone_model_fitting

Elegir modelo es comparar residuos sobre los mismos datos, no elegir la familia que parece más elegante.

Fórmulas

SSE = Σ(yᵢ − ŷᵢ)²
linealizar exponencial: ln y = ln a + b·x

Desarrollo

El capstone plantea la pregunta que cierra la parte: dados unos datos, ¿qué familia de funciones los describe? La respuesta no se decide mirando la gráfica ni por preferencia estética: se decide comparando el error de cada candidato sobre los mismos datos, con la misma métrica.

La suma de residuos al cuadrado (SSE) es el criterio más simple. Penaliza más los errores grandes que los pequeños, lo que la hace sensible a valores atípicos —tema de la clase 304— pero la convierte en el objetivo de mínimos cuadrados, que tiene solución cerrada (clase 131).

El truco central para ajustar un exponencial es linealizarlo: tomando logaritmos, y = a·e^(bx) se convierte en ln y = ln a + b·x, que es una recta. Ajustar por mínimos cuadrados en el espacio logarítmico y volver da los parámetros. Conviene saber que esto minimiza el error relativo, no el absoluto, lo que a veces es preferible y a veces no.

La honestidad del procedimiento exige dos advertencias. Primera: un SSE menor no demuestra que el modelo sea correcto, solo que ajusta mejor esos datos; un polinomio de grado suficiente ajusta cualquier cosa (clase 298). Segunda: la comparación solo es válida si ambos modelos se evalúan en la misma escala; comparar un SSE calculado en escala logarítmica con otro en escala lineal no significa nada.

Ejemplo trabajado

Decidir entre lineal y exponencial con seis puntos.

x:  1     2     3      4      5      6
y:  2.1   4.4   8.9   17.5   35.2   70.8

Pista: cada y es aproximadamente el doble del anterior
       → razón ≈ 2 constante → exponencial

Linealización: ln y contra x
  ln y:  0.74  1.48  2.19  2.86  3.56  4.26
  diferencias: ~0.70 constantes → recta ✓

Ajuste:  y = 1.055 · e^(0.702x)
         razón de crecimiento: e^0.702 = 2.018

SSE lineal:      ~1010
SSE exponencial: ~1.5
Modelo elegido: exponencial

Qué calcula el laboratorio

Capstone: ¿lineal, cuadrático o exponencial? Decidir con residuos.

python classes/part-02-algebra-y-funciones/060-capstone-construir-y-comparar-modelos-funcionales/lab.py
compmath run 060

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "datos": [
    [
      1.0,
      2.1
    ],
    [
      2.0,
      4.4
    ],
    [
      3.0,
      8.9
    ],
    [
      4.0,
      17.5
    ],
    [
      5.0,
      35.2
    ],
    [
      6.0,
      70.8
    ]
  ],
  "modelo_lineal_SSE": 672.9899999999999,
  "modelo_exponencial": "y = 1.067·e^(0.700x)",
  "modelo_exponencial_SSE": 0.2445659908138091,
  "razon_de_crecimiento": 2.0139876115621225,
  "modelo_elegido": "exponencial"
}

Errores comunes

Dónde se usa

Selección de modelos, ajuste de curvas de crecimiento, análisis de escalabilidad y la lectura de leyes de escala. Es el precursor directo de la regresión de la parte 14.

Idea rectora de la parte

Componer funciones es la operación que después llamaremos «capa» en una red neuronal.

Error a evitar

Aplicar log a valores no positivos sin declarar el dominio.

Conexión con IA

Una red neuronal es una composición de funciones parametrizadas. La sigmoide, la softmax y la log-verosimilitud son álgebra de exponenciales y logaritmos.

Bibliografía de la clase

Archivos de la clase