18種和“距離(distance)”、“相似度(similarity)”相關的量的小結
在計算機人工智慧領域,距離(distance)、相似度(similarity)是經常出現的基本概念,它們在自然語言處理、計算機視覺等子領域有重要的應用,而這些概念又大多源於數學領域的度量(metric)、測度(measure)等概念。
這裡拮取其中18種做下小結備忘,也藉機熟悉markdown的數學公式語法。
英文名 | 中文名 | 算式 | 說明 |
---|---|---|---|
Euclidean Distance | 歐式距離 | 以古希臘數學家歐幾里得命名的距離;也就是我們直觀的兩點之間直線最短的直線距離 | |
Manhattan Distance | 曼哈頓距離 | 是由十九世紀的赫爾曼·閔可夫斯基所創詞彙;是種使用在幾何度量空間的幾何學用語,用以標明兩個點在標準座標系上的絕對軸距總和;也就是和象棋中的“車”一樣橫平豎直的走過的距離;曼哈頓距離是超凸度量 | |
Minkowski Distance | 閔氏距離 | 以俄羅斯數學家閔可夫斯基命名的距離;是歐式距離的推廣,p=2時等價於歐氏距離,和p-範數等值 | |
Hamming Distance | 海明距離 | 逐個字元(或逐位)對比,統計不一樣的位數的個數總和 | 所得值越小,參與對比的兩個元素約相似;下面是從wikipedia借的4bit的海明距離示意圖 |
Jaccard Coefficient | 傑卡德距離 | 越大越相似;分子是A和B的交集大小,分母是A和B的並集大小 | |
Ochiai Coefficient | ? | ||
Pearson Correlation | 皮爾森相關係數 | 分子是兩個集合的交集大小,分母是兩個集合大小的幾何平均值。是餘弦相似性的一種形式 | |
Cosine Similarity | 餘弦相似度 | ||
Mahalanobis Distance | 馬氏距離 | 印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,表示資料的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法;若協方差矩陣是對角陣(diagonal),則該距離退化為歐式距離 | |
Kullback-Leibler Divergence | K-L散度 | 即相對熵;是衡量兩個分佈(P、Q)之間的距離;越小越相似 | |
PMI(Pointwise Mutual Information) | 點對互資訊 | 利用co-occurance來衡量x和y的相似度;越大越相關;可以看做區域性點的互資訊(mutual information) | |
NGD(Normalized Google Distance) | ? | 相關推薦18種和“距離(distance)”、“相似度(similarity)”相關的量的小結在計算機人工智慧領域,距離(distance)、相似度(similarity)是經常出現的基本概念,它們在自然語言處理、計算機視覺等子領域有重要的應用,而這些概念又大多源於數學領域的度量(metric) 演算法介紹(3) 編輯距離演算法-字串相似度編輯距離,又稱Levenshtein距離,是指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。 具體的操作方法為: MATLAB中實現編輯距離並求相似度編輯距離,又稱Levenshtein距離,是指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。許可的編輯操作包括將一個字元替換成另一個字元,插入一個字元,刪除一個字元。好像R2018a已經集成了編輯距離的API ,但是沒有安裝2018a,dist = edr(x,y,t 計算兩向量的歐式距離,餘弦相似度來自:http://www.mtcnn.com >>> import numpy >>> vec1=[[1,1,1],[2,2,2]] >>> vec2=[[2,2,2],[1,1,1]] >>> vec1=numpy. 歐式距離與餘弦相似度歐氏距離 在歐幾里得空間裡面,點x =(x1,…,xn)和 y =(y1,…,yn)的歐幾里得距離為: 歐幾里得距離關注的是同一個維度裡面,數值之間的差異。當不同維度的刻度差異較大,比如身高(m)和體重(kg),如果使用這兩個單位,歐式距離的變現出來的差 【搜尋引擎】 PostgreSQL 10 實時全文檢索和分詞、相似搜尋、模糊匹配實現類似Google搜尋自動提示需求分析 要通過PostgreSQL實現類似Google搜尋自動提示的功能,例如要實現一個查詢海量資料中的商品名字,每次輸入就提示使用者各種相關搜尋選項,例如淘寶、京東等電商查詢 思路 這個功能可以用 PostgreSQL的實時全文檢索和分詞、相似搜尋、前模糊匹配等特性實現。具體策略是,定義一個搜尋提示的最大 2017CVPR、ICCV和NIPS在Person Reidentification方向的相關工作小結轉載自: https://blog.csdn.net/qq2414205893/article/details/78901517 論文閱讀小結(以下內容為論文閱讀筆記及總結) NIPS2017 6608-deep-subspace-clustering-netw Levenshtein Distance Levenshtein 編輯距離——一種相似度的計算方法/********************************************* Levenshtein Distance Algorithm *******************************/ /******************** 距離和相似度度量com 聚類算法 匯總 pearson 求和 選擇 方式 獲得 分享 在數據分析和數據挖掘的過程中,我們經常需要知道個體間差異的大小,進而評價個體的相似性和類別。最常見的是數據分析中的相關分析,數據挖掘中的分類和聚類算法,如K最近鄰(KNN)和K均值(K-Means)。當然 演算法之常用的距離和相似度度量在資料分析和資料探勘的過程中,我們經常需要知道個體間差異的大小,進而評價個體的相似性和類別。最常見的是資料分析中的相關分析,資料探勘中的分類和聚類演算法,如K最近鄰(KNN)和K均值(K-Means)。當然衡量個體差異的方法有很多,這裡整理羅列下。 為了方便下面的解釋和舉例,先設定我們要 字串相似度演算法(編輯距離演算法 Levenshtein Distance)在搞驗證碼識別的時候需要比較字元程式碼的相似度用到“編輯距離演算法”,關於原理和C#實現做個記錄。 據百度百科介紹: 編輯距離,又稱Levenshtein距離(也叫做Edit Distance),是指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數,如果它們的距離越大,說明它們越是不同。許可 文字相似度計算的幾個距離公式(歐氏距離、餘弦相似度、Jaccard距離、編輯距離)本文主要講一下文字相似度計算的幾個距離公式,主要包括:歐氏距離、餘弦相似度、Jaccard距離、編輯距離。 距離計算在文字很多場景下都可以用到,比如:聚類、K近鄰、機器學習中的特徵、文字相似度等等。接下來就一一介紹一下: 假設兩個文字X=(x1, x2, x3,...xn) 推薦系統中常見的幾種相似度計算方法和其適用資料在推薦系統中,相似度的計算是一個很重要的課題。而相似度的計算方法多種多樣,今天我們來把這些方法比較一下,也為以後做專案留個筆記。其實無論是基於user的cf還是基於item的cf,亦或是基於svd的推薦,相似度計算都是必不可少的一步,只不過cf中計算相似度是一箇中間步驟,而 資料探勘之曼哈頓距離、歐幾裡距離、明氏距離、皮爾遜相關係數、餘弦相似度Python實現程式碼# -*- coding:utf8 -*- from math import sqrt users = {"Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0, "Norah Jones": 4.5, "Phoeni 常用距離和相似度度量在資料分析和資料探勘的過程中,我們經常需要知道個體間差異的大小,進而評價個體的相似性和類別。最常見的是資料分析中的相關分析,資料探勘中的分類和聚類演算法,如K最近鄰(KNN)和K均值(K-Means)。當然衡量個體差異的方法有很多,最近查閱了相關的資料,這裡整理羅列下。 機器學習_歐式距離和餘弦相似度的對比【1】因為沒有示例自己去操作什麼情況下用餘弦距離,所以有點不透徹,用到再來複習 【2】兩者主要差距 1.餘弦距離更加註重在兩個方向上的差異大小,對絕對的數值不敏感,更多的用於使用使用者對內容評分來區分興趣的相似度和差異,同時修正了使用者間可能存在的度量標準 資料探勘和機器學習中距離和相似度公式距離:閔可夫斯基距離公式,也叫 Lp 範數: 當p=1時,變為曼哈頓距離公式,也即 L1範數: 當p=2時,變為歐式距離公式,也即 L2範數: 衡量空間中點的絕對距離,對絕對數值敏感。 相似性: 餘弦相似: 皮爾遜相關係數,即相關分析中的相關係數,對兩個個體的向 海量資料相似度計算之simhash和海明距離通過 採集系統 我們採集了大量文字資料,但是文字中有很多重複資料影響我們對於結果的分析。分析前我們需要對這些資料去除重複,如何選擇和設計文字的去重演算法?常見的有餘弦夾角演算法、歐式距離、Jaccard相似度、最長公共子串、編輯距離等。這些演算法對於待比較的文字資料不多時還比較好用,如果我們的爬蟲每天採集的 numpy歐氏距離和餘弦相似度兩者相同的地方,就是在機器學習中都可以用來計算相似度,但是兩者的含義有很大差別,以我的理解就是: 前者是看成座標系中兩個點,來計算兩點之間的距離; 後者是看成座標系中兩個向量,來計算兩向量之間的夾角。 前者因為是點,所以一般指位置上的差別,即距離; 後者因為是 歐氏距離和餘弦相似度兩者相同的地方,就是在機器學習中都可以用來計算相似度,但是兩者的含義有很大差別,以我的理解就是: 前者是看成座標系中兩個點,來計算兩點之間的距離; 後者是看成座標系中兩個向量,來計算兩向量之間的夾角。 前者因為是點,所以一般指位置上的差別,即距離; 後者因為是向量,所以 |