資源簡(jiǎn)介
FCM聚類(lèi)。。
代碼片段和文件信息
function[centerUobj_fun]=FCMCluster(datanoptions)
%采用模糊C均值將數(shù)據(jù)集data分為n類(lèi)
%用法
%?1?[centerUobj_fcn]=FCMCluster(datanoptions);
%?2?[centerUobj_fcn]=FCMCluster(datan);
%輸入?
%?data????n*m矩陣,n個(gè)樣本數(shù),每個(gè)樣本的維度為m
%?n???????類(lèi)別數(shù)
%?options?4*1?矩陣
%???options(1):隸屬度矩陣U的加權(quán)指數(shù)>1(缺省值2.0)
%???options(2):最大迭代次數(shù)(缺省值100)
%???options(3):隸屬度最小變化量,迭代終止條件(缺省值1e-5)
%???options(4):每次迭代是否輸出信息標(biāo)志(缺省值0)
%輸出
%?center????聚類(lèi)中心
%?U?????????隸屬度矩陣
%?obj_fun???目標(biāo)函數(shù)值
if?nargin~=2?&&?nargin~=3
????error(‘Too?many?or?too?few?input?arguments‘);??
end?
data_n=size(data1);???%求出data的第一維數(shù),即行數(shù)、樣本數(shù)?????
in_n=size(data2);??%求出data的第二維數(shù),即列數(shù)、特征屬性個(gè)數(shù)
%默認(rèn)參數(shù)
default_options=[2;100;1e-6;1];%隸屬度矩陣U的指數(shù)2,最大迭代次數(shù)100,
???????????????????????????????%隸屬度最小變化量,迭代終止條件1e-5
???????????????????????????????%1指輸出迭代信息標(biāo)志,可以設(shè)為0不輸出。
%參數(shù)配置
??%如果只輸入前兩個(gè)參數(shù),選用默認(rèn)的參數(shù);如果參數(shù)個(gè)數(shù)小于4,其他選用默認(rèn)參數(shù)
??if?nargin==2
??????options=default_options;???%如果輸入?yún)?shù)是2,則調(diào)用默認(rèn)的option
??else
???????if?length(options)<4??%如果option<4,則使用其他默認(rèn)值
???????????tmp=default_options;
???????????tmp(1:length(options))=options;
???????????options=tmp;
???????end?
???????nan_index=find(isnan(options)==1);?%檢測(cè)option中是否有nan值
???????options(nan_index)=default_options(nan_index);%將default_option的對(duì)應(yīng)位
?????????????????????????????????????????????%置的數(shù)值給option中不是數(shù)的位置
???????if?options(1)<=1
???????????error(‘The?exponent?should?be?greater?than?1!‘);
???????end??%如果模糊矩陣的指數(shù)<=1,給出報(bào)錯(cuò)。
??end?
??%將options?中的分量分別賦值給四個(gè)變量
??expo=options(1);?%隸屬度矩陣U的指數(shù)
??max_iter=options(2);%最大迭代次數(shù)
??min_impro=options(3);%隸屬度最小變化量,迭代終止條件
??displ
評(píng)論
共有 條評(píng)論