收藏 分销(赏)

模糊聚类分析实验报告.doc

上传人:天**** 文档编号:10920954 上传时间:2025-06-21 格式:DOC 页数:13 大小:246.04KB 下载积分:8 金币
下载 相关
模糊聚类分析实验报告.doc_第1页
第1页 / 共13页
模糊聚类分析实验报告.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
模糊聚类分析实验报告 专业:信息及计算科学 姓名: 学号: 实验一 模糊聚类分析 实验目的: 掌握数据文件的标准化,模糊相似矩阵的建立方法,会求传递闭包矩阵;会使用数学软件MATLAB进行模糊矩阵的有关运算 实验学时:4学时 实验内容: ⑴ 根据已知数据进行数据标准化. ⑵ 根据已知数据建立模糊相似矩阵,并求出其传递闭包矩阵. ⑶ (可选做)根据模糊等价矩阵绘制动态聚类图. ⑷ (可选做)根据原始数据或标准化后的数据和⑶的结果确定最佳分类. 实验日期:20017年12月02日 实验步骤: 1 问题描述: 设有8种产品,它们的指标如下: x1 = (37,38,12,16,13,12) x2 = (69,73,74,22,64,17) x3 = (73,86,49,27,68,39) x4 = (57,58,64,84,63,28) x5 = (38,56,65,85,62,27) x6 = (65,55,64,15,26,48) x7 = (65,56,15,42,65,35) x8 = (66,45,65,55,34,32) 建立相似矩阵,并用传递闭包法进行模糊聚类。 2 解决步骤: 2.1 建立原始数据矩阵 设论域为被分类对象,每个对象又有个指标表示其性状,, 由此可得原始数据矩阵。 于是,得到原始数据矩阵为 其中表示第个分类对象的第个指标的原始数据,其中m = 6,n = 8。 2.2 样本数据标准化 2.2.1 对上述矩阵进行如下变化,将数据压缩到[0,1],使用方法为平移极差变换和最大值规格化方法。 (1)平移极差变换: , 显然有,而且也消除了量纲的影响。 (2)最大值规格化: , 2.2.2 使用Matlab实现代码: function [x_zuida, x_pingyi] = bzh(x) %函数功能:标准化矩阵 [m,n] = size(x); B = max(x); B1 = max(x) - min(x); Bm = min(x); for i = 1:n x1(:,i) = x(:,i)/B(i); %最大值规格化 x2(:,i) = (x(:,i) - Bm(i))/B1(i); %平移极差标准化 end x_zuida = x1 x_pingyi = x2 2.2.3 样本数据标准化后结果如图所示: 图一 最大值规格化 图二 平移极差标准化 2.3 构造模糊相似矩阵 2.3.1 根据各分类对象的不同指标的标准化数据,计算分类对象间的相似程度rij,建立模糊相似矩阵R,该操作又称标定,计算标定的方法很多,这里使用最大最小法和算术平均最小法。 (1) 最大最小法: (2) 算术平均最小法: 2.3.2 使用Matlab实现代码: function [R1,R2] = bd(x) %函数功能:标定 [m,n] = size(x); for i = 1:m for j = 1:m for k = 1:n qx(k) = min(x(i,k),x(j,k)); %取小 qd(k) = max(x(i,k),x(j,k)); %取大 end R1(i,j) = sum(qx)/sum(qd); %最大最小法 R2(i,j) = 2*sum(qx)/(sum(x(i,:))+sum(x(j,:))); %算术平均最小法 if i == j R1(i,j) = 1; R2(i,j) = 1; end end end R_zuidazuixiao = R1 R_suanshu = R2 2.3.4 将最大规格化后的数据进行构造模糊相似矩阵如图所示: 图三 最大最小法构造模糊相似矩阵 图四 算术平均法造构造模糊相似矩阵 2.4 建立模糊等价矩阵 2.4.1 根据标定所得的矩阵,只是一个模糊相似矩阵,不一定具有传递性,为了进行分类,还需要将改造成等价矩阵。采用平方法计算传递闭包: 经过有限次运算后存在k使,于是,即为所求的模糊等价矩阵。 2.4.2 使用Matlab实现代码: function [tr] = chuandi(x) %函数功能:求传递闭包 R = x; a=size(R); B=zeros(a); flag=0; while flag==0 for i= 1: a for j= 1: a for k=1:a B( i , j ) = max(min( R( i , k) , R( k, j) ) , B( i , j ) ) ;%R及R内积,先取小再取大 end end end if B==R flag=1; else R=B;%循环计算R传递闭包 end end tr = B; 2.4.3 对最大最小法构造模糊的相似矩阵求传递闭包结果如图所示: 图五 最大最小法构造模糊相似矩阵的传递闭包 图六 算术平均法造构造模糊相似矩阵的传递闭包 2.5 聚类分析 2.5.1 得到模糊等价矩阵后,可在适当水平上截取,将模糊等价矩阵中大于值的数归为一类。 2.5.2 使用Matlab实现求截矩阵代码: function [M,N]=julei(tR1) %函数功能:求出lamda截矩阵 tR = tR1; lamda=unique(tR); %取A矩阵不同元素构成的向量,来确定阈值 L=length(lamda); lamda = sort(lamda,'descend'); for i = 1:L tR = tR1; lamda(i) tR(find(tR>=lamda(i))) = 1; %令大于lamda的为1 tR(find(tR<lamda(i))) = 0; %令小于lamda的为0 tR end 2.5.3 对最大最小法构造模糊相似矩阵的传递闭包求出截矩阵,然后进行聚类,聚类结果如下: (1)当时,这8种产品分为8类{x1},{x2},{x3},{x4},{x5},{x6},{x7},{x8}。 图七 时的截矩阵 (2)当时,这8种产品分为7类{x1},{x2},{x3},{x4, x5},{x6},{x7},{x8}。 图八 时的截矩阵 (3)当时,这8种产品分为6类{x1},{x2, x3},{x4, x5},{x6},{x7},{x8}。 图九 时的截矩阵 (4)当时,这8种产品分为5类{x1},{x2, x3},{x4, x5, x8},{x6},{x7}。 图十 时的截矩阵 (5)当时,这8种产品分为4类{x1},{x2, x3},{x4, x5, x6, x8},{x7}。 图十一 时的截矩阵 (6)当时,这8种产品分为3类{x1},{x2, x3, x7},{x4, x5, x6, x8}。 图十二 时的截矩阵 (7)当时,这8种产品分为2类{x1},{x2, x3, x7, x4, x5, x6, x8}。 图十三 时的截矩阵 (8)当时,这8种产品分为1类{x1, x2, x3, x7, x4, x5, x6, x8}。 图十四 时的截矩阵 2.5 动态聚类图 2.5.1根据所求得的传递闭包,再让由大变小,就可形成动态聚类图。 2.5.2 使用Matlab实现代码: function [M,N]=juleitu(tR) %函数功能:画动态聚类图 lamda=unique(tR);%取A矩阵不同元素构成的向量,来确定阈值 L=length(lamda); M=1:L; for i=L-1:-1:1 %获得分类情况:对元素分类进行排序 [m,n]=find(tR==lamda(i)); N{i,1}=n; N{i,2}=m; tR(m(1),:)=0; mm=unique(m); N{i,3}=mm; len=length(find(m==mm(1))); depth=length(find(m==mm(2))); index1=find(M==mm(1)); MM=[M(1:index1-1),M(index1+depth:L)]; index2=find(MM==mm(2)); M=M(index1:index1+depth-1); M=[MM(1:index2-1),M,MM(index2:end)]; end M=[1:L;M;ones(1,L)]; h=(max(lamda)-min(lamda))/L; figure text(L,1,sprintf('x%d',M(2,L))); text(0,1,sprintf('%3.4f',1)); text(0,(1+min(lamda))/2,sprintf('%3.4f',(1+min(lamda))/2)); text(0,min(lamda),sprintf('%3.4f',min(lamda))); hold on for i=L-1:-1:1 %获得分类情况:每一个子类的元素 m=N{i,2}; n=N{i,1}; mm=N{i,3}; k=find(M(2,:)==mm(1)); l=find(M(2,:)==mm(2)); x1=M(1,k); y1=M(3,k); x2=M(1,l); y2=M(3,l); x=[x1,x1,x2,x2]; M(3,[k,l])=lamda(i); M(1,[k,l])=sum(M(1,[k,l]))/length(M(1,[k,l])); y=[y1,lamda(i),lamda(i),y2]; plot(x,y); text(i,1,sprintf('x%d',M(2,i))); text(M(1,k(1)),lamda(i)+h*0.1,sprintf('%3.4f',lamda(i))); end axis([0 L+1 min(lamda) max(lamda)]) axis off hold off end 2.5.1 动态聚类图如图所示: 图十五 动态聚类图 实验心得: 通过这次实验,让我了解到模糊矩阵的一些基本知识,同时也让我了解到了模糊关系,然后也让我学会应用模糊聚类分析。同时也让我更加了解对Matlab的操作,特别是关于矩阵的操作命令。 附录: main.m x=[37 38 12 16 13 12; 69 73 74 22 64 17; 73 86 49 27 68 39; 57 58 64 84 63 28; 38 56 65 85 62 27; 65 55 64 15 26 48; 65 56 15 42 65 35 ; 66 45 65 55 34 32]; x_zuida = []; x_pingyi = []; R_zuidazuixiao = []; R_suanshu = []; [x_zuida,x2] = bzh(x); [R_zuidazuixiao,R_suanshu] = bd(x_zuida); tR_zuidazuixiao = chuandi(R_zuidazuixiao) tR_suanshu = chuandi(R_suanshu) juleitu(tR_zuidazuixiao) julei(tR_zuidazuixiao) 13 / 13
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服