#numpy
#numpy
Вопрос:
У меня есть ядро Лапласа, которое записывается так, как k(x1,x2) = exp(-0.5||x1-x2||)
я его записываю как
k = np.exp( - 0.5 * np.sqrt ( np.dot (x1,x1) np.dot (x2,x2) - 2 * np.dot(x1,x2)))
Правильно ли это?
Также, если у меня есть ядро k(x1,x2) = exp(-0.5 ||x1-x2||^2)
, я записываю его как
k = np.exp (-0.5 * (np.dot(x1,x1) np.dot(x2,x2)- 2 * np.dot(x1,x2)))
Правильно ли это?
Комментарии:
1. Какова размерность
x1
иx2
? Если они являются скалярами или векторами, это нормально. Если они являются тензорами второго порядка (матрицами), вам нужно транспонировать туда. Если они выше, это усложняется.
Ответ №1:
Вы можете напрямую вычислить норму массива, используя : numpy.linalg.norm(x)
import numpy as np
k = np.exp(-0.5 * np.linalg.norm(x1-x2))