我想看看两者的性能是否可以根据它们所处理的目标函数进行比较?
4 回答
顺便说一句,Fuzzy-C-Means (FCM) 聚类算法也称为Soft K-Means。
目标函数实际上是相同的,唯一的区别是引入了一个向量,该向量表示给定点属于每个集群的百分比。这个向量被提交给一个“刚度”指数,旨在更加重视更强的连接(并且相反地最小化弱连接的权重);顺便说一下,当刚度因子趋于无穷大时,结果向量变为二进制矩阵,因此使 FCM 模型与 K-Means 的模型相同。
我认为,除了没有分配点的集群的一些可能问题外,可以通过模拟无限刚度因子(=通过引入改变向量中的最大值为 1,并将其他值归零,以代替向量的幂运算)。这当然是运行 K-Means 的一种非常低效的方法,因为该算法必须执行与真正的 FCM 一样多的操作(如果只有 1 和 0 值,这确实简化了算术,但不是复杂性)
关于性能,FCM 因此需要为每个点、每个维度执行 k(即簇数)乘法(不计算指数以考虑刚度)。这一点,加上计算和管理邻近向量所需的开销,解释了为什么 FCM 比普通的 K-Means 慢得多。
但是 FCM/Soft-K-Means 比 Hard-K-Means 更不“愚蠢”,例如对于拉长的集群(当其他维度上一致的点倾向于沿着一个或两个特定维度分散时),这就是它的原因犹在 ;-)
从我原来的回复:
另外,我只是想到了这一点,但没有考虑任何“数学”,FCM 可能比硬 K-Means 收敛得更快,在一定程度上抵消了 FCM 更大的计算需求。
2018 年 5 月编辑:
实际上,没有任何知名的研究可以让我确定哪些支持我对 FCM 更快收敛速度的上述预感。谢谢本杰明霍恩让我诚实;-)
K-Means 聚类和Fuzzy-C 均值聚类在方法上非常相似。主要区别在于,在 Fuzzy-C 均值聚类中,每个点都具有与特定聚类相关的权重,因此一个点不会像与聚类具有弱或强关联那样位于“聚类中”,这由到簇中心的反距离决定。
Fuzzy-C 方法的运行速度往往比 K 方法慢,因为它实际上做了更多的工作。每个点都用每个集群进行评估,每次评估涉及更多操作。K-Means 只需要进行距离计算,而模糊 c 均值需要进行完整的反距离加权。
人们在技术上写得很好,每个答案都写得很好。但是我想说的外行语言是一样的。K 表示将整个数据集聚类成 K 个聚类,其中一个数据应该只属于一个聚类。模糊 c 均值创建 k 个集群,然后将每个数据分配给每个集群,但它们将成为定义数据属于该集群的强度的一个因素。