Inicio · Parte 14 — Matemática de Machine Learning
frontera: wᵀx + b = 0
ancho del margen = 2/‖w‖
minimizar ‖w‖² sujeto a yᵢ(wᵀxᵢ + b) ≥ 1
Cuando dos clases son separables hay infinitos hiperplanos que las separan. SVM elige uno con un criterio concreto: el que deja el margen más ancho a ambos lados. La intuición es que un margen amplio es más robusto ante datos nuevos ligeramente desplazados.
La formalización es bonita. Si se normaliza para que los puntos más cercanos cumplan |wᵀx + b| = 1, el ancho del margen resulta ser 2/‖w‖. Maximizar el margen es por tanto minimizar ‖w‖, y el problema completo es un programa cuadrático con restricciones lineales: exactamente la clase 258.
La propiedad más característica es que la solución depende únicamente de los vectores de soporte, los puntos que tocan el margen. Todos los demás podrían eliminarse del conjunto de entrenamiento sin que la frontera cambiara. Eso hace el modelo compacto y explica su buen comportamiento con conjuntos pequeños.
Con clases no separables se introduce el margen blando: variables de holgura que permiten violaciones penalizadas, con un parámetro C que regula el compromiso entre margen ancho y errores tolerados. Combinado con el kernel de la clase siguiente, SVM fue el método dominante en clasificación entre 1995 y 2012.
SVM lineal sobre dos clases separables.
w = (1,151743 ; 1,007988) b = −0,82
‖w‖ = 1,53054
ancho del margen = 2/‖w‖ = 1,306729
vectores de soporte: 3
accuracy = 1,0
Solo 3 de las 80 observaciones determinan la frontera.
Las otras 77 podrían borrarse sin cambiar nada.
Si se quisiera un margen más ancho habría que reducir ‖w‖,
pero entonces las restricciones yᵢ(wᵀxᵢ+b) ≥ 1 dejarían
de cumplirse: el óptimo es el equilibrio exacto.
SVM: maximizar el margen equivale a minimizar ‖w‖.
python classes/part-14-matematica-de-machine-learning/289-svm-y-margen-maximo/lab.py
compmath run 289
wbnorma_de_wancho_del_margen_2/|w|vectores_de_soporteaccuracyobjetivohinge_losssolo_los_vectores_de_soporte_definen_la_frontera{
"w": [
1.151743,
1.007988
],
"b": -0.82,
"norma_de_w": 1.53054,
"ancho_del_margen_2/|w|": 1.306729,
"vectores_de_soporte": 3,
"accuracy": 1.0
}
Clasificación con pocos datos y muchas características, bioinformática, clasificación de texto y detección de anomalías con SVM de una clase.
Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.
10.1007/bf00994018 verificado en Crossref (2026-08-19).