我试图通过它们所处理的目标函数来比较它们的性能是否可以进行比较?
我试图通过它们所处理的目标函数来比较它们的性能是否可以进行比较?
顺便提一下,Fuzzy-C-Means(FCM)聚类算法也被称为Soft K-Means。
目标函数基本相同,唯一的区别在于引入了一个向量,用于表示给定点属于每个聚类的归属百分比。该向量会经过“刚度”指数处理,以便更加注重强连接(相应地最小化较弱连接的权重)。顺带一提,当刚度因子趋近于无穷大时,得出的向量成为二元矩阵,这使得FCM模型与K-Means模型相同。
我认为,除了某些可能存在未分配点的聚类问题外,可以通过模拟无限刚度因子(即通过引入一个将向量中最大值变为1并将其他值清零的函数来替代向量的指数运算)来模拟K-Means算法的FCM算法。当然,这是非常低效的运行K-Means的方法,因为该算法必须像使用真正的FCM一样执行许多操作(即使只使用1和0值,这简化了算术部分,但不影响复杂度)。
关于性能方面,FCM因此需要为每个点的每个维度执行k(即聚类数)次乘法运算(不计算用于计算和管理接近度向量的开销以及指数运算)。这加上了计算和管理接近度向量所需的额外开销,解释了为什么FCM比纯K-Means慢。
但是,当涉及到细长的聚类时(即在其他维度上一致的点倾向于沿着一个或两个特定维度散布时),FCM/Soft-K-Means比Hard-K-Means更聪明,这就是它还存在的原因;-)
从我的原始回复中:
另外,我刚刚想到一个问题,但还没有进行任何“数学”思考,模糊C均值可能比硬K均值更快地收敛,这在一定程度上抵消了FCM更大的计算需求。
2018年5月修改:
实际上,我无法找到任何可靠的研究支持我对FCM更快收敛速度的猜测。感谢Benjamin Horn让我保持诚实;-)
epsilon=0
时会收敛,而模糊C均值聚类则不会。因此,在本质上它们的收敛方式是不同的。 - Has QUIT--Anony-MousseK-Means 聚类 和 Fuzzy-C Means 聚类 的方法非常相似。主要区别在于,在 Fuzzy-C Means 聚类中,每个点都有一个与特定群集相关联的加权值,因此一个点不会像“处于群集”那样,而是具有对群集的弱或强关联性,这是由到群集中心的反向距离决定的。
Fuzzy-C means 运行速度通常比 K-Means 慢,因为它实际上做了更多的工作。每个点都要与每个群集进行评估,并且每个评估中涉及更多的操作。K-Means 只需要进行一次距离计算,而 Fuzzy-C means 需要进行完整的反向距离加权。
人们写的都是技术性的内容,每个答案都写得很好。但我想用通俗易懂的语言说同样的话。 K均值聚类将整个数据集聚类成K个簇,其中一个数据只能属于一个簇。 模糊C均值创建k个簇,然后将每个数据分配给每个簇,但有一个因素将定义数据属于该簇的强度。