【机器学习】数据科学中 17 种相似性和相异性度量(上)
本文解釋了計算距離的各種方法,并展示了它們在我們日常生活中的實例。限于篇幅,便于閱讀,將本文分為上下兩篇,希望對你有所幫助。
"There is no Royal Road to Geometry."—歐幾里得
🄰 . 簡介
相似性和相異性
在數據科學中,相似性度量是一種度量數據樣本之間相互關聯或緊密程度的方法。相異性度量是說明數據對象的不同程度。
相異性度量和相似性度量通常用于聚類,相似的數據樣本被分組為一個聚類,所有其他數據樣本被分組到其他不同的聚類中心中。它們還用于分類(例如 KNN),它是根據特征的相似性標記數據對象。另外還用于尋找與其他數據樣本相比不同的異常值(例如異常檢測)。
相似性度量通常表示為數值:當數據樣本越相似時,它越高。通常通過轉換表示為零和一之間的數字:零表示低相似性(數據對象不相似)。一是高相似度(數據對象非常相似)。
舉一個例子,有三個數據點 A、B 和 C ,每個數據點只包含一個輸入特征。每個數據樣本在一個軸上可以有一個值(因為只有一個輸入特征),將其表示為 x 軸。并取兩個點,A(0.5)、B(1) 和 C(30),A 和 B 與 C 相比彼此足夠接近,因此,A 和 B 之間的相似度高于 A 和 C 或 B 和 C。換句話說,A 和 B 具有很強的相關性。因此,距離越小,相似度就會越大。可以認為這是展示三個數據點 A、B 和 C 之間差異的最簡單的例子。
指標
當且僅當滿足以下四個條件時,給定的距離(例如相異性)才是度量標準:
1 - 非負性:?,對于任何兩個不同的觀察??和?。
2 - 對稱性:??對于所有??和?。
3 - 三角不等式:??對于所有?。
4 -??僅當??時。
距離度量是分類的基本原則,就像 k-近鄰分類器算法一樣,它測量給定數據樣本之間的差異。此外,選擇不同的距離度量會對分類器的性能產生很大影響。因此,計算對象之間距離的方式將對分類器算法的性能起到至關重要的作用。
🄱 . 距離函數
用于測量距離的技術取決于正在處理的特定情況。例如,在某些區域,歐幾里得距離可能是最佳的,并且對于計算距離非常有用。其他應用程序需要更復雜的方法來計算點或觀測值之間的距離,如余弦距離。以下列舉的列表代表了計算每對數據點之間距離的各種方法。
? L2范數,歐幾里得距離
歐幾里得輪廓用于數值屬性或特征的最常見距離函數是歐幾里得距離,其定義在以下公式中:
n 維空間中兩點之間的歐幾里德距離
這個距離度量具有眾所周知的特性,例如對稱、可微、凸面、球面……
在二維空間中,前面的公式可以表示為:
二維空間中兩點之間的歐幾里德距離。
它等于直角三角形斜邊的長度。
此外,歐幾里得距離是一個度量,因為它滿足其標準,如下圖所示。
歐幾里得距離滿足成為度量的所有條件此外,使用該公式計算的距離表示每對點之間的最小距離。換句話說,它是從A點到B點的最短路徑(二維笛卡爾坐標系),如下圖所示:
歐幾里得距離是最短路徑(不包括量子世界中的蟲洞)因此,當你想在路徑上沒有障礙物的情況下計算兩點之間的距離時,使用此公式很有用。這可以認為是你不想計算歐幾里德距離的情況之一;而你希望使用其他指標,例如曼哈頓距離,這將在本文稍后將對此進行解釋。
歐氏距離無法為我們提供有用信息的另一種情況是,飛機的飛行路徑遵循地球的曲率,而不是直線(除非地球是平的,否則不是)。
但是,解釋一下如何在機器學習的中使用歐幾里德距離。
最著名的分類算法之一 --?KNN 算法,該算法使用歐幾里德距離對數據進行分類。為了演示 KNN 如何使用歐幾里德度量,我們選擇了一個 Scipy 包的流行?iris?數據集。
該數據集包含三種花:Iris-Setosa、Iris-Versicolor 和 Iris-Virginica,并具有以下四個特征:萼片長度、萼片寬度、花瓣長度、花瓣寬度。因此就有一個 4 維空間,在其中表示每個數據點。
兩種特征空間中兩種花卉的鳶尾花數據集為了滿足簡單和演示目的,我們只選擇兩個特征:花瓣長度、花瓣寬度和不包括?Iris-virginica?數據。通過這種方式,我們可以在二維空間中繪制數據點,其中 x 軸和 y 軸分別表示花瓣長度和花瓣寬度。
訓練數據集每個數據點都有自己的標簽:Iris-Setosa?或?Iris-versicolor(數據集中的 0 和 1)。因此,該數據集可用于 KNN 分類,因為它本質上是一種有監督的 ML 算法。假設我們的 ML 模型(k = 4?的 KNN)已經在這個數據集上進行了訓練,我們選擇了兩個輸入特征只有 20 個數據點,如上圖所示。
到目前為止,KNN 分類器已準備好對新數據點進行分類。因此,要一種方法來讓模型決定新數據點可以分類的位置。
預測新數據點的標簽選擇歐幾里得距離是為了讓每個經過訓練的數據點投票給新數據樣本適合的位置:Iris-Setosa 或 Iris-versicolor。至此,新數據點到我們訓練數據的每個點的歐幾里德距離都計算出來了,如下圖所示:
當k = 4時,KNN分類器需要選擇最小的四個距離,代表新點到以下點的距離:point1、point5、point8和point9,如圖所示:
四個鄰居投票支持 Iris-Setosa因此,新的數據樣本被歸類為?Iris-Setosa。使用這個類比,可以想象更高的維度和其他分類器。
如前所述,每個域都需要一種計算距離的特定方法。
? 平方歐幾里得距離
顧名思義,平方歐幾里得距離等于歐幾里得距離的平方。因此,平方歐幾里得距離可以在計算觀測之間的距離的同時減少計算工作。例如,它可以用于聚類、分類、圖像處理和其他領域。使用這種方法計算距離避免了使用平方根函數的需要。
n維空間中兩點之間的平方歐幾里得距離
② L1 范數、城市街區、曼哈頓或出租車距離
曼哈頓輪廓該指標對于測量給定城市中兩條街道之間的距離非常有用,可以根據分隔兩個不同地方的街區數量來測量距離。例如,根據下圖,A 點和 B 點之間的距離大致等于 4。
現實世界中的曼哈頓距離創建此方法是為了解決計算給定城市中源和目的地之間的距離的問題,在該城市中,幾乎不可能直線移動,因為建筑物被分組到一個網格中,阻礙了直線路徑。因此得名城市街區。
你可以說 A 和 B 之間的距離是歐幾里得距離。但是,你可能會注意到這個距離沒有用。例如,你需要有一個有用的距離來估計旅行時間或需要開車多長時間。相反,如果你知道并選擇街道的最短路徑,這會有所幫助。因此,這取決于如何定義和使用距離的情況。
n維空間中兩點之間的曼哈頓距離表示為:
對于二維網格,二維空間中兩點之間的曼哈頓距離公式可以寫成:
回憶之前的 KNN 示例,計算從新數據點到訓練數據的曼哈頓距離將產生以下值:
使用曼哈頓距離的 KNN 分類(并列)顯而易見,有兩個數據點投票支持?Iris-Setosa,另外兩個數據點投票支持?Iris-versicolor,這意味著這是個平局。
曼哈頓距離:平局!你可能在某個地方遇到過這個問題,一個直觀的解決方案是改變 k 的值,如果 k 大于 1,則減少 1,否則增加 1。
但是,對于之前的每個解決方案,將獲得 KNN 分類器的不同行為。例如,在我們的示例中,k=4,將其更改為?k=3將導致以下值:
將 k 減少 1
這種花被歸類為花斑鳶尾。以同樣的方式,將其更改為?k=5?將導致以下值:
將 k 增加 1
這種花被歸類為Iris-Setosa。因此,由你決定是否需要增加或減少 k 的值。
但是,有人會爭辯說,如果度量標準不是問題的約束條件,你可以更改它。例如,計算歐幾里得距離可以解決這個問題:
改變距離度量也會打破平局這種花被強烈歸類為?Iris-Setosa。
在我看來,如果你不必更改曼哈頓距離并對 k 使用相同的值,那么添加新維度或特征(如果可用)也會打破平局。例如,將萼片寬度添加為新尺寸會導致以下結果:
向模型添加新特征這種花被歸類為雜色鳶尾。
這是 3-D 空間中的圖,其中 x 軸、y 軸和 z 軸分別代表萼片寬度、花瓣長度和花瓣寬度:
Iris 數據集的 3-D 圖計算曼哈頓距離比前兩種方法計算速度更快。如公式所示,它只需要加減運算,結果證明這比計算平方根和 2 的冪要快得多。
國際象棋中主教使用曼哈頓距離在兩個相同顏色的水平或垂直塊之間移動:
Bishop?使用曼哈頓距離(如果沒有看到,可通過將棋盤旋轉 45° 來想象一下)。換句話說,讓主教越過紅色方塊所需的移動次數(距離)等于曼哈頓距離,即 2。
除此之外,如果數據存在許多異常值,曼哈頓距離將優于歐幾里得距離。
L1-norm?比?l2-norm?給出更稀疏的估計。除此之外,L1 范數和L2 范數通常用于神經網絡的正則化,以最小化權重或將某些值歸零,就像套索回歸中使用的那樣。
套索和嶺回歸的約束區域的形式(來源:[維基百科](https://en.wikipedia.org/wiki/Lasso_(statistics "維基百科")#/media/File:L1_and_L2_balls.svg))。
如上圖所示,L1-norm 嘗試將 W1 權重歸零并最小化另一個權重。然而,L2 范數試圖最小化 W1 和 W2 的權重(如 W1 = W2)。
這篇文章深入探討正則化,它的主要目標是解釋常見的距離函數,同時在這里說明一些用法并使其盡可能易于理解。
③ 堪培拉距離
它是聚類中使用的曼哈頓距離的加權版本,如模糊聚類、分類、計算機安全[2]和火腿/垃圾郵件檢測系統。與之前的指標相比,它對異常值的魯棒性更強。
④ L∞ 范數,切比雪夫距離,最大距離
切比雪夫輪廓兩個 n維 觀測值或向量之間的切比雪夫距離(Chebyshev)等于數據樣本坐標之間變化的最大絕對值。在二維世界中,數據點之間的切比雪夫距離可以確定為其二維坐標的絕對差之和。
兩點 P 和 Q 之間的切比雪夫距離定義為:
切比雪夫距離是一個度量,因為它滿足成為度量的四個條件。
切比雪夫距離滿足成為度量的所有條件但是,你可能想知道 min 函數是否也可以是一個指標!
min 函數不是度量標準,因為有一個反例(例如水平線或垂直線),其中??且?。但是,僅當??時它才應為零!
你可以想到的使用切比雪夫距離指標的用例之一是交易股票、加密貨幣,其特征是交易量、買入價、賣出價……
例如,你需要找到一種方法來告訴大多數加密貨幣在獎勵之間有很大差距和損失。而切比雪夫距離非常適合這種特殊情況。
在棋盤中使用切比雪夫距離的另一種常見場景,其中國王或王后的移動次數等于到達相鄰方格的距離,如下圖所示:
國王使用切比雪夫距離移動皇后在一些正方形之間使用切比雪夫距離⑤ Lp 范數,閔可夫斯基距離
不同 p 值的 Minkowski 等高線閔可夫斯基(Minkowski)距離只是之前距離度量的概括:歐幾里得、曼哈頓和切比雪夫。它被定義為 n維空間中兩個觀測值之間的距離,如以下公式所示:
其中 P、Q 是兩個給定的 nD 點,p 代表 Minkowski 度量。對于特定的 p 值,您可以得出以下指標:
p = 1:?曼哈頓距離。
p = 2:?歐幾里得距離。
p → +∞ :?切比雪夫距離,邏輯或(點 D =?A或B?=?1或1?= 1)。
p → 0:?邏輯與(點 C =?A?AND?B?= 零)。
p → -∞ :?最小距離(點 D 的對稱性)。
?⑥余弦距離
該指標廣泛用于文本挖掘、自然語言處理和信息檢索系統。例如,它可用于衡量兩個給定文檔之間的相似性。它還可用于根據消息的長度識別垃圾郵件。
余弦距離可以按如下方式測量:
其中 P 和 Q 代表兩個給定的點。這兩個點可以表示文檔中單詞的頻率,下面的例子中解釋了這一點。
例如,以包含以下短語的三個文檔為例:
文件A:?"I love to drink coffee in the morning."
文件B:?"I like to drink coffee."
文件C:?"My friend and I work at a coffee shop in our hometown. He tells some good jokes in the morning. We like to begin the day by drink a cup of tea each."
計算每個單詞的頻率,出現次數將導致以下結果:
詞的頻率在計算出現次數之前,你已經先驗地知道文檔 A 和 B 在含義上非常相似:“I love to drink coffee”?然而,文件 C 包含文件 A 的所有單詞,但從頻率表中的含義非常不同。為了解決這個問題,你需要計算余弦相似度來判斷它們是否相似。
一方面,這可以說明信息檢索或搜索引擎是如何工作的。將文檔 A 視為對給定源(圖像、文本、視頻……)的查詢(短消息),將文檔 C 視為需要獲取并作為查詢響應返回的網頁。
另一方面,歐幾里得距離無法給出短文檔和大文檔之間的正確距離,因為在這種情況下它會很大。使用余弦相似度公式將計算兩個文檔在方向而非大小方面的差異。
為了說明這一點,以下兩個文件為例:
文件 A:?"Bitcoin Bitcoin Bitcoin Money"
文件 B:?"Money Money Bitcoin Bitcoin"
用“Bitcoin”這個詞作為 x 軸,把“Money”這個詞作為 y 軸。這意味著文檔 A 可以表示為向量 A(3,1),文檔 B 可以表示為 B(2,2)。
計算余弦相似度將得到以下值:
Cosine_Similarity = 0.894 意味著文檔 A 和 B 非常相似。cos(angle)大于(接近1)表示角度小(26.6°),兩個文檔A和B彼此接近。
但是,你不能將余弦相似度的值解釋為百分比。例如,值?0.894?并不意味著文檔 A 是?89.4%,與 B 相似。它意味著文檔 A 和 B 非常相似,但我們不知道有多少百分比!該值沒有閾值。換句話說,你可以將余弦相似度的值解釋如下:
它越大,文檔 A 和 B 相似的可能性就越大,反之亦然。
再舉一個?A(1, 11)?和?B(22, 3)?的例子
計算余弦相似度:
然而,歐幾里得距離會給出一個很大的數字,比如?22.4,這并不能說明向量之間的相對相似性。另一方面,余弦相似度也適用于更高維度。
余弦相似度的另一個有趣應用是OpenPose[3]項目。
參考資料
[1]?
參考原文:?https://towardsdatascience.com/17-types-of-similarity-and-dissimilarity-measures-used-in-data-science-3eb914d2681
[2]?計算機安全:?https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.97.2974&rep=rep1&type=pdf
[3]?OpenPose:?https://github.com/CMU-Perceptual-Computing-Lab/openpose
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【机器学习】数据科学中 17 种相似性和相异性度量(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯视频下载位置_腾讯视频怎么下视频到手
- 下一篇: 《Think Python》最新中文版火