2

我想对一组 10 个数据点执行 ak 均值聚类分析,每个数据点都有一个由 4 个数值组成的数组与之关联。我使用 Pearson 相关系数作为距离度量。我做了 k 均值聚类算法的前两个步骤,它们是:

1)选择k个簇的一组初始中心。【我随机选择了两个初始中心】

2)将每个对象分配给具有最近中心的集群。[我使用 Pearson 相关系数作为距离度量——见下文]

现在我需要帮助理解算法的第三步:

3)计算集群的新中心:

新中心公式 (健康)状况

其中 X,在这种情况下是一个 4 维向量,n 是集群中数据点的数量。

对于以下数据,我将如何计算 C(S)?

# Cluster 1
A   10  15  20  25  # randomly chosen centre
B   21  33  21  23
C   43  14  23  23
D   37  45  43  49
E   40  43  32  32

# Cluster 2
F  100  102 143 212 #random chosen centre
G  303  213 212 302
H  102  329 203 212
I  32   201 430 48
J  60   99  87  34

k 均值算法的最后一步是重复第 2 步和第 3 步,直到没有对象更改集群,这很简单。

我需要第 3 步的帮助。计算集群的新中心。如果有人可以通过并解释如何计算其中一个集群的新中心,那将极大地帮助我。

4

3 回答 3

6

不要将其他距离函数放入 k-means 中。

K-means 旨在最小化“平方和”,而不是距离!通过最小化平方和,它会巧合地最小化 Squared Eudlidean 和因此 Euclidean 距离,但这可能不适用于其他距离,因此K-means 在与任意距离函数一起使用时可能会停止收敛

同样:k-means 不会最小化任意距离。它最小化了恰好与平方欧几里得距离一致的“平方和”。

如果您想要一个为任意距离函数定义良好的算法,请考虑使用k-medoids (Wikipedia),一个k-means 变体。PAM 保证与任意距离函数收敛。

于 2013-03-25T08:41:19.130 回答
0

对于每个具有 n 维点的聚类,计算一个 n 维质心以获得质心。在您的示例中,有 4 维点,因此质心是 4 维中每一个的平均值。对于集群 1,质心为:(30.20, 30.00, 27.80, 30.40)。例如,第一个维度的平均值计算为 (10+21+43+37+40)/5 = 30.20。

有关更多信息,请参阅有关 K-Means 聚类的 Wikipedia 文章

于 2013-03-25T00:03:00.723 回答
0

步骤 3 对应于计算每个集群的平均值。对于集群 1,您将得到新的集群中心(B+C+D+E) / 4,即(35.25 33.75 29.75 21.75),即分别对集群中所有点的每个分量求和,然后将其除以集群中的点数。

聚类中心(A对于聚类 1)通常不是新聚类中心计算的一部分。

于 2013-03-24T22:27:15.153 回答