【发布时间】:2011-11-15 13:08:01
【问题描述】:
我想以最快的方式在 python 中计算一个内核矩阵: 输入是一个矩阵 X= nsamples, nfeatues 并且输出应该是一个对称矩阵 D =nsamples, nsapmles
我现在正在使用的方法,即使是基于迭代器的方法,对于 for 循环似乎真的很慢......有人能想到更好的方法吗?
谢谢
到目前为止我的方法是:
from itertools import combinations
def computeKernel(X,dlambda):
nsamples=X.shape[0]
D=numpy.zeros((nsamples,nsamples))
for el in combinations(range(nsamples),2):
i,j=el
D[el]=quadraticChiDist(X[i,:],X[j,:])
D=D+D.T
D=numpy.exp(-dlambda*D/255)
D=numpy.eye(D)+D
return D
其中 quadraticChiDist 是对 X 中每对可能的行进行评估的函数
【问题讨论】:
标签: python numpy machine-learning svm