摘要:本文主要講解如何得到CMC曲線。
CMC曲線就是算一種top-k的擊中概率,主要用閉集測試。比如有n個注冊樣本,現(xiàn)在想測試性能,測試樣本依次和n個注冊樣本算取一個距離,然后排序,看類類樣本位于前top-k,最后統(tǒng)計得到CMC曲線。計算CMC曲線的函數(shù)代碼如下:
function accuracy = calrank(distance,rankvalue,info)
for k = 1:length(rankvalue)
count = 0;
for i = 1:size(distance,1)
rankinfo = distance(:,i);
%[score,position] = sort(rankinfo,'ascend');
[score,position] = sort(rankinfo,info);
for j = 1:rankvalue(k);
if (position(j)==i)
count = count + 1;
break;
end
end
accuracy(k) = count/size(distance,1);
end
end
distance代表全比對的分數(shù),那么對角線是類類樣本的比對分數(shù)。info為排列順序,升序為’ascend’,降序為’descend’。 rankvalue是我們需要選取的top-k的值,可以賦值為rankvalue=[1,2,3,4,5,…,k];
下面由calrank函數(shù)得到的圖例:
Rank Score