Cálculo da função de decisão do SVM manualmente

Estou tentando calcular a função de decisão de um classificador SVC manualmente (em vez de usar o método embutido) usando a biblioteca python SKLearn.

Eu tentei vários métodos, no entanto, só consigo obter o cálculo manual correspondente quandonão dimensionar meus dados.

z é um dado de teste (que foi dimensionado) e acho que as outras variáveis falam por si (também estou usando um kernel rbf, se isso não for óbvio no código).

Aqui estão os métodos que eu tentei:

1 método de loop:
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

No entanto, nenhum deles retorna o mesmo valor quedecision_function. Eu acho que pode ter algo a ver com redimensionar meus valores ou, mais provavelmente, é algo bobo que eu já procurei demais!

Qualquer ajuda seria apreciada.

questionAnswers(1)

yourAnswerToTheQuestion