成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通透!機器學習中常用的幾種距離度量方法

人工智能 機器學習
余弦相似度是通過計算兩個向量之間的余弦角度來度量它們的相似性。余弦相似度的值介于 -1 和 1 之間,1 表示完全相似,-1 表示完全不相似。

大家好,我是小寒。

今天給大家分享機器學習中經常使用的不同類型的距離度量。

在機器學習中,距離度量是一種用于計算兩個數據點之間相似性或差異性的方法。它在許多算法中起著至關重要的作用,尤其是在無監督學習(如聚類)和監督學習(如最近鄰分類)中。

向量距離測量

讓我們首先了解機器學習中使用的不同向量距離測量。

1.歐幾里得距離

歐幾里得距離是最常見的距離度量,用于計算兩個點在 n 維空間中的直線距離。

import numpy as np

def euclidean_distance(x, y):
    return np.sqrt(np.sum((np.array(x) - np.array(y))**2))

# 示例
x = [1, 2, 3]
y = [4, 5, 6]
print(euclidean_distance(x, y))  # 輸出:5.196152422706632

2.曼哈頓距離

曼哈頓距離計算兩個點之間的絕對坐標差的總和,適用于在規則網格上測量距離的情況,例如城市街道、棋盤格等。

曼哈頓距離的公式為

其中, x 和 y 是 n 維空間中的兩個點,

def manhattan_distance(x, y):
    return sum(abs(a - b) for a, b in zip(x, y))

# 示例
x = [1, 2]
y = [4, 6]
print(manhattan_distance(x, y))  # 輸出:7

3.明科夫斯基距離

明科夫斯基距離是歐幾里得距離和曼哈頓距離的廣義形式,取決于參數 p 的值。

當 p 為 1時,為曼哈頓距離;當 p 為 2時,為歐幾里得距離;當 p 為無窮大時,為切比雪夫距離。

def minkowski_distance(x, y, p=2):
    return np.sum(np.abs(np.array(x) - np.array(y))**p)**(1/p)

# 示例
x = [1, 2, 3]
y = [4, 5, 6]
print(minkowski_distance(x, y, p=3))  # 輸出:4.3267487109222245

統計相似性

1.余弦相似度

余弦相似度是通過計算兩個向量之間的余弦角度來度量它們的相似性。

余弦相似度的值介于 -1 和 1 之間,1 表示完全相似,-1 表示完全不相似。

import numpy as np

def cosine_similarity(A, B):
    dot_product = np.dot(A, B)
    norm_A = np.linalg.norm(A)
    norm_B = np.linalg.norm(B)
    return dot_product / (norm_A * norm_B)

# 示例向量
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])

# 計算余弦相似度
similarity = cosine_similarity(A, B)
print("余弦相似度:", similarity)

2.皮爾遜相關系數

皮爾遜相關系數衡量的是兩個變量之間的線性相關性,取值范圍為 -1 到 1。

1 表示完全正相關,-1 表示完全負相關,0 表示無相關性。

import numpy as np

def pearson_correlation(A, B):
    mean_A = np.mean(A)
    mean_B = np.mean(B)
    numerator = np.sum((A - mean_A) * (B - mean_B))
    denominator = np.sqrt(np.sum((A - mean_A)**2)) * np.sqrt(np.sum((B - mean_B)**2))
    return numerator / denominator

# 示例向量
A = np.array([1, 2, 3, 4, 5])
B = np.array([5, 4, 3, 2, 1])

# 計算皮爾遜相關系數
correlation = pearson_correlation(A, B)
print("皮爾遜相關系數:", correlation)

3.杰卡德指數

杰卡德指數(Jaccard Index),又稱杰卡德相似系數(Jaccard Similarity Coefficient),是一種用于衡量兩個集合之間相似度的統計指標。

它通過計算兩個集合的交集和并集的比率來衡量它們的相似性。

def jaccard_index(set1, set2):
    intersection = len(set(set1).intersection(set(set2)))
    union = len(set(set1).union(set(set2)))
    return intersection / union

# 示例數據
set1 = {1, 2, 3}
set2 = {2, 3, 4}

print(jaccard_index(set1, set2))  # 輸出:0.5

基于編輯的距離測量

1.漢明距離

它測量兩個等長字符串之間不同字符的數量。

def hamming_distance(x, y):
    if len(x) != len(y):
        raise ValueError("Strings must be of the same length")
    return sum(el1 != el2 for el1, el2 in zip(x, y))

# 示例
x = '1011101'
y = '1001001'
print(hamming_distance(x, y))

2.編輯距離

它根據將一個字符串轉換為另一個字符串需要多少次更正來計算。允許的更正包括插入、刪除和替換。

def edit_distance(s1, s2):
    m, n = len(s1), len(s2)
    dp = [[0] * (n + 1) for _ in range(m + 1)]
    
    for i in range(m + 1):
        for j in range(n + 1):
            if i == 0:
                dp[i][j] = j
            elif j == 0:
                dp[i][j] = i
            elif s1[i - 1] == s2[j - 1]:
                dp[i][j] = dp[i - 1][j - 1]
            else:
                dp[i][j] = 1 + min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1])
    
    return dp[m][n]

# 示例
s1 = "kitten"
s2 = "sitting"
print(edit_distance(s1, s2))

責任編輯:武曉燕 來源: 程序員學長
相關推薦

2022-10-28 15:19:28

機器學習距離度量數據集

2023-11-29 14:34:15

機器學習統計學

2023-11-28 12:08:56

機器學習算法人工智能

2016-09-06 22:16:42

JavaDOCXPDF

2024-07-15 08:13:12

BERT模型嵌入

2018-09-13 22:56:15

機器學習損失函數深度學習

2024-05-23 16:48:42

機器學習算法人工智能

2024-04-12 14:04:17

機器學習DNN

2009-06-09 10:05:41

jQuery

2024-06-13 08:36:11

2012-06-04 09:36:50

2024-07-11 11:07:41

2023-05-18 07:48:01

.NET網絡編程

2010-05-17 15:17:06

MySQL常用操作

2020-08-25 08:53:02

Linux端口轉發

2009-06-11 13:49:30

2015-09-21 15:00:38

機器學習

2022-12-28 08:44:47

機器學習空間距離

2024-06-12 08:05:06

2024-01-17 13:58:00

算法C#冒泡排序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片一区 | jizz亚洲人 | 国产精品永久免费 | 欧美精品一区二区在线观看 | 亚洲一区二区三区在线免费 | 日韩成人在线观看 | 男女在线网站 | 99爱免费 | 在线观看亚洲 | av网站在线免费观看 | 日日干天天干 | 久久丝袜视频 | 九九九视频在线 | 国产 91 视频| 精品久久久久一区二区国产 | 亚洲国产成人精品女人久久久 | 精品欧美乱码久久久久久 | 久久久久久久一区二区 | 成人精品免费视频 | 日韩在线观看中文字幕 | av在线天堂 | 日本aⅴ中文字幕 | 日日爱av| 国产三级精品三级在线观看四季网 | 91一区二区三区在线观看 | 羞羞涩涩在线观看 | 亚洲精品视频一区 | 亚洲精品黄色 | 亚洲九九| 欧美久久久久久久 | 国产免费一区二区三区 | 日韩黄a| 精品国产不卡一区二区三区 | 国产免费黄网 | 久久久久国产 | 日韩一区中文字幕 | 亚洲精品久久久蜜桃 | 久久久www成人免费精品张筱雨 | 日韩影音 | 欧美三级电影在线播放 | 亚洲人在线播放 |