資源簡介
K-means聚類算法的Matlab程序-附注釋
代碼片段和文件信息
function?[idxbest?CbesttotsumDbestZbest]?=?myKmeans(kstart)
%idxbest:最優(yōu)解的索引
%Cbest:最優(yōu)解的聚類中心
%totsumDbest:最優(yōu)解的所有類內(nèi)距離和的總和,即準(zhǔn)則函數(shù)的值
%X為樣本參數(shù)矩陣
%k為聚類個數(shù)
%start人為選擇的初始聚類中心的樣本點(diǎn)的編號向量
if?(k<1||k~=size(start2)||k>30)
????errordlg(‘輸入的參數(shù)不合法,請重新輸入!‘‘錯誤提示‘);
end
load?Wm.txt;
X=Wm(:2:3);
maxit=100;%所允許的最大迭代次數(shù)
[n?p]?=?size(X);%矩陣X的行列數(shù)
totsumD?=?0;%最優(yōu)解的所有類內(nèi)距離和的總和,即準(zhǔn)則函數(shù)的值
iter?=?0;%初始迭代次數(shù)
C?=?X(start:);%作為初始聚類中心的樣本點(diǎn)的參數(shù)信息矩陣
ClusterBest=?cell(31);%定義元胞數(shù)組,存放最后聚類的結(jié)果
ClusterBest=loopBody();%獲取最后結(jié)果(調(diào)用了循環(huán)體函數(shù))
??
%所輸出的結(jié)果對應(yīng)以上所定義的元胞數(shù)組的內(nèi)容
idxbest?=?ClusterBest{3};
Cbest?=?ClusterBest{2};
totsumDbest?=?ClusterBest{1};
Zbest=?Iterresult(idxbestiterCbesttotsumDbest);
?function?cellout?=?loopBody()%循環(huán)體函數(shù)(類似于主函數(shù))
?????
?cellout?=?cell(31);?????????
????????????????????????????
- 上一篇:基于MATLAB的視頻跟蹤
- 下一篇:灰色預(yù)測程序
評論
共有 條評論