Curso de Matemáticas para IA · Lección 11 de 180
Ecuaciones lineales para la IA: convierte una fórmula en una recta geométrica
Aprende cómo una ecuación lineal de dos variables se convierte en una recta, prueba sus puntos, trata los casos verticales y lee una curva de nivel del puntaje de un clasificador lineal.
Un clasificador pequeño asigna una puntuación a dos características:
Los pares de características , y parecen distintos, pero cada uno recibe la misma puntuación:
No son tres coincidencias aisladas. Se encuentran sobre una misma recta geométrica, y cada punto de esa recta recibe puntuación cero. Al terminar esta lección podrás convertir una ecuación lineal de dos variables en una recta, producir y probar soluciones, y reconocer la misma geometría dentro de una curva de nivel del puntaje de un clasificador lineal.
Resultado de aprendizaje: Convierte una ecuación lineal de dos variables en una recta y prueba sus soluciones.
Esta lección se basa directamente en la Lección 9: Ecuaciones para IA, donde una ecuación se convirtió en una restricción que selecciona un conjunto solución. Aquí los valores permitidos son pares , y la geometría nos permite ver ese conjunto. La Lección 10: Leer una derivación de IA línea por línea aporta el hábito complementario: cada transformación debe conservar exactamente los mismos puntos.
El sitio web oficial Mathematics for Machine Learning sitúa los sistemas de ecuaciones lineales al comienzo del álgebra lineal. Su Sección 2.1 explica la perspectiva geométrica: una ecuación en dos variables representa una recta y un sistema pregunta dónde se intersectan esas rectas. Esta lección aísla los fundamentos de una sola recta. Sus ejemplos, código, visualización y evaluaciones son originales, y la siguiente lección añadirá la segunda ecuación.
Una ecuación describe un lugar
Considera la ecuación general de dos variables
donde e son coordenadas reales y , y son coeficientes reales fijos. La ecuación es lineal porque e solo aparecen a la primera potencia, no se multiplican entre sí y solo se multiplican por números fijos.
Supón que . Resta de ambos lados y luego divide por el número no nulo conocido :
Esta es la forma pendiente-intersección, . La pendiente es : aumentar una unidad cambia en unidades mientras la restricción se mantiene. La intersección con el eje vertical es , alcanzada cuando .
La fórmula reordenada hace más que facilitar el trazado. Expone una elección libre. Elige cualquier real y la ecuación calcula exactamente un correspondiente. A medida que varía continuamente, el punto solución recorre una recta, no una colección finita de puntos.
Una recta resuelta muestra pendiente, intersecciones y puntos
Trabajemos con
Aquí , y . Como no es cero, es válido despejar :
La recta tiene pendiente . Si aumenta en , disminuye en . Ese cambio emparejado mantiene fijo el lado izquierdo porque
Un residuo convierte esa prueba de verdad en un número:
Los puntos de la recta tienen residuo . Un residuo distinto de cero da tanto una prueba fallida como un signo: positivo significa que la suma ponderada supera y negativo que está por debajo de .
| Punto candidato | Sustitución en | Residuo | Veredicto |
|---|---|---|---|
| En la recta | |||
| En la recta | |||
| En la recta | |||
| Fuera de la recta |
Dos puntos distintos bastan para dibujar esta recta, pero no son todo el conjunto solución. La visualización controlada hace tangible la familia que falta.
| Cantidad | Valor actual | Cómo se obtiene |
|---|---|---|
| Coordenada x | 2 | Elegida con el control de rango |
| Coordenada y | 3 | (12 − 3 × 2) ÷ 2 |
| Residuo | 0 | 3 × 2 + 2 × 3 − 12 |
El primer estado renderizado por el servidor es , y la tabla situada bajo el gráfico contiene el mismo cálculo. La recta no necesita JavaScript para expresar su idea matemática; la hidratación añade la posibilidad de elegir otro y observar cómo cambia el correspondiente. El control usa pasos fijos de un cuarto de unidad para la inspección, mientras que el parámetro matemático puede ser cualquier número real.
Un parámetro representa toda la recta
Escribir varios puntos sugiere un patrón, pero un parámetro los describe todos a la vez. Sea cualquier número real y define
Cada par de esta familia es una solución porque
La recíproca también importa. Cualquier par que satisfaga debe satisfacer también . Al elegir , ese par queda en la familia parametrizada. Juntas, ambas direcciones muestran que la parametrización incluye cada punto de la recta y ningún punto fuera de ella.
Por eso una ventana gráfica nunca contiene todo el objeto matemático. Los píxeles y las coordenadas muestreadas son finitos; la recta es el conjunto solución infinito especificado por la ecuación.
NumPy genera puntos; la ecuación original los verifica
El código debe reflejar el álgebra. La documentación de NumPy para linspace indica que devuelve muestras espaciadas uniformemente en un intervalo especificado. Genera algunos valores de , calcula sus valores correspondientes de y después prueba la restricción original, en lugar de confiar ciegamente en la fórmula reordenada:
import numpy as np
import matplotlib.pyplot as plt
# 3x + 2y = 12 -> y = (12 - 3x) / 2
x = np.linspace(-2.0, 6.0, num=5)
y = (12.0 - 3.0 * x) / 2.0
residual = 3.0 * x + 2.0 * y - 12.0
print("x:", x)
print("y:", y)
print("residual:", residual)
print("on line:", np.isclose(residual, 0.0, rtol=0.0, atol=1e-12))
candidates = np.array([[2.0, 3.0], [2.0, 4.0], [4.0, 0.0]])
candidate_residual = 3.0 * candidates[:, 0] + 2.0 * candidates[:, 1] - 12.0
print("candidate residual:", candidate_residual)
print(
"candidate on line:",
np.isclose(candidate_residual, 0.0, rtol=0.0, atol=1e-12),
)
plt.plot(x, y, label="3x + 2y = 12")
plt.plot(candidates[:, 0], candidates[:, 1], "o", label="tested points")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()
La salida ejecutada es:
x: [-2. 0. 2. 4. 6.]
y: [ 9. 6. 3. 0. -3.]
residual: [0. 0. 0. 0. 0.]
on line: [ True True True True True]
candidate residual: [0. 2. 0.]
candidate on line: [ True False True]
np.isclose compara valores de coma flotante con una tolerancia explícita. Aquí rtol=0.0 y atol=1e-12 significan «aceptar un residuo cuyo valor absoluto sea como máximo ». Es una decisión de ingeniería numérica a la escala de este ejemplo, no una demostración simbólica de que la ecuación se cumple. La demostración provino del álgebra; el código comprueba que esta implementación coincide.
La llamada de trazado sigue el contrato de plot de Matplotlib: los arrays proporcionados dan las coordenadas horizontal y vertical de los nodos de la recta. Un gráfico más denso se vería más suave, pero no crearía más soluciones matemáticas.
El contorno de un clasificador es la misma ecuación con nombres de características
Volvamos a la puntuación inicial:
Aquí y son características de entrada, y son pesos fijos y es una intersección. Una curva de nivel del puntaje reúne todos los pares de características que reciben una puntuación elegida. La curva de nivel de puntuación cero satisface
Es una recta. Moverse de a aumenta en y reduce en , sin cambiar la puntuación:
Esta forma no se inventó para el diagrama. Un ejemplo oficial de LinearSVC de scikit-learn muestra la función de decisión calculada como una matriz de características multiplicada por coeficientes aprendidos más una intersección. La documentación de RidgeClassifier de scikit-learn también afirma que su puntuación de confianza binaria es proporcional a la distancia con signo al hiperplano separador y documenta que una puntuación superior a cero predice su segunda clase.
Para este clasificador educativo, elige la regla explícita
Según esta convención, la curva de nivel cero es la frontera de decisión: cruzarla cambia la clase predicha. Los puntos de un lado tienen puntuación positiva y los del otro puntuación negativa. La recta por sí sola no especifica la regla para empates ni los nombres de las clases; pertenecen a la convención de predicción. La puntuación bruta tampoco es automáticamente una probabilidad.
| Par de características | Cálculo de la puntuación | Puntuación | Resultado según la regla indicada |
|---|---|---|---|
| Clase B, en la frontera | |||
| Clase A | |||
| Clase B |
Dividir por cero revela los casos que faltan
La frase « es una recta» necesita una condición: y no pueden ser ambos cero. Despejar necesita la condición local más fuerte .
| Caso de los coeficientes | Conjunto solución | Resultado geométrico |
|---|---|---|
| Recta no vertical | ||
| , | y cualquier real | Recta vertical |
| , | y cualquier real | Recta horizontal |
| , | Todo | Todo el plano, no una recta |
| , | No hay soluciones | El conjunto vacío, no una recta |
Por ejemplo, se simplifica a . Todo punto funciona, así que la recta es vertical. Intentar producir dividiendo por no es una ruta incómoda: no está definido. Una recta vertical no tiene pendiente finita porque su coordenada no cambia mientras puede hacerlo.
Hay otra idea práctica equivocada que conviene evitar. Dos puntos trazados pueden determinar una recta no degenerada, pero superar dos pruebas no demuestra que un código cualquiera represente la ecuación prevista. Un coeficiente intercambiado aún puede poner esos puntos concretos en los lugares esperados. Calcula el residuo para varios puntos elegidos deliberadamente, incluido uno fuera de la recta, y conserva la derivación algebraica como fuente de verdad.
Una restricción más convertirá las rectas en intersecciones
Una ecuación deja una coordenada libre: elige y la recta determina ; o, para una recta vertical, elige mientras permanece fijo. Esa libertad explica por qué una sola ecuación suele tener infinitas soluciones en pares de coordenadas.
La siguiente lección impondrá una segunda ecuación al mismo par. Entonces una solución deberá estar en ambas rectas a la vez. La prueba de punto sobre la recta desarrollada aquí se convertirá en una prueba de intersección, y la geometría mostrará por qué un sistema puede tener una solución, ninguna solución o una recta compartida completa.
Comprueba tu comprensión
Pregunta 1
Convierte 4x + 2y = 8 a la forma pendiente-intersección. Indica la pendiente y las dos intersecciones con los ejes, mostrando cada paso.
Mostrar la solución paso a paso
Como el coeficiente de es el número no nulo , despeja con pasos reversibles:
Comparar con da la pendiente y la intersección con el eje vertical , así que una intersección es . Para la intersección con el eje horizontal, fija :
La otra intersección es . Ambas satisfacen la ecuación original: y .
Pregunta 2
Prueba los puntos (3, 1), (1, 3) y (0, 4) en 2x + y = 7. Calcula un residuo para cada uno y clasifícalo como situado en la recta o fuera de ella.
Mostrar la solución paso a paso
Usa el residuo :
Solo tiene residuo cero, así que está en la recta. Los otros dos puntos están fuera de ella. Sus residuos negativos significan que sus sumas ponderadas, y , quedan por debajo del valor requerido .
Pregunta 3
Parametriza todas las soluciones de x − 3y = 6 usando un parámetro real, y demuestra las dos direcciones de la igualdad de conjuntos.
Mostrar la solución paso a paso
Elige para cualquier . Despejar da
Así, la familia propuesta es
Primero, cada par listado funciona porque
Segundo, cualquier solución de la ecuación original satisface . Al fijar , esa solución se escribe como . La primera dirección excluye los puntos fuera de la recta; la segunda garantiza que no se omite ninguna solución.
Pregunta 4
Un estudiante reescribe 5x + 0y = 10 como y = (10 − 5x) / 0 y concluye que la ecuación no tiene gráfica. Diagnostica el error y proporciona el conjunto solución correcto.
Mostrar la solución paso a paso
La transformación intentada divide por el coeficiente de , que es cero. Dividir por cero no está definido, así que ese paso no puede conservar el conjunto solución.
Trabaja a partir de la ecuación original:
La ecuación no impone ninguna restricción sobre . Su conjunto solución es
la recta vertical . La gráfica existe; solo que no está disponible una forma pendiente-intersección con pendiente finita.
Pregunta 5
Clasifica los conjuntos solución de 0x + 0y = 0 y 0x + 0y = 4. Explica por qué ninguna de las dos ecuaciones describe una sola recta.
Mostrar la solución paso a paso
Para todo par real ,
Por tanto, el primer conjunto solución es todo , el plano de coordenadas completo. No selecciona una sola recta.
La segunda ecuación se simplifica a , que es falsa para toda asignación. Su conjunto solución es , el conjunto vacío. No contiene ninguna recta. Estos casos explican por qué la definición de recta exige que al menos uno de o sea distinto de cero.
Pregunta 6
Para la puntuación s(x₁, x₂) = −x₁ + 2x₂ − 4, encuentra la curva de nivel de puntuación cero y clasifica (0, 3), (2, 3) y (4, 3) usando la clase A para puntuaciones positivas y la clase B en los demás casos.
Mostrar la solución paso a paso
Iguala la puntuación a cero y despeja :
Esta recta es la curva de nivel de puntuación cero. Ahora evalúa los tres puntos:
Según la convención indicada, es de clase A, mientras que y son de clase B. El punto está exactamente en la frontera. Otra regla para empates podría asignar el punto de puntuación cero de otra manera, así que la ecuación por sí sola no determina esa etiqueta.
Pregunta 7
Depura esta comprobación de NumPy: on_line = (3 * x + 2 * y == 12). Escribe una comprobación del residuo que tenga en cuenta una tolerancia y explica qué puede y qué no puede establecer.
Mostrar la solución paso a paso
Calcula primero el residuo y después compáralo con cero usando una tolerancia elegida para la escala del cálculo:
residual = 3.0 * x + 2.0 * y - 12.0
on_line = np.isclose(residual, 0.0, rtol=0.0, atol=1e-12)Esto acepta un elemento cuando . Evita exigir igualdad bit a bit después de la aritmética de coma flotante, donde el redondeo puede dejar un residuo diminuto distinto de cero.
El resultado prueba los arrays numéricos proporcionados y esta tolerancia. No puede demostrar la identidad simbólica para cada valor de parámetro real, y un atol demasiado grande podría aceptar incorrectamente puntos fuera de la recta. La derivación establece la fórmula; la comprobación numérica ayuda a detectar errores de implementación.
Fuentes
- Mathematics for Machine Learning companion website
- Mathematics for Machine Learning book PDF
- NumPy documentation: numpy.linspace
- NumPy documentation: numpy.isclose
- Matplotlib documentation: matplotlib.pyplot.plot
- scikit-learn documentation: RidgeClassifier
- scikit-learn example: Plot the support vectors in LinearSVC