预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(完整版)FCMClust(模糊c均值聚类算法MATLAB实现)(完整版)FCMClust(模糊c均值聚类算法MATLAB实现)(完整版)FCMClust(模糊c均值聚类算法MATLAB实现)function[center,U,obj_fcn]=FCMClust(data,cluster_n,options)%FCMClust.m采用模糊C均值对数据集data聚为cluster_n类%用法:%1。[center,U,obj_fcn]=FCMClust(Data,N_cluster,options);%2.[center,U,obj_fcn]=FCMClust(Data,N_cluster);%输入:%data—-——nxm矩阵,表示n个样本,每个样本具有m的维特征值%N_cluster—-—-标量,表示聚合中心数目,即类别数%options--—-4x1矩阵,其中%options(1):隶属度矩阵U的指数,>1(缺省值:2.0)%options(2):最大迭代次数(缺省值:100)%options(3):隶属度最小变化量,迭代终止条件(缺省值:1e—5)%options(4):每次迭代是否输出信息标志(缺省值:1)%输出:%center----聚类中心%U-—--隶属度矩阵%obj_fcn---—目标函数值%Example:%data=rand(100,2);%[center,U,obj_fcn]=FCMClust(data,2);%plot(data(:,1),data(:,2),’o');%holdon;%maxU=max(U);%index1=find(U(1,:)==maxU);%index2=find(U(2,:)==maxU);%line(data(index1,1),data(index1,2),’marker’,’*’,’color',’g’);%line(data(index2,1),data(index2,2),’marker’,'*’,’color’,'r’);%plot([center([12],1)],[center([12],2)],'*’,’color','k’)%holdoff;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ifnargin~=2&nargin~=3,%判断输入参数个数只能是2个或3个error(’Toomanyortoofewinputarguments!');enddata_n=size(data,1);%求出data的第一维(rows)数,即样本个数in_n=size(data,2);%求出data的第二维(columns)数,即特征值长度%默认操作参数default_options=[2;%隶属度矩阵U的指数100;%最大迭代次数1e-5;%隶属度最小变化量,迭代终止条件1];%每次迭代是否输出信息标志ifnargin==2,options=default_options;else%分析有options做参数时候的情况%如果输入参数个数是二那么就调用默认的option;iflength(options)<4,%如果用户给的opition数少于4个那么其他用默认值;tmp=default_options;tmp(1:length(options))=options;options=tmp;end%返回options中是数的值为0(如NaN),不是数时为1nan_index=find(isnan(options)==1);%将denfault_options中对应位置的参数赋值给options中不是数的位置。options(nan_index)=default_options(nan_index);ifoptions(1)〈=1,%如果模糊矩阵的指数小于等于1error(’Theexponentshouldbegreaterthan1!');endend%将options中的分量分别赋值给四个变量;expo=options(1);%隶属度矩阵U的指数max_iter=options(2);%最大迭代次数min_impro=options(3);%隶属度最小变化量,迭代终止条件display=options(4);%每次迭代是否输出信息标志obj_fcn=zeros(max_iter,1);%初始化输出参数obj_fcnU=initfcm(cluster_n,data_n);%初始化模糊分配矩阵,使U满足列上相加为1,%Main