FCM(Fuzzy C |
您所在的位置:网站首页 › 模糊聚类分析法与聚类分析法相比有什么特点不同 › FCM(Fuzzy C |
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∈RPV={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⎤⎦−1vi=∑nj=1xjμmij∑nj=1μmij
算法的步骤 初始化
设定聚类个数c (1 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |