《模糊C均值聚类[知识应用].ppt》由会员分享,可在线阅读,更多相关《模糊C均值聚类[知识应用].ppt(20页珍藏版)》请在三一文库上搜索。
1、主 讲:周润景 教授 单 位:电子信息工程学院,模糊C均值聚类,1,骄阳书苑,目 录,模糊C均值聚类应用背景 模糊C均值算法 模糊C均值聚类的MATLAB实现 模糊C均值聚类结果分析,2,骄阳书苑,一.模糊C均值聚类应用背景,传统的聚类分析是一种硬划分(Crisp Partition),它把每个待辨识的对象严格地划分到某类中,具有“非此即彼”的性质,因此这种类别划分的界限是分明的。然而实际上大多数对象并没有严格的属性,它们在性质和类属方面存在着中介性,具有“亦此亦彼”的性质,因此适合进行软划分。Zadeh提出的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊方法来处理聚类问题,并称之
2、为模糊聚类分析。模糊聚类得到了样本属于各个类别的不确定性程度,表达了样本类属的中介性,建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界,从而成为聚类分析研究的主流。 在基于目标函数的聚类算法中模糊C均值(FCM,Fuzzy CMeans)类型算法的理论最为完善,应用最为广泛。,3,骄阳书苑,二.模糊C均值算法,1.模糊C均值聚类的准则 设 是n个样本组成的样本集合,c为预定的类别数目, 是第i个样本对于第j类的隶属度函数。用隶属度函数定义的聚类损失函数可以写为 其中,b1,是一个可以控制聚类结果的模糊程度的常数。 在不同的隶属度定义方法下最小化聚类损失函数,就得到不同的模糊聚类方法
3、。其中最有代表性的是模糊C均值方法,它要求一个样本对于各个聚类的隶属度之和为1,即:,4,骄阳书苑,二.模糊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,在不做特殊要求下可取区间中值b = 2。,5,骄阳书苑,二.模糊C均值
4、算法,(2)初始化各个聚类中心 : 式中,Ni是第i聚类中的样本数目。 (3)重复下面的运算,直到各个样本的隶属度值稳定: 用当前的聚类中心根据下式计算隶属度函数:,6,骄阳书苑,二.模糊C均值算法,用当前的隶属度函数按下式更新计算各类聚类中心: 当模糊C均值算法收敛时,就得到了各类的聚类中心和各个样本对于各类的隶属度值,从而完成了模糊聚类划分。如果需要,还可以将模糊聚类结果进行解模糊,即用一定的规则把模糊聚类划分转化为确定性分类。,7,骄阳书苑,三.模糊C均值聚类的MATLAB实现,1.重要程序代码 这里对酒瓶颜色进行分类。下面介绍其重要程序代码: 1)MATLAB模糊C均值数据聚类识别函数
5、 在MATLAB中(b=2),只要直接调用如下程序即可实现模糊C均值聚类: Center,U,obj_fcn=fcm(data,cluster_n) data:要聚类的数据集合,每一行为一个样本; cluster_n:聚类数; Center:最终的聚类中心矩阵,每一行为聚类中心的坐标值; U:最终的模糊分区矩阵; obj_fcn:在迭代过程中的目标函数值。,8,骄阳书苑,三.模糊C均值聚类的MATLAB实现,注意:在使用上述方法时,要根据中心坐标Center的特点分清楚每一类中心所代表的实际中的哪一类,然后才能准确地将待聚类的各方案准确地分为各自所属的类别;否则,就会出现张冠李戴的现象。 2)
6、MATLAB图形显示聚类模式 使用命令center,U,obj_fcn = fcm(data,4)进行聚类后,可调用MATLAB图形窗口显示聚类结果,命令格式如下: maxU=max(U); %最大隶属度 index1 = find(U(1,:) = maxU) %找到属于第一类的点 index2 = find(U(2,:) = maxU) %找到属于第二类的点 index3 = find(U(3,:) = maxU) %找到属于第三类的点 index4 = find(U(4,:) = maxU) %找到属于第四类的点,9,骄阳书苑,三.模糊C均值聚类的MATLAB实现,为了提高图形的区分度,
7、添加如下命令: line(data(index1,1),data(index1,2),data(index1,3),linestyle,none,marker,*,color,g); line(data(index2,1),data(index2,2),data(index2,3),linestyle,none,marker,*,color,r); line(data(index3,1),data(index3,2),data(index3,3),linestyle,none,marker,+,color,b); line(data(index4,1),data(index4,2),data(
8、index4,3),linestyle,none,marker,+,color,y);,10,骄阳书苑,三.模糊C均值聚类的MATLAB实现,2. MATLAB实现模糊C均值聚类完整程序 clear all; data=1739.94 1675.15 2395.96 373.3 3087.05 2429.47 1756.771652 1514.98 864.451647.31 2665.9 222.853059.54 2002.33 877.882031.66 3071.18 1803.581583.12 2163.05 2352.122557.04 1411.53 401.3 3259.94
9、 2150.98 363.343477.95 2462.86 1571.171731.04 1735.33 104.8 3389.83 2421.83 499.853305.75 2196.22,11,骄阳书苑,三.模糊C均值聚类的MATLAB实现,2297.283340.14 535.62 2092.623177.21 584.32 1418.791775.89 2772.9 1845.591918.81 2226.49 2205.363243.74 1202.69 2949.163244.44 662.42 1692.621867.5 2108.97 1680.671575.78 1725
10、.1 2802.883017.11 1984.98 172.783084.49 2328.65 2063.543199.76 1257.21 1449.581641.58 3405.12 1651.521713.28 1570.38 341.593076.62 2438.63 291.023095.68 2088.95 237.633077.78 2251.96,12,骄阳书苑,三.模糊C均值聚类的MATLAB实现,1702.81639.79 2068.74 1877.931860.96 1975.3 867.812334.68 2535.1 1831.491713.11 1604.68 46
11、0.693274.77 2172.99 2374.983346.98 975.31 2271.893482.97 946.7 1783.641597.99 2261.31 198.833250.45 2445.08 1494.632072.59 2550.51 1597.031921.52 2126.76 1598.931921.08 1623.33 1243.131814.07 3441.07 2336.312640.26 1599.63 354 3300.12 2373.61 2144.472501.62 591.51,13,骄阳书苑,三.模糊C均值聚类的MATLAB实现,426.3131
12、05.29 2057.8 1507.131556.89 1954.51 343.073271.72 2036.94 2201.943196.22 935.53 2232.433077.87 1298.87 1580.11752.07 2463.04 1962.41594.97 1835.95 1495.181957.44 3498.02 1125.171594.39 2937.73 24.22 3447.31 2145.01 1269.071910.72 2701.97 1802.071725.81 1966.35 1817.361927.4 2328.79 1860.451782.88 18
13、75.13; center,U,obj_fcn = fcm(data,4); plot3(data(:,1),data(:,2),data(:,3),o);,14,骄阳书苑,三.模糊C均值聚类的MATLAB实现,grid; maxU=max(U); index1 = find(U(1,:) = maxU) index2 = find(U(2,:) = maxU) index3 = find(U(3,:) = maxU) index4 = find(U(4,:) = maxU) line(data(index1,1),data(index1,2),data(index1,3),linestyle
14、,none,marker,*,color,g); line(data(index2,1),data(index2,2),data(index2,3),linestyle,none,marker,*,color,r); line(data(index3,1),data(index3,2),data(index3,3),linestyle,none,marker,+,color,b); line(data(index4,1),data(index4,2),data(index4,3),linestyle,none,marker,+,color,y); title(模糊C均值聚类分析图); xlab
15、el(第一特征坐标); ylabel(第二特征坐标); zlabel(第三特征坐标);,15,骄阳书苑,四.模糊C均值聚类结果分析,运行MATLAB程序,数据的模糊C均值聚类分析数据如下: Iteration count = 1, obj. fcn = 28484303.583307 Iteration count = 2, obj. fcn = 22894174.219903 Iteration count = 3, obj. fcn = 22492974.034424 Iteration count = 4, obj. fcn = 20879539.602697 Iteration cou
16、nt = 5, obj. fcn = 14444987.068964 Iteration count = 6, obj. fcn = 8322567.664727 Iteration count = 7, obj. fcn = 7551351.839018 Iteration count = 8, obj. fcn = 7439273.677928 Iteration count = 9, obj. fcn = 7421451.003657 Iteration count = 10, obj. fcn = 7417960.721127 Iteration count = 11, obj. fc
17、n = 7417133.213718 Iteration count = 12, obj. fcn = 7416918.432660 Iteration count = 13, obj. fcn = 7416860.845351 Iteration count = 14, obj. fcn = 7416845.240472 Iteration count = 15, obj. fcn = 7416840.997724,16,骄阳书苑,四.模糊C均值聚类结果分析,Iteration count = 16, obj. fcn = 7416839.842995 Iteration count = 1
18、7, obj. fcn = 7416839.528623 Iteration count = 18, obj. fcn = 7416839.443030 Iteration count = 19, obj. fcn = 7416839.419726 Iteration count = 20, obj. fcn = 7416839.413381 Iteration count = 21, obj. fcn = 7416839.411653 Iteration count = 22, obj. fcn = 7416839.411183 Iteration count = 23, obj. fcn
19、= 7416839.411055 Iteration count = 24, obj. fcn = 7416839.411020 Iteration count = 25, obj. fcn = 7416839.411010,17,骄阳书苑,四.模糊C均值聚类结果分析,分类情况如下: index1 = 461625323942535456 index2 = 25910121323272829343844 46 48 55 index3 = 8141518192224353643454950 index4 = 1 3 7 11 17 20 21 26 30 31 33 37 40 41 47 51 52 57 58 59,18,骄阳书苑,四.模糊C均值聚类结果分析,分类结果图如下所示:,19,骄阳书苑,四.模糊C均值聚类结果分析,经过对比发现,用模糊C均值进行聚类分析的分类结果与给定结果完全吻合。,20,骄阳书苑,