Matlab笔记——模糊聚类分析原理及实现023.doc

上传人:豆**** 文档编号:33503059 上传时间:2022-08-11 格式:DOC 页数:12 大小:420.50KB
返回 下载 相关 举报
Matlab笔记——模糊聚类分析原理及实现023.doc_第1页
第1页 / 共12页
Matlab笔记——模糊聚类分析原理及实现023.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《Matlab笔记——模糊聚类分析原理及实现023.doc》由会员分享,可在线阅读,更多相关《Matlab笔记——模糊聚类分析原理及实现023.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-作者xxxx-日期xxxxMatlab笔记模糊聚类分析原理及实现023【精品文档】23. 模糊聚类分析原理及实现聚类分析,就是用数学方法研究和处理所给定对象,按照事物间的相似性进行区分和分类的过程。 传统的聚类分析是一种硬划分,它把每个待识别的对象严格地划分到某个类中,具有非此即彼的性质,这种分类的类别界限是分明的。随着模糊理论的建立,人们开始用模糊的方法来处理聚类问题,称为模糊聚类分析。由于模糊聚类得到了样本数与各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界。本篇先介绍传统的两种(适合数据量较小情形,及理解模糊聚类原理):基于

2、择近原则、模糊等价关系的模糊聚类方法。(一)预备知识一、模糊等价矩阵定义1设R=(rij)nn为模糊矩阵,I为n阶单位矩阵,若R满足i) 自反性:IR (等价于rii =1);ii) 对称性:RT=R;则称R为模糊相似矩阵,若再满足iii) 传递性:R2R(等价于)则称R为模糊等价矩阵。定理1设R为n阶模糊相似矩阵,则存在一个最小的自然数k(kn), 使得Rk为模糊等价矩阵,且对一切大于k的自然数l,恒有Rl=Rk. Rk称为R的传递闭包矩阵,记为t(R).二、模糊矩阵的-截矩阵定义2设A=(aij)nm为模糊矩阵,对任意的0,1, 作矩阵其中,称为模糊矩阵A的-截矩阵。显然,A为布尔矩阵,且

3、其等价性与与A一致。意义:将模糊等价矩阵转化为等价的布尔矩阵,可以得到有限论域上的普通等价关系,而等价关系是可以分类的。因此,当在0,1上变动时,由A得到不同的分类。若12, 则A1A2, 从而由A2确定的分类是由A1确定的分类的加细。当从1递减变化到0时,A的分类由细变粗,逐渐归并,形成一个分级聚类树。例1设U=u1, u2, u3, u4, u5, 对给定的U上的模糊等价关系让从1到0变化,观察分类过程。 (1) 当=1时,分类结果为5类:(每行代表一类,1代表对应元素在该类)u1, u2, u3, u4, u5 (2) 当时,分类结果为4类:u1, u3, u2, u4, u5 (3)

4、当时,分类结果为3类:u1, u3, u2, u4, u5 (4) 当时,分类结果为2类:u1, u3, u4, u5, u2 (4) 当(R中的最小值)时,分类结果为1类:u1, u2, u3, u4, u5整个动态分类过程如下:(二)基于择近原则的模糊聚类择近原则就是利用贴近度来实现分类操作,贴近度用来衡量两个模糊集A和B的接近程度,用N(A,B)表示。贴近度越大,表明二者越接近。设论域有限或者在一定区间,即U=u1, u2, , un或U=a,b, 常用的贴近度有以下三种: (1) 海明贴近度(2) 欧氏贴近度(3) 格贴近度其中,.Matlab实现:格贴近度的实现函数function

5、y=fuz_closing(A,B,type)%要求A与B列数相同的行向量m,n=size(A);switch typecase 1 %海明贴近度 y=1-sum(abs(A-B)/n; case 2 %欧氏贴近度 y=1-(sum(A-B).2)(1/2)/sqrt(n); case 3 %格贴近度 y1=max(min(ones(m,n)-A,ones(m,n)-B); %ones(m,n)-A等于Ac y2=max(min(A,B); y=min(y1,y2);end例2 设某产品的质量等级分为5级,其中一级有5种评判因素u1, u2, u3, u4, u5. 每一等级的模糊集为B1=0

6、.5 0.5 0.6 0.4 0.3B2=0.3 0.3 0.4 0.2 0.2B3=0.2 0.2 0.3 0.1 0.1B4=0.1 0.1 0.2 0.1 0B5=0.1 0.1 0.1 0.1 0假设某产品各评判因素的值为A=0.4 0.3 0.2 0.1 0.2, 问该产品属于哪个等级?代码:A=0.4 0.3 0.2 0.1 0.2;B=0.5 0.5 0.6 0.4 0.3; 0.3 0.3 0.4 0.2 0.2; 0.2 0.2 0.3 0.1 0.1; 0.1 0.1 0.2 0.1 0; 0.1 0.1 0.1 0.1 0;fori=1:5haiming(i)=fuz_c

7、losing(A,B(i,:),1);oushi(i)=fuz_closing(A,B(i,:),2);ge(i)=fuz_closing(A,B(i,:),3);endhaimingoushige运行结果:可见样本A与各等级的格贴近度分别为0.4, 0.3, 0.2, 0.2, 0.1, 故可认为该产品属于B1等级。若按令两种贴近度判断,该产品属于B2等级。(三)基于模糊等价关系的模糊聚类一、算法步骤1. 样本数据归一化设X=x1, x2, , xn为要分类的n个样本,每个样本有m个指标,即xi= xi1, xi2, , xim, i=1,2,.,n得到原始数据矩阵X=(xij)nm.由于不

8、同指标的数据量纲不同,为了使数据能够比较,要先对X做归一化处理。2. 建立模糊相似矩阵R先建立样本xi与xj相似程度rij, 进而构造模糊相似矩阵R=(rij)nn建立rij常用的方法有:(1) 相似系数法夹角余弦法:相关系数法:(2)距离法一般取rij=1-c(d(xi,xj), 其中c和为适当选取的参数,使得0rij1. 常用的距离有:海明距离:欧氏距离:切比雪夫距离:(3) 贴近度法最大最小法:算术平均最小法:几何平均最小法:3. 求出R的传递闭包t(R)即改造相似关系为等价关系:令, 再令, , 直到满足与Rl相等,即为t(R), 仍记为R. 4. 选取合适的, 利用-截矩阵R进行分类

9、(参考例1)。二、Matlab实现求模糊相似矩阵R的函数:function R=fuz_distance(x,type)%x为归一化的数据矩阵, type选择计算相似程度的方法%返回模糊相似矩阵Rn,m=size(x);%距离法的选择参数c和a, 需要根据具体情况修改以保证R(i,j)属于0,1c=0.1;a=1;fori=1:nfor j=1:nswitch typecase 1 %夹角余弦法 R(i,j)=(x(i,:)*x(j,:)/(norm(x(i,:),2)*norm(x(j,:),2); case 2 %相关系数法Dxi=abs(x(i,:)-mean(x(i,:);Dxj=ab

10、s(x(j,:)-mean(x(j,:); R(i,j)=(Dxi*Dxj)/(norm(Dxi,2)*norm(Dxj,2);case 3 %海明距离法 d=sum(abs(x(i,:)-x(j,:);R(i,j)=1-c*da;case 4 %欧氏距离法 d=norm(x(i,:)-x(j,:),2);R(i,j)=1-c*da;case 5 %切比雪夫距离法 d=max(abs(x(i,:)-x(j,:);R(i,j)=1-c*da;case 6 最大最小(贴近度)法R(i,j)=sum(min(x(i,:);x(j,:)/sum(max(x(i,:);x(j,:);case 7 算术平

11、均最小(贴近度)法 R(i,j)=2*sum(min(x(i,:);x(j,:)/sum(x(i,:)+x(j,:);case 8 %几何平均最小(贴近度)法R(i,j)=sum(min(x(i,:);x(j,:)/sum(sqrt(x(i,:).*x(j,:);endendend求R的传递闭包t(R)的函数:function B,k=tran_R(R)%R为模糊相似矩阵, 循环构造满足传递性的t(R)%k为满足R2k = Rk的最小的自然数kn=length(R);B=zeros(n,n);flag=0;k=1/2;while flag=0 B=fco(R,R); %做模糊合成运算 k=2*

12、k;if B=Rflag=1;else R=B; %循环计算R传递闭包endend上面的函数调用函数矩阵模糊合成算子函数:function B=fco(Q,R)%实现模糊合成算子的计算, 要求Q的列数等于R的行数n,m=size(Q); m,l=size(R);B=zeros(n,l);fori=1:nfor k=1:l B(i,k)=max(min(Q(i,:);R(:,k); endend求t(R)的-截矩阵的函数:function y=fuz_lamda(X,m)%用-截矩阵将样本分成m类, m总样本数lamda=unique(X); %根据R中的值取值%unique函数取矩阵不重复元素

13、组成向量并从小到大排好序X(find(X=lamda(m)=1;y=X;例3某地区设有11个雨量站,其分布如图所示:10年来各雨量站测得的年降雨量表如下:现因经费问题,希望撤销几个雨量站,问撤销哪些雨量站而不会太多地减少降雨信息?分析:对11个雨量站进行模糊聚类,同一类的只需保留一个即可。比如,已知该市决定撤销6个只保留5个雨量站,则模糊聚类为5类。代码:loaddata;%数据归一化X,ps=mapminmax(data,0,1);X=X;%选择计算相似程度的方法type=3; %c=0.1, a=1, 此时也称绝对值减数法%求模糊相似矩阵R0R0=fuz_distance(X,type)%

14、将模糊相似矩阵R0改造成模糊等价矩阵RR,k=tran_R(R0)%求将样本分成8类的-截矩阵R_lamda=fuz_lamda(R,8)运行结果及说明:归一化后的数据矩阵X:模糊相似矩阵R0:由R0改造成的模糊等价矩阵R:k = 8说明R16=R8.将样本分为5类的-截矩阵R_lamda:可以判断5类分别是:x1,x7 x2, x4,x5,x6 x3, x9 x8, x11 x10注:对于这类C均值模糊聚类问题,也可以直接调用Matlab自带的模糊聚类函数求解。调用方式:center,U, obj_fcn,=fcm(data,cluster_n)其中,data为归一化后的样本数据,每一行是一

15、个样本;cluster_n为聚类数;center返回最终的聚类中心矩阵;U为最终的模糊分区矩阵;obj_fcn为迭代过程中的目标函数值(越小越好)。代码:(X为前面已归一化的样本数据)center,U, obj_fcn=fcm(X,5)maxU=max(U);index1 = find(U(1,:)=maxU); %第一类index2 = find(U(2,:)=maxU); %第二类index3 = find(U(3,:)=maxU); %第三类index4 = find(U(4,:)=maxU); %第四类index5 = find(U(5,:)=maxU); %第五类class1=X(index1,:) %第一类中的样本数据class2=X(index2,:) %第二类中的样本数据class3=X(index3,:) %第三类中的样本数据class4=X(index4,:) %第四类中的样本数据class5=X(index5,:) %第五类中的样本数据运行结果略,对比class1-class5与X, 得到分类结果与前文相同。另外,分为5类的obj_fcn=1.0578, 如何选取合适的分类数,使得obj_fcn达到最小(最优模糊聚类)放到下一篇。【精品文档】

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com