admin管理员组文章数量:1794759
模糊聚类分析(FCM)算法原理及实现
说到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函数
版权声明:本文标题:模糊聚类分析(FCM)算法原理及实现 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1685938875a14012.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论