文本聚类python fcm_模糊C均值聚类-FCM算法

FCM算法是一种模糊聚类方法,比k-means更灵活,允许样本同时属于多个簇。算法通过迭代计算样本对每个簇的隶属度和簇中心,直至达到最优。主要步骤包括初始化、计算加权质心和更新隶属度矩阵。Python中可用于实现文本聚类。
摘要由CSDN通过智能技术生成

FCM(fuzzy c-means)

模糊c均值聚类融合了模糊理论的精髓。相较于k-means的硬聚类,模糊c提供了更加灵活的聚类结果。因为大部分情况下,数据集中的对象不能划分成为明显分离的簇,指派一个对象到一个特定的簇有些生硬,也可能会出错。故,对每个对象和每个簇赋予一个权值,指明对象属于该簇的程度。当然,基于概率的方法也可以给出这样的权值,但是有时候我们很难确定一个合适的统计模型,因此使用具有自然地、非概率特性的模糊c均值就是一个比较好的选择。

聚类损失函数:

aab28cdd5109d4f80a17d61b1f62d5ae.png

N个样本,分为C类。C是聚类的簇数;i,j是标号;

aaeebcb2a1ec021b62403e7205c72ec6.png表示 样本i 属于 j类 的隶属度。

xi表示第i个样本,xi是具有d维特征的一个样本。cj是j簇的中心,也具有d维度。||*||可以是任意表示距离的度量。

模糊c是一个不断迭代计算隶属度和簇中心的过程,直到他们达到最优。

1ba2f6173ac615e257cdaa40bd5e9603.png

cbb584262361b17aa627307132af2ced.png

对于单个样本xi,它对于每个簇的隶属度之和为1。

迭代的终止条件为:

62b2c0f14758770f7b07ffe5d308ae74.png

其中k是迭代步数,

25e5a727315c883bab971a9bcfb1f71e.gif是误差阈值。上式含义是,继续迭代下去,隶属程度也不会发生较大的变化。即认为隶属度不变了,已经达到比较优(局部最优或全局最优)状态了。

该过程收敛于目标Jm的局部最小值或鞍点。

抛开复杂的算式,这个算法的意思就是:给每个样本赋予属于每个簇的隶属度函数。通过隶属度值大小来将样本归类。

算法步骤:

9ea8ba6e305c6014c66d9254fe3462b6.png

1、初始化

2、计算质心

FCM中的质心有别于传统质心的地方在于,它是以隶属度为权重做一个加权平均。

3、更新隶属度矩阵

5f5b2ea6864011d8671f4bec7a3d8713.png

55a2f88b7aed6675511b3135733b4d85.png

e0ead4690faa0f49a4a582ecb4c52d6c.png

b一般取2。

【转载自】

Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现 - Yancy的博客 - CSDN博客 https://blog.csdn.net/lyxleft/article/details/88964494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值