def GaussianMatrix(X,sigma):
row,col=X.shape
GassMatrix=np.zeros(shape=(row,row))
X=np.asarray(X)
i=0
for v_i in X:
j=0
for v_j in X:
GassMatrix[i,j]=Gaussian(v_i.T,v_j.T,sigma)
j+=1
i+=1
return GassMatrix
def Gaussian(x,z,sigma):
return np.exp((-(np.linalg.norm(x-z)**2))/(2*sigma**2))
这是我目前的做法。有什么办法可以使用矩阵操作来做到这一点? X是数据点。如何在numpy中高效计算高斯核矩阵?
你为什么带外积的平方根(即'kernel_raw = np.sqrt(np.outer(kern1d,kern1d ))')并且不只是乘以它们?我觉得我在这里错过了一些东西.. – trueter
请问你能提供一些细节,请问你的功能是如何工作的?为什么你需要'np.diff(st.norm.cdf(x))'? –
此外,您的实施给出的结果是不同于其他任何人在页面上:( –