【发布时间】:2021-11-24 18:17:34
【问题描述】:
我正在尝试为我的内核 k-means alg 实现 RBF 内核函数。这是我的公式。 然后我用Numpy实现了,但是有两层for循环,我在想怎么把它变成矩阵运算。因为如果我能做矩阵运算,处理我的 784 维数据会快很多。或者也许我的实现不正确?有人可以帮我吗?
import numpy as np
def get_gamma(X, Y):
gamma = 0
for x in X:
for y in Y:
tmp = x - y
gamma += tmp**2
gamma = gamma / (length**2)
return gamma
def kernel(X, Y, gamma):
up = np.sum(np.power(X-Y, 2))
res = np.exp(-*up/gamma)
return res
def kernel_distance(X, Y):
gamma = get_gamma(X, Y)
a = kernel(X, X, gamma)
b = kernel(Y, Y, gamma)
c = kernel(X, Y, gamma)
return np.sqrt(a+b-2*c)
【问题讨论】:
标签: python numpy machine-learning matrix k-means