模糊聚类-matlab实现

上传人:ldj****22 文档编号:30206040 上传时间:2018-01-28 格式:DOC 页数:4 大小:34KB
返回 下载 相关 举报
模糊聚类-matlab实现_第1页
第1页 / 共4页
模糊聚类-matlab实现_第2页
第2页 / 共4页
模糊聚类-matlab实现_第3页
第3页 / 共4页
模糊聚类-matlab实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《模糊聚类-matlab实现》由会员分享,可在线阅读,更多相关《模糊聚类-matlab实现(4页珍藏版)》请在金锄头文库上搜索。

1、模糊聚类-matlab 实现%模糊聚类%clear;load F:从 0 开始 数据data.txt;INPUTDATA=data;%-原始数据标准化 -%disp(请选择原始数据标准化方式: );disp();wayforstand=input(请输入: );switch wayforstandcase 1,DATAFORCLUS=standard_use_sum(INPUTDATA);case 2,DATAFORCLUS=standard_use_std(INPUTDATA);case 3,DATAFORCLUS=standard_use_max(INPUTDATA);case 4,DAT

2、AFORCLUS=standard_use_jc(INPUTDATA);otherwiseerror(您的输入不符合要求 -执行结束!);end%基于模糊等价关系的模糊聚类 %-构造相似关系-%numrows=size(DATAFORCLUS,1);numcols=size(DATAFORCLUS,2);disp(请选择对象之间相似性统计量的方式: );disp();wayforr_ij=input(请输入: );switch wayforr_ijcase 1, %-相关系数法for i=1:numrows,for j=1:numrows,meani=mean(DATAFORCLUS(i,:)

3、;meanj=mean(DATAFORCLUS(j,:); simiR(i,j)=sum(DATAFORCLUS(i,:)-meani).*(DATAFORCLUS(j,:)-meanj)/.(sqrt(sum(DATAFORCLUS(i,:)-meani).2)*sqrt(sum(DATAFORCLUS(j,:)-meanj).2); endendcase 2, %-夹角余弦法for i=1:numrows,for j=1:numrows,simiR(i,j)=sum(DATAFORCLUS(i,:).*DATAFORCLUS(j,:)/. (sqrt(sum(DATAFORCLUS(i,:

4、).*DATAFORCLUS(i,:)*sqrt(sum(DATAFORCLUS(j,:).*DATAFORCLUS(j,:);endendcase 3, %-指数相似系数法case 4, %-绝对值指数法case 5, %-算术平均最小法case 6, %-最大最小值法case 7, %-绝对值差数法case 8, %-数量积法otherwiseerror(您的输入不符合要求 -执行结束!);end%-改造成等价关系-%sign=0;numselfmul=1;simiRk=eye(numrows);equi_tem=simiR;while sign=0,for i=1:numrows,for

5、 j=1:numrows,for c=1:numrows,rij_temp(c)=min(equi_tem(i,c) equi_tem(c,j);endsimiRk(i,j)=max(rij_temp);endend %-%if sum(sum(simiRk-equi_tem,1)=0,numselfmul=numselfmul+1;equi_tem=simiRk;elsesign=1;breakend%-%endif sign=1, disp(从相似矩阵到等价矩阵改造成功!);elsedisp(从相似矩阵到等价矩阵改造失败!);endequiR=simiRk;numclass=input(请

6、输入聚类数: );%-在不同的截集水平进行聚类-%clasc=0;comp_vec(1,1:numrows)=0;index=0;clasc=0;tip=0;alpha=0;temnumeachclass=0;while (tip=0),%alpha=input(请输入进行分类的截集水平 : );%alpha=0.5; %调试if (alpha1),error(您输入的截集水平 不符合分类要求 -执行结束!);endcomp_arr=ones(numrows)*alpha;result_arr=(equiR=comp_arr); %-result_arr 判断矩阵%捡菜算法for i=1:nu

7、mrows,if sum(comp_vec(1,:)=result_arr(i,:)=numclass,tip=1; %当模糊分类的数目小于等于所给出的类数时退出循环体disp(成功!);elseclear class;clear numeachclass;clear nec;clasc=0;index=0;temnumeachclass=0;alpha=alpha+0.01;endend%-取聚类结果-%num=0;n=0;for i=1:clasc,for j=1:nec(i),num=num+1;n=n+1;CLUS(n,:)=INPUTDATA(class(num),:);endn=n+1;CLUS(n,:)=inf;end%format single(CLUS)lenexport=size(CLUS,1);for i=1:lenexport,RESULT(i,:)=sprintf(%15.2f,CLUS(i,:);endRESULT

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号