计算k均值算法的核密度估计

问题描述 投票:0回答:1

已经要求kde_numpyI使用np.linalg.norm基于概率密度函数计算K(z)。

这是我试过的,有谁知道我做错了什么?

def kernel(z):
# z: (N, 2) numpy.array
# returns (N, 1) numpy.array

k_zee=[]
for i in range (0,len(z)):
    dat=z[i]
    norm=LA.norm(dat, ord=2)
    k_zee.append((1/(np.sqrt(2*math.pi)))**(-(norm/2)))
return np.array(k_zee)
python numpy k-means kde
1个回答
1
投票

用np.exp替换**:

此外,你的缩进是错误的 - 在def行之后所有代码都应该缩进一次。

def kernel(z):
# z: (N, 2) numpy.array
# returns (N, 1) numpy.array
    k_zee=[]
    for i in range (0,len(z)):
        dat=z[i]
        norm=np.linalg.norm(dat, ord=2)
        k_zee.append((1/(np.sqrt(2*math.pi)))*np.exp(-(norm**2/2)))
    return np.array(k_zee)
© www.soinside.com 2019 - 2024. All rights reserved.