Matriz de Gram

Volviendo a nuestra fórmula objetivo:

Cálculo del margen

observamos que el resultado de calcular el producto escalar entre todos los puntos es una matriz cuadrada que tiene un ancho y un alto igual al número de muestras con las que estamos trabajando. Esta matriz formada por el producto escalar de un conjunto de vectores es la denominada en matemáticas Matriz de Gram:

Matriz de Gram

O dicho, con otras palabras, la obtención del clasificador depende de la relación entre todas las muestras entre sí, y esta relación viene dada por una matriz que contiene el producto escalar de los vectores que definen cada muestra.

Por ejemplo, si trabajamos en un dataset con tres muestras y dos características predictivas:

X = np.array([
    [2, -1],
    [1, 3],
    [4, 2]
])
X
array([[ 2, -1],
       [ 1,  3],
       [ 4,  2]])
y = [0, 1, 0]
y
[0, 1, 0]
Matriz de Gram

La matriz de Gram vendrá dada por la siguiente expresión:

np.dot(X, X.T)
array([[ 5, -1,  6],
       [-1, 10, 10],
       [ 6, 10, 20]])