首页 > 生活

模糊聚类分析(FCM)算法原理及实现|与kmeans算法简单对比

更新时间:2025-05-21 20:42:48 阅读: 评论:0

说到FCM算法,就不得不先提一下Kmeans算法去对比着理解。Kmeans算法的本质是按照距离最近原则,样本离哪个类别的中心点最近,就将样本划分给哪个类别中。举个例子,如有怀孕后能同房吗一个样本集X,要分为A和B两类,X中的某个样众议院本x,到A类的中心点距离7850为2,到B类的中心点距离为1,那么阻燃塑料按照Kmeans算法,x毫无疑问的要100%划分给A类别,完全不属于B类别。(Kmeans算法可查看文章Kmeans聚类算法的原理及实现)

但是在FCM算法中,x是属于每个类别的,如x属于A的隶属度为0.8,属于B的隶属度为0.2。结合起来看,Kmeans算法中样本仅属于一个类别,但是在FCM算法中,样本属于每个类别,只不过隶属度有大有小。

下面来详细描述一下FCM算法的原理

一、FCM算法原理

FCM算法是fuzzy c-means 的简称,是一种基于目标函数的模糊聚类方法。

假设有个数据集X,要划分为C个类,那么对应就有C个类中心,每个样本j属油罐防腐于某一类的隶属度为 \mu_{ij} ,FCM算法的目标网络舆情监测系统函数集约束条件如下(目标函数为样本到各类中心点的误差平方和,FCM算法中每个样本属于某个类有个隶属度,公式中要体现):

J=\sum_{i=1}^{C}{\sum_{j=1}^{n}{\mu_{ij}^{m}(x_{j}-C_{i})地方债务^{2}}} ,使得, \sum_{i}^{C}{\mu_{ij}}=1,j=1,2,3,...,n (1)圆与圆的位置关系

J 越小,说明分类效果越好,那上面的最优化问题替代品就是找到使 J 最小的\mu_{ij}和ppt设计 C_{i} (可跳过以下推到过程,直接查看公式(6)和(7) )

该最优化问题使用拉格朗日乘数法解决,将约束条件融合到目标函数中,对\mu_{ij}和 C_{i}分别求偏导计算两个参数的取值

上述最优化问题转化为,求下面函数的偏导问题J=\sum_{i=1}^{C}{\sum_{j=1}^{n}{\mu_{ij}^{m}(x_{j}-C_{i})^{2}}}+\lambda_{1}(\sum_{i=1}^{C}{\mu_{i1}-1})+\lambda_{2}(\sum_{i=1}^{C}{\mu_{i2}-1})+...+\lambda_{n}(\王晓松sum_{i=1}^{C}{\mu_{in}-1})

先对\mu_{ij}求偏导:

\frac{\parca1373tial J}{\partial \mu_{ij}}=m(x_{j}-C_{i})^{2}\mu_{ij}^{m-1}+\lambda_{j}=0

推到得出:

\mu_{ij}^{m-1}=\frac{-\lambda_{j}}{m(x_{j}-C_{i})^{2}}

\mu_{ij}=(\frac{-\lambda_{j}}{m(x_{j}-C_{i})^{2}})^{\frac{1}{m-1}} (2)

接下来想办法将(2)式中的 \lambda 和 m 消掉,已知条件中能用的仅有

\sum_{i}^{C}{\mu_{ij}}=1,j=1,2,3,...,n (3)

将(2)式代入(3)中,得到

\sum_{i=1}^{C}{(\frac{-\lambda_{j}}{m(x_{j}-C_{i})^{2}})^{\frac{1}{m-1}}}=1 (4)

从(4)式得出, (\frac{-\lambda_{j}}{m})^{\frac{1}{m-1}}=\sum_{i=1}^{C}{(\frac{1}{x_{j}-C_{i}})^{\frac{2}{m-1}}} 什么是机械运动 (5)

将谷丙转氨酶高(5)式中的i换成k后带入(格力售后电话2)式中,得到

\mu_{ij}=\frac{1}{\sum_{k=1}^{C}{(\frac{x_{j}-C_{i}}{x_{j}-C_{k}})^{\frac{2}{m-1}}}} (6)

再对 C_截屏的快捷键是什么{i} 求偏导:

\frac{\partial J}{\partial C_{i}}=\sum_{j=1}^{n}{(-\mu_{ij}^{m}*2*(x_{j-C_{i}}))}=0

推导出

C_{i}=\frac{\sum_{j=1}^{n}(x_{j}\mu_{ij}^{m})}{\sum_{j=1}^{n}{\mu_{ij}^{m}}}=\sum_{j=1}^{n}{\f精算师rac{\mu_{ij}^{m}}{\sum_{j=1}^{n}{\mu_{ij}^{m}}}}x_{j} (7)

(6爱思唯尔)(7)两式即为(1)式取最小值时两个参数的取值。可见, \mu_{ij} 式中有 C_{i} ,C_{i}式中有\mu_{ij},两个参数是相互联系的,有了\mu_{ij} \Rightarrow C_{i}\Rightarrow\mu_{ij}......,故在迭代程序开始之前可先随机给\mu_{ij}一个值,继而可以计算出一个C_{i},再得到一个\mu_{ij},按此迭代, J 也不断变化迭代,逐渐趋向最小值,腋下长了个疙瘩当J不再变化或到达指定迭代步数时,算法停止。

二、算法一般步骤

(1)确定分类数即指定m的取值,确定迭代次数

(2)初始化一个隶属度U

(3)根据U计算聚类中心C

(4)计算目标函数J

(5)根据(3)得到的三体吧C计算U,得到的U再去计算C,以此类推

迭代结束后,得到一个最终的U,对每一个点,它属于各个类都会有一个隶属度 \mu ,找到其中最大的\mu就认为这个点属于这一类

三、算法实现

基于R语言,fpc包中的fanny函数

本文发布于:2023-05-30 21:39:32,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/85/153581.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   模糊   原理   简单   FCM
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|学编程|软件玩家|水木编程|编程频道