本文來源公眾號(hào)“OpenCV學(xué)堂”,僅用于學(xué)術(shù)分享,侵權(quán)刪,干貨滿滿。
原文鏈接:CV開發(fā)者必須懂的9種距離度量方法,內(nèi)含歐氏距離、切比雪夫距離等
在數(shù)據(jù)挖掘中,我們經(jīng)常需要計(jì)算樣本之間的相似度,通常的做法是計(jì)算樣本之間的距離。在本文中,數(shù)據(jù)科學(xué)家 Maarten Grootendorst 向我們介紹了 9 種距離度量方法,其中包括歐氏距離、余弦相似度等。
許多算法,無論是監(jiān)督學(xué)習(xí)還是無監(jiān)督學(xué)習(xí),都會(huì)使用距離度量。這些度量,如歐幾里得距離或者余弦相似性,經(jīng)常在 k-NN、 UMAP、HDBSCAN 等算法中使用。了解距離度量這個(gè)領(lǐng)域可能比你想的更重要,以 k-NN 為例,它常被用于監(jiān)督學(xué)習(xí)中。
但是,如果你的數(shù)據(jù)是高維的,歐幾里德距離還能用嗎?又或者如果你的數(shù)據(jù)是由地理空間信息組成的,也許半正矢距離是很好的選擇。
我們究竟如何選擇最適合的距離度量?數(shù)據(jù)科學(xué)家 Maarten Grootendorst 向讀者介紹了 9 種距離度量方法,并探討如何以及何時(shí)以最佳的方式使用它們。此外 Maarten Grootendorst 還對(duì)它們的缺點(diǎn)進(jìn)行了介紹,以及如何規(guī)避不足。
1 歐氏距離(Euclidean Distance)
我們從最常見的歐式距離開始,歐式距離可解釋為連接兩個(gè)點(diǎn)的線段的長度。歐式距離公式非常簡單,使用勾股定理從這些點(diǎn)的笛卡爾坐標(biāo)計(jì)算距離。
缺點(diǎn):盡管這是一種常用的距離度量,但歐式距離并不是尺度不變的,這意味著所計(jì)算的距離可能會(huì)根據(jù)特征的單位發(fā)生傾斜。通常,在使用歐式距離度量之前,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理。
此外,隨著數(shù)據(jù)維數(shù)的增加,歐氏距離的作用也就越小。這與維數(shù)災(zāi)難(curse of dimensionality)有關(guān)。
用例:當(dāng)你擁有低維數(shù)據(jù)且向量的大小非常重要時(shí),歐式距離的效果非常好。如果在低維數(shù)據(jù)上使用歐式距離,則如 k-NN 和 HDBSCAN 之類的方法可達(dá)到開箱即用的效果。
2 余弦相似度(Cosine Similarity)
余弦相似度經(jīng)常被用作抵消高維歐式距離問題。余弦相似度是指兩個(gè)向量夾角的余弦。如果將向量歸一化為長度均為 1 的向量,則向量的點(diǎn)積也相同。
兩個(gè)方向完全相同的向量的余弦相似度為 1,而兩個(gè)彼此相對(duì)的向量的余弦相似度為 - 1。注意,它們的大小并不重要,因?yàn)檫@是在方向上的度量。
缺點(diǎn):余弦相似度的一個(gè)主要缺點(diǎn)是沒有考慮向量的大小,而只考慮它們的方向。以推薦系統(tǒng)為例,余弦相似度就沒有考慮到不同用戶之間評(píng)分尺度的差異。
用例:當(dāng)我們對(duì)高維數(shù)據(jù)向量的大小不關(guān)注時(shí),可以使用余弦相似度。對(duì)于文本分析,當(dāng)數(shù)據(jù)以單詞計(jì)數(shù)表示時(shí),經(jīng)常使用此度量。例如,當(dāng)一個(gè)單詞在一個(gè)文檔中比另一個(gè)單詞更頻繁出現(xiàn)時(shí),這并不一定意味著文檔與該單詞更相關(guān)??赡苁俏募L度不均勻或者計(jì)數(shù)的重要性不太重要。我們最好使用忽略幅度的余弦相似度。
3 漢明距離(Hamming Distance)
漢明距離是兩個(gè)向量之間不同值的個(gè)數(shù)。它通常用于比較兩個(gè)相同長度的二進(jìn)制字符串。它還可以用于字符串,通過計(jì)算不同字符的數(shù)量來比較它們之間的相似程度。
缺點(diǎn):當(dāng)兩個(gè)向量長度不相等時(shí),漢明距離使用起來很麻煩。當(dāng)幅度是重要指標(biāo)時(shí),建議不要使用此距離指標(biāo)。
用例:典型的用例包括數(shù)據(jù)通過計(jì)算機(jī)網(wǎng)絡(luò)傳輸時(shí)的錯(cuò)誤糾正 / 檢測(cè)。它可以用來確定二進(jìn)制字中失真的數(shù)目,作為估計(jì)誤差的一種方法。此外,你還可以使用漢明距離來度量分類變量之間的距離。
4 曼哈頓距離(Manhattan Distance)
曼哈頓距離通常稱為出租車距離或城市街區(qū)距離,用來計(jì)算實(shí)值向量之間的距離。想象一下均勻網(wǎng)格棋盤上的物體,如果它們只能移動(dòng)直角,曼哈頓距離是指兩個(gè)向量之間的距離,在計(jì)算距離時(shí)不涉及對(duì)角線移動(dòng)。
缺點(diǎn):盡管曼哈頓距離在高維數(shù)據(jù)中似乎可以工作,但它比歐式距離直觀性差,尤其是在高維數(shù)據(jù)中使用時(shí)。此外,由于它可能不是最短路徑,有可能比歐氏距離給出一個(gè)更高的距離值。
用例:當(dāng)數(shù)據(jù)集具有離散或二進(jìn)制屬性時(shí),曼哈頓距離似乎工作得很好,因?yàn)樗紤]了在這些屬性的值中實(shí)際可以采用的路徑。以歐式距離為例,它會(huì)在兩個(gè)向量之間形成一條直線,但實(shí)際上這是不可能的。
5 切比雪夫距離(Chebyshev Distance)
切比雪夫距離定義為兩個(gè)向量在任意坐標(biāo)維度上的最大差值。換句話說,它就是沿著一個(gè)軸的最大距離。切比雪夫距離通常被稱為棋盤距離,因?yàn)閲H象棋的國王從一個(gè)方格到另一個(gè)方格的最小步數(shù)等于切比雪夫距離。
缺點(diǎn):切比雪夫距離通常用于特定的用例,這使得它很難像歐氏距離或余弦相似度那樣作為通用的距離度量。因此,在確定適合用例時(shí)才使用它。
用例:切比雪夫距離用于提取從一個(gè)方塊移動(dòng)到另一個(gè)方塊所需的最小移動(dòng)次數(shù)。此外,在允許無限制八向移動(dòng)的游戲中,這可能是有用的方法。在實(shí)踐中,切比雪夫距離經(jīng)常用于倉庫物流,因?yàn)樗浅n愃朴谄鹬貦C(jī)移動(dòng)一個(gè)物體的時(shí)間。
6 閔氏距離(Minkowski)
閔氏距離比大多數(shù)距離度量更復(fù)雜。它是在范數(shù)向量空間(n 維實(shí)數(shù)空間)中使用的度量,這意味著它可以在一個(gè)空間中使用,在這個(gè)空間中,距離可以用一個(gè)有長度的向量來表示。
閔氏距離公式如下:
最有趣的一點(diǎn)是,我們可以使用參數(shù) p 來操縱距離度量,使其與其他度量非常相似。常見的 p 值有:
-
p=1:曼哈頓距離
-
p=2:歐氏距離
-
p=∞:切比雪夫距離
缺點(diǎn):閔氏距離與它們所代表的距離度量有相同的缺點(diǎn),因此,對(duì)哈頓距離、歐幾里得距離和切比雪夫距離等度量標(biāo)準(zhǔn)有個(gè)好的理解非常重要。此外,參數(shù) p 的使用可能很麻煩,因?yàn)楦鶕?jù)用例,查找正確的 p 值在計(jì)算上效率低。
用例:p 的積極一面是可迭代,并找到最適合用例的距離度量。它允許在距離度量上有很大的靈活性,如果你非常熟悉 p 和許多距離度量,將會(huì)獲益多多。
7 雅卡爾指數(shù)(Jaccard Index)
雅卡爾指數(shù)(交并比)是用于比較樣本集相似性與多樣性的統(tǒng)計(jì)量。雅卡爾系數(shù)能夠量度有限樣本集合的相似度,其定義為兩個(gè)集合交集大小與并集大小之間的比例。
例如,如果兩個(gè)集合有 1 個(gè)共同的實(shí)體,而有 5 個(gè)不同的實(shí)體,那么雅卡爾指數(shù)為 1/5 = 0.2。要計(jì)算雅卡爾距離,我們只需從 1 中減去雅卡爾指數(shù):
缺點(diǎn):雅卡爾指數(shù)的一個(gè)主要缺點(diǎn)是它受數(shù)據(jù)大小的影響很大。大數(shù)據(jù)集對(duì)指數(shù)有很大影響,因?yàn)樗梢燥@著增加并集,同時(shí)保持交集相似。
用例:雅卡爾指數(shù)通常用于使用二進(jìn)制或二進(jìn)制數(shù)據(jù)的應(yīng)用程序中。當(dāng)你有一個(gè)深度學(xué)習(xí)模型來預(yù)測(cè)圖像分割時(shí),比如一輛汽車,雅卡爾指數(shù)可以用來計(jì)算給定真實(shí)標(biāo)簽的預(yù)測(cè)分割的準(zhǔn)確度。
類似地,它可以用于文本相似性分析,以測(cè)量文檔之間有多少詞語重疊。因此,它可以用來比較模式集合。
8 半正矢(Haversine)
半正矢距離是指球面上的兩點(diǎn)在給定經(jīng)緯度條件下的距離。它與歐幾里得距離非常相似,因?yàn)樗梢杂?jì)算兩點(diǎn)之間的最短連線。主要區(qū)別在于半正矢距離不可能有直線,因?yàn)檫@里的假設(shè)是兩個(gè)點(diǎn)都在一個(gè)球面上。
缺點(diǎn):這種距離測(cè)量的一個(gè)缺點(diǎn)是,假定這些點(diǎn)位于一個(gè)球體上。實(shí)際上,這種情況很少出現(xiàn),例如,地球不是完美的圓形,在某些情況下可能使計(jì)算變得困難。相反,如果假定是橢球,使用 Vincenty 距離比較好。
用例:半正矢距離通常用于導(dǎo)航。例如,你可以使用它來計(jì)算兩個(gè)國家之間的飛行距離。請(qǐng)注意,如果距離本身不那么大,則不太適合。
9 S?rensen-Dice 系數(shù)
S?rensen-Dice 系數(shù)與雅卡爾指數(shù)非常相似,都是度量樣本集的相似性和多樣性。盡管它們的計(jì)算方法相似,但是 S?rensen-Dice 系數(shù)更直觀一些,因?yàn)樗梢员灰暈閮蓚€(gè)集合之間重疊的百分比,這個(gè)值在 0 到 1 之間:
缺點(diǎn):正如雅卡爾指數(shù),S?rensen-Dice 系數(shù)也夸大了很少或沒有真值的集合的重要性,因此,它可以控制多集合的平均得分,還可以控制多組平均得分并按相關(guān)集合的大小成反比地加權(quán)每個(gè)項(xiàng)目,而不是平等對(duì)待它們。
用例:用例與雅卡爾指數(shù)相似,它通常用于圖像分割任務(wù)或文本相似性分析。
原文鏈接:https://towardsdatascience.com/9-distance-measures-in-data-science-918109d069fa
THE END!文章來源:http://www.zghlxwxcb.cn/news/detail-830734.html
文章結(jié)束,感謝閱讀。大家有推薦的公眾號(hào)可以評(píng)論區(qū)留言,共同學(xué)習(xí),一起進(jìn)步。文章來源地址http://www.zghlxwxcb.cn/news/detail-830734.html
到了這里,關(guān)于OpenCV學(xué)堂 | CV開發(fā)者必須懂的9種距離度量方法,內(nèi)含歐氏距離、切比雪夫距離等(建議收藏)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!