经过白化变换和K均值聚类后如何识别数据,python

How to identify data after they have been through a whitening transformation and K-means clustering, python

我正在 Python 中执行 K 均值聚类,遵循以下内容:http://glowingpython.blogspot.no/2012/04/k-means-clustering-with-scipy.html 教程。我有我的数据,它们是长度、宽度和高度——我正在使用这些数据进行美白:

from scipy.cluster.vq import whiten
data = whiten(data)

美白后,我正在按照教程进行 k 均值聚类。我的问题是:白化后的数据如何识别?无论是在涉及情节时,还是在对数据进行进一步分析时。我想要一种识别哪些数据来自哪个集群的方法。

执行白化变换手动。真的很简单,如果你看看vq.whiten的源代码!没有黑魔法,只有线性代数。

然后很容易存储线性变换 - 它是反向(一个乘法,天啊!)。然后您可以将均值映射回原始数据。如果后面不降维的话,还是比较准确的。

或者,只需重新计算原始数据中的均值space。这可能更准确,但如果您有很多数据点,成本可能会更高。

如果您使用 kmeans 的 scipy 文档作为示例 然后只需执行以下操作

kmeans(whitened,book)[0] * numpy.std(features, 0)