k表示聚类算法

时间:2013-03-24 22:11:11

标签: algorithm cluster-analysis data-mining k-means pearson

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

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

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

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

3)计算集群的新中心:

formula for new center condition

其中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的帮助。计算群集的新中心。如果有人可以通过并解释如何计算其中一个集群的新中心,那将对我有很大的帮助。

3 个答案:

答案 0 :(得分:4)

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

K-means旨在最大限度地减少“平方和”,不是距离!通过最小化平方和,它将同时最小化Squared Eudlidean并因此最小化欧几里德距离,但这可能不适用于其他距离,因此 K-means可能在与任意距离函数一起使用时停止收敛

再次: k-means不会最小化任意距离。它最小化了“平方和”,恰好与平方欧氏距离一致。

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

答案 1 :(得分:0)

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

群集中心(群集1的A)通常不是计算新群集中心的一部分。

答案 2 :(得分:0)

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

有关详细信息,请参阅Wikipedia article on K-Means clustering