我正在使用 OpenCV 的 python 接口对多维数据(通常为 7 维)进行 K-Means 聚类。我得到了集群的奇怪结果。当请求 n 个集群(索引 0 到 n)时,一些集群没有分配给它们的点 - 这导致集群少于预期。有人成功使用了 OpenCV 的 python K-Means 实现吗?一些用户体验或建议将是最有帮助的。
这是我的python实现的代码片段:
points = cv.CreateMat(dim1, dim2, cv.CV_32FC2)
clusters = cv.CreateMat(dim1, 1, cv.CV_32SC1)
for a in range(0,dim0):
for b in range(0,dim1):
for c in range(0,dim2):
#print float(list[a*dim1*dim2 + b*dim2 + c])
cv.Set2D( points, b, c, float(list[a*dim1*dim2 + b*dim2 + c]) )
cv.KMeans2(points, numClusters, clusters, (cv.CV_TERMCRIT_EPS + cv.CV_TERMCRIT_ITER, 100000, 0.00000001), 50)
for d in range(0,dim1):
f.write(str(int(clusters[d,0])))
f.write(' ')
f.write('\n')
问候,
斯特凡