资源描述:
《模糊聚类-matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、模糊聚类-matlab实现%%%%%%%%%%%%%%%模糊聚类%%%%%%%%%%%%%%%%%%%%%%%clear;loadF:从0开始数据data.txt;INPUTDATA=data;%--------原始数据标准化-------%disp('请选择原始数据标准化方式:');disp('<1-总和标准化
2、2-标准差标准化
3、3-极大值标准化
4、4-极差标准化>');wayforstand=input('请输入:');switchwayforstand case1, DATAFORCLUS=standard_use
5、_sum(INPUTDATA); case2, DATAFORCLUS=standard_use_std(INPUTDATA); case3, DATAFORCLUS=standard_use_max(INPUTDATA); case4, DATAFORCLUS=standard_use_jc(INPUTDATA); otherwise error('您的输入不符合要求->执行结束!!!');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基于模糊等价关系的模糊
6、聚类%%%%%%%%%%%%%%%%%%%%%%%----------构造相似关系-----------%numrows=size(DATAFORCLUS,1);numcols=size(DATAFORCLUS,2);disp('请选择对象之间相似性统计量的方式:');disp('<1-相关系数法
7、2-夹角余弦法
8、3-指数相似系数法
9、4-绝对值指数法
10、5-算术平均最小法
11、6-最大最小值法
12、7-绝对值差数法
13、8-数量积法>');wayforr_ij=input('请输入:');switchwayforr_ij case1,%-------
14、----------------------------相关系数法 fori=1:numrows, forj=1:numrows, meani=mean(DATAFORCLUS(i,:));meanj=mean(DATAFORCLUS(j,:)); simiR(i,j)=sum((DATAFORCLUS(i,:)-meani).*(DATAFORCLUS(j,:)-meanj))/... (sqrt(sum
15、((DATAFORCLUS(i,:)-meani).^2))*sqrt(sum((DATAFORCLUS(j,:)-meanj).^2))); end end case2,%-----------------------------------夹角余弦法 fori=1:numrows, forj=1:numrows, simiR(i,j)=sum(DATAFORCLUS(i,:).*DATAFORCLUS(j,:))/...
16、 (sqrt(sum(DATAFORCLUS(i,:).*DATAFORCLUS(i,:)))*sqrt(sum(DATAFORCLUS(j,:).*DATAFORCLUS(j,:)))); end end case3,%-----------------------------------指数相似系数法case4,%-----------------------------------绝对值指数法case5,%-----------------------------------算术平均最小法
17、 case6,%-----------------------------------最大最小值法 case7,%-----------------------------------绝对值差数法 case8,%-----------------------------------数量积法otherwise error('您的输入不符合要求->执行结束!!!');end%-------改造成等价关系----------%sign=0;numselfmul=1;simiRk=eye(numrow
18、s);equi_tem=simiR;whilesign==0, fori=1:numrows, forj=1:numrows, forc=1: