首页 文章

k表示聚类算法

提问于
浏览
2

我想对一组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 回答

  • 4

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

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

  • 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 .

  • 0

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

    K-means旨在最大限度地减少"sum of squares", not distances !通过最小化平方和,它将重合地最小化Squared Eudlidean并因此最小化欧几里德距离,但是这可能不适用于其他距离,因此 K-means may stop converging when used with arbitrary distance functions .

    再次: k-means does not minimize arbitrary distances . 它最小化了"sum of squares",这恰好与平方欧几里德距离一致 .

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

相关问题