[問題] 關於similarity measurement的寫法已回收
想請問下面利用顏色 (RGB histogram的資訊)
針對圖片的dataset在做similarity measurement的code,目標就是算出分類的正確性
不過想請問程式中的一些小細節是在做哪些處理?
像是下面這段code,就是在取得histogram中的value(color_hist)進行相似度比對嘛?
是怎麼達成的? 這樣做就算是用NN最近鄰居的方法嘛?
simMat = zeros(numFile, numFile);
for i =1:numFile
for j = i:numFile
simMat(i,j) = getsim(color_hist(i,:),color_hist(j,:),'L2');
simMat(j,i) = simMat(i,j);
end
end
搭配getsim.m
function sim = getsim(vector1, vector2, type)
if type == 'L2'
sim = (vector1-vector2)*(vector1-vector2)';
return
end
end
還有就是,比對相似度之後要計算分類的正確度
利用leave-one-out cross validation為何就是用下面這樣可以來完成呢?
for i = 1:numFile
[value, index] = sort(simMat(i,:));
if (class(index(2)) == class(i))
correct(class(i)) = correct(class(i))+1;
end
end
我只能看出最後面那邊correct+1...因為最後的accuracy就是
(correct的總數)/(全部dataset數目)
但是前面為什麼要sort? (class(index(2)) == class(i)) 又是怎樣的一個判斷?
最後正確性的計算方式是這樣子
accuracy = correct(1:class_num,1)./member_num(1:class_num,1);
非常謝謝大家回答!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 71.95.57.98