mykmeans.m
来自「data description toolbox 1.6 单类分类器工具包」· M 代码 · 共 51 行
M
51 行
%MYKMEANS K-means clustering%% [LABS,MEANS] = MYKMEANS(X,K)%% Place K centers in the data X using the k-means procedure.% Copyright: D.M.J. Tax, D.M.J.Tax@prtools.org% Faculty EWI, Delft University of Technology% P.O. Box 5031, 2600 GA Delft, The Netherlandsfunction [labs,means,err] = mykmeans(x,k,errtol)if nargin<3 errtol = 1e-5;end% init:[n,d] = size(x);% use k random objects as initializationI = randperm(n);means = x(I(1:k),:);% label all objects:D = distm(x,means);[mn, labs] = min(D,[],2);% the reconstruction error:err = sum(mn);olderr = 10*err;% update the means until the error does not changewhile ((olderr-err)>errtol*err) % update the means: for i=1:k I = find(labs==i); if length(I)>0 means(i,:) = mean(x(I,:),1); end end % relabel all objects: D = sqeucldistm(x,means); [mn, labs] = min(D,[],2); % the error: olderr = err; err = sum(mn);endreturn
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?