簡體   English   中英

特征相似度的成對距離計算(多維矩陣)

[英]Pairwise Distance calculation (multidimentional matrix) for features similarity

好的,這是matlab中的公式:

function D = dumDistance(X,Y)
n1 = size(X,2);
n2 = size(Y,2);
D = zeros(n1,n2);
for i = 1:n1
    for j = 1:n2
        D(i,j) = sum((X(:,i)-Y(:,j)).^2);
    end
end

這里的功勞(我知道這不是一個快速的實現,而是出於基本算法的考慮)。

現在是我的理解問題;

假設我們有一個矩陣dictionary=140x100單詞。 矩陣page=140x40字。 每列代表140維空間中的一個單詞。

現在,如果我使用dumDistance(page,dictionairy) ,它將返回一個40x100的距離矩陣。

我要實現的是找到page矩陣的每個單詞與dictionary矩陣有多近,以便用具有直方圖的字典表示頁面。

我知道,如果我采用min(40x100),則將得到一個1x100矩陣,該矩陣的最小值表示我的直方圖。

我在這里真正無法理解的是這個40x100矩陣。 這個矩陣仍然代表什么數據? 我在腦海中無法想象這一點。

在我開始之前的小評論:

您應該真正使用pdist2代替。 這要快得多,您將得到與dumDistance相同的結果。 換句話說,您可以這樣稱呼它:

D = pdist2(page.', dictionary.');

您需要轉置pagedictionary因為pdist2假設每一都是一個觀察值,而每一列都對應一個變量/功能。 您的數據結構使得每一都是一個觀察值。 這將返回一個40 x 100矩陣,就像您在dumDistance看到的dumDistance 但是, pdist2 for loops


現在到您的問題:

D(i,j)表示歐氏字之間的平方距離i從你的頁面和文字j從你的字典。 您的頁面上有40個單詞,而字典中有100個單詞。 每個單詞都由140維特征向量表示,因此D的行索引page的單詞,而D的列索引dictionary

我這里所說的“距離”是指特征空間。 頁面和詞典中的每個單詞都表示為140個長度的向量。 D每個條目(i,j)都從page i 向量中提取page ,第j 向量則從dictionary ,它們各自的相應分量相減,平方后求和。 然后將此輸出存儲到D(i,j) 這給你的字間的差異性i從你的page和文字j從你dictionaryD(i,j) 值越高,兩個單詞越相似

次要說明: pdist2計算歐幾里得距離,而dumDistance計算歐幾里得平方距離。 如果您想擁有與dumDistance相同的dumDistance ,只需將dumDistanceD每個元素平方pdist2 換句話說,只需計算D.^2

希望這可以幫助。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM