您好,欢迎访问三七文档
1第六章聚类分析Clusteringanalysis2模糊C均值聚类1模糊减法聚类26.3模糊均值聚类变量聚类36.3.1模糊C均值聚类许多分类中,分类对象没有严格界限,如好人与坏人,高与矮.用传统聚类方法(系统聚类、K均值聚类)进行分类,将待分类对象严格划分到某个类中不尽合理.L.A.Zadeh于20世纪60年代中提出模糊集概念,人们开始用模糊方法处理聚类问题,形成模糊聚类分析.模糊聚类样品以一定概率属于某个指定类.常用方法模糊C均值聚类(fuzzyc-meancluster)样品集,n-样本容量.将X分为c类,.ijXXij且ijuji10jiijjixXuxX设是第个样品属于第个中心的隶属度,则1,2,,,1,2,,jnic特点:每一列元素只有一个1,每个样品只能属于1类.nciju)(U---隶属度矩阵或特征矩阵1.硬C均值聚类},,,{nXxxx21cXXXX21表明j个样品归属i类样品集隶属度矩阵定义:j个样品属于第i个中心的隶属度cXXXX21nciju)(U---隶属度矩阵2.模糊C均值聚类思想},,,{nXxxx21npnnppnxxxxxxxxx21222211121121xxxX--观测数据矩阵1,2,,,1,2,,jnic11,0.cijijiuu划分X为c类iju6设论域190}180170160150{140},,,{621,,,,,xxxX为身高集合,分两类21XXX,190}180{170160},150{14021,,,,XX定义隶属度矩阵:18.06.04.02.0002.04.06.08.01)(62ijuU其中140190-1901jjux---第j个样品属于1X的隶属度,1401901402jjux-----属于2X的隶属度,7定义目标函数:1mm其中是c个类的聚类中心是加权指数,的取值能够影响聚类的效果.(6.3.1)),(),(ijnjcimijmvxduJ211VUpcR},,,{vvvV21最小),(VUmJ,,,mVU最优划分:选择11;cijiu,1,2,,;ivic(1)预先给定分类数c、加权指标数m、初始化隶属度矩阵(2)计算聚类中心(3)计算新的隶属度矩阵;3.模糊C均值聚类步骤nciju)(Unciju)(U(6.3.3)njmijnjjmijiuu11)(/)(xv(6.3.2)njciuckmkjijij1,111)1/(122vxvx[center,U,obj_fcn]=fcm(data,n_cluster,options)data--原始观测数据,每行为样本(或观测),列为指标;n_cluster--预先给定的聚类数;options—包含4个元素的向量,用来设置迭代参数。第一个元素为隶属度幂指数m,值大于1,默认2;第2个元素是最大迭代次数,默认100;第3个参数是目标函数的终止容限,默认0.00005;第4个元素用来控制是否显示中间迭代过程,取0表示不显示,1表示显示。4.MATLAB模糊C均值聚类命令fcm:[center,U,obj_fcn]=fcm(data,n_cluster,options)center--n_cluster行p列矩阵,每i行表示第i类重心;U--隶属度矩阵(n_cluster行N列),每列元素和均为1;U(i,j)--第j个个体属于第i列的隶属度;obj_fcn—目标函数向量列向量,第k个元素表示第k步迭代目标函数值,在每次计算过程中均使用公式(6.3.1).4.MATLAB模糊C均值聚类命令fcm:例6.3.1用模糊C均值聚类法对Fisher的Iris数据进行分类.%导入iris数据,meas为150行4列的3个总体的观测数据解:loadfisheriris[centeru]=fcm(meas,3)%对meas用模糊C均值聚类法,分三类,聚类中心center,隶属度矩阵u,距离为欧式距离,m=2index1=find(u(1,:)==max(u))%寻找属于第一类的样品,按隶属度最大原则归类index2=find(u(2,:)==max(u))%寻找属于第二类的样品index3=find(u(3,:)==max(u))%寻找属于第三类的样品index1=第一类样品编号5254555657585960616263646566676869707172737475767779808183848586878889909192939495969899100102107114120122124127128134139143147150index2=第二类样品编号515378101103104105106108109110111112115116117118119121123125126129130131132133135136137138140141142144145146148149index3=第三类样品编号123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495013+3个误判,误判率16/150=0.1067从聚类的结果来看,只有第三类与预先给定的完全一致,其余两类均与实际的分类情况相差较大,因此误判率较高,误判率为16/150=0.1067若选择m=3,则误判率为15/150=0.1原程序修改为[centeru]=fcm(x,3,3)14案例Excel表anli6_3.xls列出了2006年我国31个省、市、自治区和直辖市的12个月的月平均气温数据,数据保存在文件anli6_3.xls中,数据格式如表所示,根据这些数据,利用模糊C均值聚类方法,对各地区进行聚类分析,并给出聚3类结果。1516(1)读取anli6_3.xls中数据,并对数据进行标准化[xdata,textdata]=xlsread('anli6_3.xls');%从文件anli6_3.xls读取数据,xdata是读取数据结果,textdata是提取的文本数据city=textdata(4:end,1);%提取元胞数据组textdata第1列4行至最后一行,即城市名称数据X=zscore(xdata);%调用zscore函数将平均气温数据xdata标准化17读取的文本数据结果textdata18读取的样本城市名称读取的数值型原始数据19(2)模糊均值聚类调用fcm函数,根据标准化的平均气温数据矩阵X对各地区进行模糊均值聚类,将各地区分为3类。程序:options=[3,200,1e-6,0];%设置幂指数m=3,最大迭代次数200,目标函数终止容限为0.00006,不显示中间迭代过程,[V,U,Jm]=fcm(X,3,options)%调用fcm函数进行模糊聚类,返回类中心坐标矩阵center,隶属度矩阵U,目标函数obj-fcn20V=类中心,每行为一个类的中心坐标-0.00680.00920.19150.12040.20960.48290.13470.02850.09720.12990.0145-0.0330第1个类中心向量V1,各指标取值居于中间-1.21121.17431.2768-1.1717-0.9853-0.9953-0.8856-0.8888-1.0991-1.1692-1.1928-1.2039第2个类中心向量V2,各指标取值小,均为负值,气温低的地区0.74620.66750.69830.76200.72740.59400.90690.94820.88460.85670.83630.8068第3个类中心向量v3,各指标取值均大于其他类,属于气温高的地区21U=Columns1through6列为样品0.58580.56140.71170.39730.11150.1628归1类隶属度0.20750.22730.11490.40720.81800.7312大归2类隶属度0.20670.21130.17340.19550.07050.1060隶属度1号样品北京属于1类隶属度0.5858最大,归属1类,2号天津0.5614归属1类,3号石家庄0.7117类似Columns7through120.17520.21060.30080.43680.24240.44630.70230.63670.10590.11250.08660.10890.12260.15270.59340.45070.67100.44489号样品上海归属3类隶属度0.5934最大,归3类隶属度矩阵为3*31矩阵,每列是一个城市属于3类的隶属度22程序id1=find(U(1,:)==max(U));%查找第1类中所有城市序号id2=find(U(2,:)==max(U));%查找第2类中所有城市序号id3=find(U(3,:)==max(U));%查找第3类中所有城市序号city(id1)%查找第1类所包含的城市city(id2)%查找第2类所包含的城市city(id3)%查找第3类所包含的城市(3)查看聚类结果231号样品北京隶属1类隶属度度0.5858大于其他2类,归属1类,其他类似,得分类结果如下:ans=第一类包含的城市名称'北京''天津''石家庄''合肥''济南''郑州''温州''贵阳''昆明''西安'ans=第2类包含的城市名称'太原''呼和浩特''沈阳''长春''哈尔滨''拉萨''兰州''西宁''银川''乌鲁木齐'ans=第3类包含的城市名称'上海''南京''杭州''福州''南昌''武汉''长沙''广州''南宁''海口''重庆'模糊C均值聚类的前提条件是需要知道分类数c,如果对于分类数无先验信息,可运用模糊减法聚类以确定相应分类数和聚类中心,相应地该聚类数及聚类中心可以应用到模糊C均值聚类,因此,模糊减法聚类可看作是模糊C均值聚类前期工作.6.3.2模糊减法聚类(自学不要求)12,,,snXxxxR={}22(,)||||ijijdvxvxiv2||||1()ijnvxijMve设n为样品集,为样本容量.模糊减法ivjx表示聚类中心与样品之间欧氏距离处的爬山函数(mountainfunction)定义为聚类认为每个样品均为潜在的聚类中心,令平方,在iviv其中是一个正常数.爬山函数的取值越大,说明聚类中心与样品的距离越小,因此,我们选择那些能够使得爬山作为聚类中心.函数取得较大值的*1M*1max(())iMMv*1M*1v*1v*1v*21||||1*11ˆˆˆ()()(),ijnvvjjiijijMvMvMve令是爬山函数的最大值,即,同时令对应的中心为,于是,为第一个聚类中心,为了对聚类的影响,寻找其他的聚类中心,有必要消除因此,考虑如下的函数ˆ()jiMv1ˆ()jiMv*1ˆ()jiMv1ˆ()jiMv*1jv其中,为新的爬山函数,为上一步的爬山函数,是的最大值,是新的聚类中心,是一个正常数.MATLAB中模糊减法聚类命令SUBCLUST格式C=SUBCLUST(X,RADII)输入:X为原始观测数据,行为个体,列为指标。RADII为介于0,1之间的数,通常为0.2-0.5之间,值越小,聚类中心的容量就越大.输出:运用模糊减法聚类方法的聚类中心的估计例6.3.2用模糊减法聚类法确定Iris数据的聚类中心.解:我们取RADII=.6,loadfisheriris%导入iris数据c=subclust(meas,.6)%模糊减法聚类法c=6.00002.90004.50001.50005.00003.40001.50000.20006.80003.00005.50002.
本文标题:6.3-模糊聚类
链接地址:https://www.777doc.com/doc-4499938 .html