“k 均值”和“模糊 c 均值”目标函数有啥区别?
Posted
技术标签:
【中文标题】“k 均值”和“模糊 c 均值”目标函数有啥区别?【英文标题】:whats is the difference between "k means" and "fuzzy c means" objective functions?“k 均值”和“模糊 c 均值”目标函数有什么区别? 【发布时间】:2011-01-21 16:48:33 【问题描述】:我想看看两者的性能是否可以根据它们所处理的目标函数进行比较?
【问题讨论】:
加油!不要关闭...集群是与编程相关的,与排序算法或形式语法问题相同! 【参考方案1】:C-means 是模糊的,但 k-means 是困难的(不是模糊的),每个点在 K-means 中属于一个质心,但在模糊 c-means 中,每个点可以属于两个质心但质量不同.
每个点要么是第一个质心的一部分,要么是第二个质心的一部分。但在 C-means 中,一个点可以是第一个质心 (90%) 和第二个质心 (10%) 的一部分。例如,学生失败或者如果她/他有 49 则通过。不知何故是通过而现实是失败的,那个时候我们称之为模糊。
【讨论】:
【参考方案2】:顺便说一句,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 更快收敛速度的上述预感。谢谢 Benjamin Horn 让我诚实 ;-)
【讨论】:
为什么FCM收敛得更快?它根本没有真正收敛,当相对分配不再“足够”改变时,您必须停在某个阈值上;就像 GMM-EM 聚类一样。 @Anony-Mousse : FCM 和 K-Means converge,在数学意义上,这就是你用when the relative assignments do no longer change "enough".
描述的内容,换句话说就是聚类解决方案这些算法的连续迭代提供了很多变化,起初,从一次迭代到下一次迭代,但最终随着函数接近其极限,变化变得越来越小。在达到实际变化阈值后停止迭代是安全的,因为函数是收敛的:迭代更多不会产生显着不同的结果......
...我还没有尝试研究的是,FCM 是否真的比硬 K-Means 收敛得更快。换句话说,如果使用 FCM(比使用普通 K-Means)需要更少的迭代来达到所需的“稳定”解决方案。
k-means 实际上与epsilon=0
收敛。 FCM 没有。因此,恕我直言,它们在本质上的收敛性完全不同。
我认为这应该被编辑,因为说 FCM 确实比 K - Means 收敛得更快,没有严格的数学或研究。【参考方案3】:
人们在技术上写得很好,每个答案都写得很好。但是我想说的外行语言是一样的。 K 表示将整个数据集聚类成 K 个聚类,其中一个数据应该只属于一个聚类。 模糊 c 均值创建 k 个集群,然后将每个数据分配给每个集群,但它们将成为定义数据属于该集群的强度的一个因素。
【讨论】:
【参考方案4】:K-Means clustering 和 Fuzzy-C Means Clustering 在方法上非常相似。主要区别在于,在 Fuzzy-C 均值聚类中,每个点都有一个与特定聚类相关的权重,因此一个点不会像与聚类有弱或强关联那样位于“聚类中”,这由到簇中心的反距离决定。
Fuzzy-C 方法的运行速度往往比 K 方法慢,因为它实际上做了更多的工作。每个点都用每个集群进行评估,每次评估涉及更多操作。 K-Means 只需要进行距离计算,而模糊 c 均值需要进行完整的反距离加权。
【讨论】:
以上是关于“k 均值”和“模糊 c 均值”目标函数有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章