模糊聚类分析的实现(CuteFuzzy V0.5 Released)

模糊聚类分析的实现(CuteFuzzy V0.5 Released              

EmilMatthew([email protected])

摘要: 

       在本文中,介绍了基本的模糊聚类分析及模糊聚类图的绘制的算法及其程序。

 

关键词: 模糊聚类分析,聚类图

 

             The implement of fuzzy cluster analysis(CuteFuzzy V0.5 Released)

                             EmilMatthew([email protected])

Abstract:

       In the paper , I realize the basis part of fuzzy cluster analysis and the drawing of clustering picture , which are introduced both in algorithms and the codes.

 

Key Words: Fuzzy Cluster Analysis , Cluster Map   

 

1前言:

       11模糊数学简介:

模糊数学是伴随着上世纪五六十年代兴起的控制论、信息论、系统论(俗称“老三论”)而形成的一种分析统计数据以及给出决策的方法。模糊数学公认的创史人是Lotfi Zadeh教授。

      

他对该门学科的开山之作是:

Zadeh, Lotfi A., "Fuzzy Sets ," Information and Control, Vol. 8 (1965), pp. 338-353.

       (该文可以在下面这个网址下载http://www-bisc.cs.berkeley.edu/)

      

模糊数学对于现实的意义,直观的理解可以主要从以下两个方面进行:

       控制:举个例子来说,比方说:一辆有模糊控制系统的火车,将能理解这样的命令------“比平常的速度加快一点”,这加快,便是一个模糊的概念,以往的控制系统,如果不给出加快多少或者是加快的呈度,是很难完成这样的任务的。

       决策与分析:比方说,眼前有一堆学生的考试成绩资料,如果要做一次针对学生学习能力的分析(虽然未必全能从考试成绩反映出来),要求给出将学习成绩好,较好,一般,较差,很差的学生进行分类,即将各个学生划进相应的“群落”中,以便于教师更好的组织教学工作。这里,就可以用模糊聚类的方法来解决。

      

       在学科分类上,与模糊数学较近的方法主要是软计算方面的一些方法,如人工神经网络、遗传算法、DNA计算等。它们在解决一些常用方法无法或难以解决的问题时,有相当不错的效果。

       模糊数学主要可以解决的问题有:数据的分类,模式识别,模糊决策与控制等。再举一些例子来说明吧:如可以用C-MEAN法来对一幅图片进行分割,提取其中的有效信息(聚类分析);再如,有世界各地的山区的土质的各方面的数据,需要分析哪些地区的土质情况较为接近(聚类分析)。

 

 

       12聚类分析:

       聚类分析的概念主要是来自多元统计分析,例如,考虑二维坐标系上有散落的许多点,这时,需要对散点进行合理的分类,就需要聚类方面的知识。

       模糊聚类分析方法主要针对的是这样的问题:对于样本空间P中的元素含有多个属性,要求对其中的元素进行合理的分类。最终可以以聚类图的形式加以呈现,而聚类图可以以手式和自动生成两种方式进行,这里采用自动生成方式,亦是本文的程序实现过程中的一个关键环节。

 

       2模糊聚类的步骤及其关键算法:

       这里所实现的基本的模糊聚类的主要过程是一些成文的方法,在此简述如下:

       对于待分类的一个样本集U={u1,u2,...,un},设其中的每个元素有m项指标,则可以用m维向量描述样本,即:ui={ui1,ui2,...,uim}(i=1,2,...,n)。则其相应的模糊聚类按下列步骤进行:

1)  标准化处理,将数据压缩至(0-1)区间上,这部分内容相对简单,介绍略。([1])

2)  建立模糊关系:

这里比较重要的环节之一,首先是根据“距离”或其它进行比较的观点及方法建立模糊

相似矩阵,主要的“距离”有:

Hamming 距离: d(i,j)=sum(abs(x(i,k)-x(j,k))) | k from 1 to m

(| k from 1 to m表示求和式中的系数k1增至m,下同)

Euclid  距离:  d(i,j)=sum((x(i,k)-x(j,k))^2)  | k from 1 to m

 

非距离方法中,最经典的就是一个夹角余弦法

                                                

 

 

最终进行模糊聚类分析的是要求对一个模糊等价矩阵进行聚类分析,而由相似矩阵变换

到等价矩阵,由于相似矩阵已满足对称性及自反性,并不一定满足传递性,则变换过程主要进行对相似矩阵进行满足传递性的操作。使关系满足传递性的算法中,最出名的,就是Washall算法了,又称传递闭包法(它的思想在最短路的Floyd算法中亦被使用了)。

       算法相当简洁明了,复杂度稍大:O(log2(n)*n^3),其实就是把一个方阵的自乘操作,只不过这里用集合操作的交和并取代了原先矩阵操作中的*+操作,如下:(matlab代码)

%--washall enclosure algorithm--%

unchanged=0;

while unchanged==0

    unchanged=1;

    %--sigma:i=1:n(combine(conj(cArr(i,k),cArr(k,j))))

       for i=1:cArrSize

              for j=1:cArrSize

            mergeVal=0;

                     for k=1:cArrSize

                         if(cArr(i,k)<=cArr(k,j)&&cArr(i,k)>mergeVal)          

                                          mergeVal=cArr(i,k);

                            elseif(cArr(i,k)>cArr(k,j)&&cArr(k,j)>mergeVal)

                                          mergeVal=cArr(k,j);

                end

                     end

                     if(mergeVal>cArr(i,j))

                            copyCArr(i,j)=mergeVal;

                            unchanged=0;

                     else

                            copyCArr(i,j)=cArr(i,j);

                     end

              end

       end

    %--copy back--%

    for i=1:cArrSize

        for j=1:cArrSize

            cArr(i,j)=copyCArr(i,j);

        end

    end

end

 

3)  建立完等价矩阵cArr后,接下来就是聚类的过程了,聚类的方法其实是相当好做的。

取门限值limitLine,值由1递减至0递减幅度为0.1。在每一轮聚类过程中,凡是至cArr(i,j)>=limitLine的位置在0-1矩阵中均置1,而<limitLine的值都置0。若有相同的两列或多列,即表示这些列彼此之前接近,则列的标号即代表原来的元素,作为一组中的元素加以记录。不断重复上述过程直至最终归为一类。

       聚类算法可以被描述成一个找出等价类的算法,复杂度O(n^2)(仍有改进的余地),描述如下:(matlab code)

 

%--cluster--%

limitLine=1;                                   聚类门限起始值

limitStep=0.1;                                聚类门限步进值

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值