《模糊C均值聚类.ppt》由会员分享,可在线阅读,更多相关《模糊C均值聚类.ppt(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、主主 讲:周润景讲:周润景 教授教授单单 位:电子信息工程学院位:电子信息工程学院模糊C均值聚类目目 录录 模糊模糊C均值聚类应用均值聚类应用背景背景模糊模糊C均值均值算法算法模糊模糊C均值聚类的均值聚类的MATLAB实现实现模糊模糊C均值聚类结果分析均值聚类结果分析 一一.模糊模糊C均值聚类应用背景均值聚类应用背景传统的聚类分析是一种硬划分(Crisp Partition),它把每个待辨识的对象严格地划分到某类中,具有“非此即彼”的性质,因此这种类别划分的界限是分明的。然而实际上大多数对象并没有严格的属性,它们在性质和类属方面存在着中介性,具有“亦此亦彼”的性质,因此适合进行软划分。Zade
2、h提出的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊方法来处理聚类问题,并称之为模糊聚类分析。模糊聚类得到了样本属于各个类别的不确定性程度,表达了样本类属的中介性,建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界,从而成为聚类分析研究的主流。在基于目标函数的聚类算法中模糊C均值(FCM,Fuzzy CMeans)类型算法的理论最为完善,应用最为广泛。二二.模糊模糊C均值算法均值算法1.模糊C均值聚类的准则设 是n个样本组成的样本集合,c为预定的类别数目,是第i个样本对于第j类的隶属度函数。用隶属度函数定义的聚类损失函数可以写为其中,b1,是一个可以控制聚类结果的模糊程
3、度的常数。在不同的隶属度定义方法下最小化聚类损失函数,就得到不同的模糊聚类方法。其中最有代表性的是模糊C均值方法,它要求一个样本对于各个聚类的隶属度之和为1,即:二二.模糊模糊C均值算法均值算法2.模糊C均值算法步骤(1)设定聚类数目c和加权指数b:J.C.Bezdek根据经验,认为b 取2 最合适。Cheung和Chen从汉字识别的应用背景得出b的最佳取值应在1.251.75之间。Bezdek和Hathaway等人从算法收敛性角度着手,得出b 的取值与样本数目n有关的结论,建议b的取值要大于n/(n2)。Pal等人从聚类有效性方面的实验研究得到b的最佳选取区间为1.5,2.5,在不做特殊要求
4、下可取区间中值b=2。二二.模糊模糊C均值算法均值算法(2)初始化各个聚类中心 :式中,Ni是第i聚类中的样本数目。(3)重复下面的运算,直到各个样本的隶属度值稳定:用当前的聚类中心根据下式计算隶属度函数:二二.模糊模糊C均值算法均值算法用当前的隶属度函数按下式更新计算各类聚类中心:当模糊C均值算法收敛时,就得到了各类的聚类中心和各个样本对于各类的隶属度值,从而完成了模糊聚类划分。如果需要,还可以将模糊聚类结果进行解模糊,即用一定的规则把模糊聚类划分转化为确定性分类。三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现1.重要程序代码这里对酒瓶颜色进行分类。下面介绍其重要程序代码:1)MA
5、TLAB模糊C均值数据聚类识别函数在MATLAB中(b=2),只要直接调用如下程序即可实现模糊C均值聚类:Center,U,obj_fcn=fcm(data,cluster_n)data:要聚类的数据集合,每一行为一个样本;cluster_n:聚类数;Center:最终的聚类中心矩阵,每一行为聚类中心的坐标值;U:最终的模糊分区矩阵;obj_fcn:在迭代过程中的目标函数值。三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现注意:在使用上述方法时,要根据中心坐标Center的特点分清楚每一类中心所代表的实际中的哪一类,然后才能准确地将待聚类的各方案准确地分为各自所属的类别;否则,就会出现
6、张冠李戴的现象。2)MATLAB图形显示聚类模式使用命令center,U,obj_fcn=fcm(data,4)进行聚类后,可调用MATLAB图形窗口显示聚类结果,命令格式如下:lmaxU=max(U);%最大隶属度lindex1=find(U(1,:)=maxU)%找到属于第一类的点lindex2=find(U(2,:)=maxU)%找到属于第二类的点lindex3=find(U(3,:)=maxU)%找到属于第三类的点lindex4=find(U(4,:)=maxU)%找到属于第四类的点三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现为了提高图形的区分度,添加如下命令:lline(
7、data(index1,1),data(index1,2),data(index1,3),linestyle,none,marker,*,color,g);lline(data(index2,1),data(index2,2),data(index2,3),linestyle,none,marker,*,color,r);lline(data(index3,1),data(index3,2),data(index3,3),linestyle,none,marker,+,color,b);lline(data(index4,1),data(index4,2),data(index4,3),lin
8、estyle,none,marker,+,color,y);三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现2.MATLAB实现模糊C均值聚类完整程序lclear all;ldata=1739.94 1675.15 2395.96l373.3 3087.05 2429.47l1756.771652 1514.98l864.451647.31 2665.9l222.853059.54 2002.33l877.882031.66 3071.18l1803.581583.12 2163.05l2352.122557.04 1411.53l401.3 3259.94 2150.98l363.3
9、43477.95 2462.86l1571.171731.04 1735.33l104.8 3389.83 2421.83l499.853305.75 2196.22三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现l2297.283340.14 535.62l2092.623177.21 584.32l1418.791775.89 2772.9l1845.591918.81 2226.49l2205.363243.74 1202.69l2949.163244.44 662.42l1692.621867.5 2108.97l1680.671575.78 1725.1l2802.88301
10、7.11 1984.98l172.783084.49 2328.65l2063.543199.76 1257.21l1449.581641.58 3405.12l1651.521713.28 1570.38l341.593076.62 2438.63l291.023095.68 2088.95l237.633077.78 2251.96三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现l1702.81639.79 2068.74l1877.931860.96 1975.3l867.812334.68 2535.1l1831.491713.11 1604.68l460.693274.77
11、2172.99l2374.983346.98 975.31l2271.893482.97 946.7l1783.641597.99 2261.31l198.833250.45 2445.08l1494.632072.59 2550.51l1597.031921.52 2126.76l1598.931921.08 1623.33l1243.131814.07 3441.07l2336.312640.26 1599.63l354 3300.12 2373.61l2144.472501.62 591.51三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现l426.313105.29 2057.
12、8l1507.131556.89 1954.51l343.073271.72 2036.94l2201.943196.22 935.53l2232.433077.87 1298.87l1580.11752.07 2463.04l1962.41594.97 1835.95l1495.181957.44 3498.02l1125.171594.39 2937.73l24.22 3447.31 2145.01l1269.071910.72 2701.97l1802.071725.81 1966.35l1817.361927.4 2328.79l1860.451782.88 1875.13;lcent
13、er,U,obj_fcn=fcm(data,4);lplot3(data(:,1),data(:,2),data(:,3),o);三三.模糊模糊C均值聚类的均值聚类的MATLAB实现实现lgrid;lmaxU=max(U);lindex1=find(U(1,:)=maxU)lindex2=find(U(2,:)=maxU)lindex3=find(U(3,:)=maxU)lindex4=find(U(4,:)=maxU)lline(data(index1,1),data(index1,2),data(index1,3),linestyle,none,marker,*,color,g);llin
14、e(data(index2,1),data(index2,2),data(index2,3),linestyle,none,marker,*,color,r);lline(data(index3,1),data(index3,2),data(index3,3),linestyle,none,marker,+,color,b);lline(data(index4,1),data(index4,2),data(index4,3),linestyle,none,marker,+,color,y);ltitle(模糊C均值聚类分析图);lxlabel(第一特征坐标);ylabel(第二特征坐标);zl
15、abel(第三特征坐标);四四.模糊模糊C均值聚类结果分析均值聚类结果分析运行MATLAB程序,数据的模糊C均值聚类分析数据如下:lIteration count=1,obj.fcn=28484303.583307lIteration count=2,obj.fcn=22894174.219903lIteration count=3,obj.fcn=22492974.034424lIteration count=4,obj.fcn=20879539.602697lIteration count=5,obj.fcn=14444987.068964lIteration count=6,obj.fc
16、n=8322567.664727lIteration count=7,obj.fcn=7551351.839018lIteration count=8,obj.fcn=7439273.677928lIteration count=9,obj.fcn=7421451.003657lIteration count=10,obj.fcn=7417960.721127lIteration count=11,obj.fcn=7417133.213718lIteration count=12,obj.fcn=7416918.432660lIteration count=13,obj.fcn=7416860
17、.845351lIteration count=14,obj.fcn=7416845.240472lIteration count=15,obj.fcn=7416840.997724四四.模糊模糊C均值聚类结果分析均值聚类结果分析lIteration count=16,obj.fcn=7416839.842995lIteration count=17,obj.fcn=7416839.528623lIteration count=18,obj.fcn=7416839.443030lIteration count=19,obj.fcn=7416839.419726lIteration count=
18、20,obj.fcn=7416839.413381lIteration count=21,obj.fcn=7416839.411653lIteration count=22,obj.fcn=7416839.411183lIteration count=23,obj.fcn=7416839.411055lIteration count=24,obj.fcn=7416839.411020lIteration count=25,obj.fcn=7416839.411010四四.模糊模糊C均值聚类结果分析均值聚类结果分析分类情况如下:index1=461625323942535456index2=25
19、910121323272829343844 46 48 55index3=8141518192224353643454950index4=1 3 7 11 17 20 21 26 30 31 33 37 40 41 47 51 52 57 58 59四四.模糊模糊C均值聚类结果分析均值聚类结果分析分类结果图如下所示:四四.模糊模糊C均值聚类结果分析均值聚类结果分析数数据据编编号号原原始始分分类类预预测测分分类类数数据据编编号号原原始始分分类类预预测测分分类类数数据据编编号号原原始始分分类类预预测测分分类类数数据据编编号号原原始始分分类类预预测测分分类类数数据据编编号号原原始始分分类类预预测测分分类类133722131119442511233833142220222644311944154421222711433101116222233283354411331744233329336221233183324113033经过对比发现,用模糊C均值进行聚类分析的分类结果与给定结果完全吻合。
限制150内