выражение ядра с использованием numpy

#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))