FCM(Fuzzy C

您所在的位置:网站首页 模糊聚类分析法与聚类分析法相比有什么特点不同 FCM(Fuzzy C

FCM(Fuzzy C

2024-07-01 16:48| 来源: 网络整理| 查看: 265

1. FCM初识

FCM的C跟K-Means的K是一样的,指的是聚类的数目。F—Fuzzy是模糊的意思,指的是”一个事件发生的程度“。用在我们的聚类上面,第一条记录以怎样的概率或者说程度属于第一类,又以怎样的程度属于第二类等等。跟传统的聚类有所区别的地方就是,他改变了传统分类的时候非此即彼的一个现象,一个对象可以以不同的程度同时属于多个类。这个其实是跟我们的现实世界是更契合的。比如说,“秃与不秃”,一个人有多少发量就说他是秃的,下面这几张图:

                                            

究竟那几个可以分成:秃“,这个就具有一定的模糊性。

所以说,”模糊“概念的提出,更能描述现实。

模糊的程度我们用模糊函数来衡量

μA(x) 他表示的是集合X中的元素x对集合A的隶属程度。

2.FCM算法

作为一个算法,FCM的输入就是一个待聚类的数据集,每一个数据都有p个特征。它的输出是一个c行n列的矩阵U,c刚才提到是聚类数目,n是数据集中元素的个数,用这个矩阵就可以表示分类的结果,因为你看某一列,表示的就是这个元素对各个类的隶属程度,哪一个值最大,就说这个元素属于哪一类。

还有一个输出是各个类的聚类中心向量集合V,一共有c个元素。每个元素也是有p维的。

X={x1,x2,...,xn},xk∈RP

V={v1,v2,...,vc}⊂RP U=⎛⎝⎜⎜u11⋮un1…⋱⋯u1c⋮unc⎞⎠⎟⎟nxc

举个例子,直观感受一下,比如现在待分类的数据集有188个点,每个点是二维的,我们要把他分成4类,通过FCM算法得到的输出V就是下面第一张图表示这4个中心向量,下面这第二张图表示的就是矩阵U,横坐标是188个元素,纵坐标是隶属度值,可以看到,可以根据这个值把大家区分开。

                 

那我们怎么实现这样的结果呢?FCM有他自己的目标函数[1],

Jm(U,V)=∑i=1c∑j=1numijd2ij

μij指的就是隶属度值,元素j对类别i的隶属程度,dij平方指的就是欧氏距离下元素j跟中心点i之间的距离,整个表示的就是各个点到各个类的加权距离的和。

m是一个模糊化程度的参数,待会我们会提到它对算法性能的影响。这个算法有一个约束条件,就是某一个元素对所有类别的隶属程度的值加起来要等于1.

聚类要达到的最终效果就是类内相似度最小,类间相似度最大,这个时候点和中心的加权距离之和就是最小的。所以我们我们只要使得目标函数取得最小值就可以了。所以最优解的的表达式就是:

min(Jm(U,V))=min(∑i=1c∑j=1numijd2ij)

对于有约束条件的求极值问题,一般使用拉格朗日乘子法解决。先构造拉格朗日函数:

F=∑i=1c∑j=1numijd2ij+∑j=1nλj(∑i=1cuij−1) 函数中共有三个变量,μij, vi, 和(lanmuda)j,分别求偏导

得到U和V的最优解

uij=⎡⎣∑k=1c(dijdkj)2m−1⎤⎦−1

 

vi=∑nj=1xjμmij∑nj=1μmij

算法的步骤

初始化

             设定聚类个数c (1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3