valid_errorate.m

来自「AP算法的改进」· M 代码 · 共 37 行

M
37
字号
function Rerror = valid_errorate(labels, truelabels)
% computing error rates for every clusters if true labels are given

nrow = length(truelabels);
[R, truelabels] = ind2cluster(truelabels);
[truelabels, S] = sort(truelabels);
labels = labels(S);
R = ind2cluster(labels);
k = length(R);

S = ones(nrow,1);
Sm=[];
for i = 1:k
   Sk = sort(R{i});
   m = length(Sk);
   n = max([round(sqrt(sqrt(m))+0.1) 1]);
   Sm(i) = mean(Sk(n:m-n+1));
end
[Sk, Sm]=sort(Sm);

for i = 1:k
   Sk = Sm(i);
   Sk = R{Sk};
   S(Sk)=i;
   Q = S(Sk)-truelabels(Sk);
   Q = nonzeros(Q);
   Q = length(Q);
   Rerror = 100*Q/length(Sk);
   fprintf('\n Error rate of cluster %d : %4.2f %%',i, Rerror);
end

S=S-truelabels;
S=nonzeros(S);
S=length(S);
Rerror=100*S/nrow;
fprintf('\n Error rate for all the data: %4.2f %% \n',Rerror);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?