Python汇总值包括“nan”和查找聚类错误

时间:2016-05-29 03:43:08

标签: python loops cluster-analysis distance nan

我几乎是Python新手。在聚类问题中,假设我们有k个聚类。我想从他们的中心找到集群点之间的错误总和。

这是我的距离函数,用于从参考点p求出点组(即g)的距离之和。

import numpy as np
import scipy
def distgp(g,p):
    dist = sum(scipy.spatial.distance.cdist(g,p)) 
    return dist

# Now I am going to find sum of errors of clusters.
f = 0
for i in range(k): 
    ix = LabelX==i 
    if any(ix):
         f+=distgp(X[ix,:],X[ix,:].mean(axis=0)[:,None].T)

这里X是一个有近500000个观测值的数据集,LabelX是点的集群标签。有时X[ix,:]为空,因此X[ix,:].mean(axis=0)为空(RuntimeWarning:空切片的平均值),这就是为什么我使用“if any(ix)”来考虑非空的。

时间对我来说非常重要。代码工作,但我认为应该有一些有效的方法为函数distgp和循环找到错误的总和。感谢您就速度方面的代码改进提出意见。

谢谢, 萨姆

0 个答案:

没有答案