Calcular la función de decisión de SVM manualmente

Estoy intentando calcular la decisión_función de un clasificador SVC MANUALMENTE (en lugar de utilizar el método incorporado) utilizando la biblioteca SKLearn de Python.

He probado varios métodos, sin embargo, solo puedo hacer que el cálculo manual coincida cuandono lo hagas escalar mis datos.

z es un dato de prueba (que ha sido escalado) y creo que las otras variables hablan por sí mismas (también, estoy usando un kernel rbf si eso no es obvio por el código).

Aquí están los métodos que he probado:

1 método de bucle:
dec_func = 0
for j in range(np.shape(sup_vecs)[0]):

    norm2 = np.linalg.norm(sup_vecs[j, :] - z)**2 
    dec_func = dec_func + dual_coefs[0, j] * np.exp(-gamma*norm2)

dec_func += intercept
2 Método vectorizado
diff = sup_vecs - z
norm2 = np.sum(np.sqrt(diff*diff), 1)**2
dec_func = dual_coefs.dot(np.exp(-gamma_params*norm2)) + intercept

Sin embargo, ninguno de estos devuelve el mismo valor quedecision_function. ¡Creo que puede tener algo que ver con reescalar mis valores o más bien es algo tonto que he pasado por alto!

Cualquier ayuda sería apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta