[問題] 關於similarity measurement的寫法已回收

看板MATLAB作者 (transpotting)時間15年前 (2010/05/26 15:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問下面利用顏色 (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
文章代碼(AID): #1B_D809m (MATLAB)