使用 SciPy 計算漢明距離


漢明距離計算兩個二進位制向量之間的距離。當我們對資料的分類列使用獨熱編碼時,我們通常會找到二進位制字串。在獨熱編碼中,整數變數被移除,並且對於每個唯一的整數值,都會新增一個新的二進位制變數。例如,如果一列包含類別“長度”、“寬度”和“廣度”。我們可能會將每個示例作為如下所示的每個列的一個位的位串進行獨熱編碼:

長度 = [1, 0, 0]

寬度 = [0, 1, 0]

廣度 = [0, 0, 1]

上面提到的任何兩個類別之間的漢明距離,可以計算為兩個二進位制字串之間位差異的總和或平均數。我們可以看到,長度和寬度類別之間的漢明距離約為 2/3 或 0.666,因為 3 個位置中有 2 個是不同的。

漢明距離也將決定分類變數之間的相似性。例如,假設我們有兩個字串:

GoogleGoagle

這兩個字串的長度相同,因此我們可以計算它們之間的漢明距離。我們將從逐一匹配字元開始。兩個字串中的第一個和第二個字元相同。第三個字元不同,但其餘所有字元也相同,因此上述字串之間的漢明距離為 1。

漢明距離僅適用於長度相同的字串。字串之間的漢明距離越大,字串的差異就越大,反之亦然。

讓我們看看如何使用 SciPy 庫計算兩個字串的漢明距離:

示例

# Importing the SciPy library
from scipy.spatial import distance

# Defining the strings
A = 'Google'
B = 'Goagle'
A, B

# Computing the Hamming distance
hamming_distance = distance.hamming(list(A), list(B))*len(A)
print('Hamming Distance b/w', A, 'and', B, 'is: ', hamming_distance)

輸出

Hamming Distance b/w Google and Goagle is: 1.0

更新於: 2021-11-24

743 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.