fcm基本原理_fcm聚类算法原理及应用

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。

(一)原理部分

模糊C均值(Fuzzy C-means)算法简称FCM算法,是一种基于目标函数的模糊聚类算法,主要用于数据的聚类分析。理论成熟,应用广泛,是一种优秀的聚类算法。本文关于FCM算法的一些原理推导部分介绍等参考下面视频,加上自己的理解以文字的形式呈现出来,视频参考如下,比较长,看不懂的可以再去看看:

FCM原理介绍

FCM分析1

FCM分析2

FCM分析3

首先介绍一下模糊这个概念,所谓模糊就是不确定,确定性的东西是什么那就是什么,而不确定性的东西就说很像什么。比如说把20岁作为年轻不年轻的标准,那么一个人21岁按照确定性的划分就属于不年轻,而我们印象中的观念是21岁也很年轻,这个时候可以模糊一下,认为21岁有0.9分像年轻,有0.1分像不年轻,这里0.9与0.1不是概率,而是一种相似的程度,把这种一个样本属于结果的这种相似的程度称为样本的隶属度,一般用u表示,表示一个样本相似于不同结果的一个程度指标。

基于此,假定数据集为X,如果把这些数据划分成c类的话,那么对应的就有c个类中心为C,每个样本j属于某一类i的隶属度为uij,那么定义一个FCM目标函数(1)及其约束条件(2)如下所示:

98b3f1d4dfcfbb204756c148d84441db.png

看一下目标函数(式1)而知,由相应样本的隶属度与该样本到各个类中心的距离相乘组成的,m是一个隶属度的因子,个人理解为属于样本的轻缓程度,就像x2与x3这种一样。式(2)为约束条件,也就是一个样本属于所有类的隶属度之和要为1。观察式(1)可以发现,其中的变量有uij、ci,并且还有约束条件,那么如何求这个目标函数的极值呢?

这里首先采用拉格朗日乘数法将约束条件拿到目标函数中去,前面加上系数,并把式(2)的所有j展开,那么式(1)变成下列所示:

543ae61b785ee47be5aaa1e2b5cf34ed.png

现在要求该式的目标函数极值,那么分别对其中的变量uij、ci求导数,首先对uij求导。

分析式(3),先对第一部分的两级求和的uij求导,对求和形式下如果直接求导不熟悉,可以把求和展开如下:

b795e34e0563e74aa18941d90ecd1664.png

再来看后面那个对uij求导,同样把求和展开,再去除和uij不相关的(求导为0),那么只剩下这一项:λj(uij−1),它对uij求导就是λj了。

那么最终J对uij的求导结果并让其等于0就是:

e8a8e6d28fe0e5d6c643c83016a5eae7.png

a87dc5d8bfc451d3d83955c5c61c03f1.png

我们发现uij与ci是相互关联的,彼此包含对方,有一个问题就是在fcm算法开始的时候既没有uij也没有ci,那要怎么求解呢?很简单,程序开始的时候我们随便赋值给uij或者ci其中的一个,只要数值满足条件即可。然后就开始迭代,比如一般的都赋值给uij,那么有了uij就可以计算ci,然后有了ci又可以计算uij,反反复复,在这个过程中还有一个目标函数J一直在变化,逐渐趋向稳定值。那么当J不在变化的时候就认为算法收敛到一个比较好的结了。可以看到uij和ci在目标函数J下似乎构成了一个正反馈一样,这一点很像EM算法,先E在M,有了M在E,在M直至达到最优。

公式(5),(6)是算法的关键。现在来重新从宏观的角度来整体看看这两个公式,先看(5),在写一遍

  • 1
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FCM算法和K-means聚类算法都是常见的聚类算法,它们都有着各自的优缺点。 FCM算法(模糊C均值算法)是一种基于模糊理论的聚类算法。与传统的K-means算法不同,FCM算法将每个数据点分配到每个簇中的概率作为其隶属度,因此可以处理不确定性问题。FCM算法的优点包括: 1. 对于不明确的数据,可以提供更加准确的聚类结果。 2. 可以处理噪声数据,使得聚类更加稳定。 3. 能够处理重叠的聚类问题。 FCM算法的缺点包括: 1. 算法的时间复杂度较高,需要进行迭代计算。 2. 对于数据量较大的情况,算法的计算量会非常大。 3. 对于聚类数目的选择较为敏感。 K-means聚类算法是一种基于距离测量的聚类算法。该算法将每个数据点分配到距离其最近的簇中。K-means算法的优点包括: 1. 计算速度较快,适合处理大规模数据。 2. 对于数据分布清晰、簇的数量明确时,聚类效果较好。 3. 对于高维数据,K-means算法的效果较为显著。 K-means聚类算法的缺点包括: 1. 对于噪声和异常值的处理较为敏感。 2. 对于簇的形状和大小有较强的假设。 3. 对于数据分布复杂、簇的数量未知时,聚类效果较差。 举例来说,我们假设有一个数据集,其中数据分布较为复杂,簇的数量不确定。在这种情况下,FCM算法的效果可能会比K-means算法更好,因为FCM算法可以处理不确定性和重叠簇的问题。但是,如果数据分布较为清晰,簇的数量已知,那么K-means算法的效果可能会更好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值