模式識別之相似度計量 常用相似度計量方法

2022-02-03 11:44:02 字數 1677 閱讀 2219

在分類聚類演算法,推薦系統中,常要用到兩個輸入變數(通常是特徵向量的形式)距離的計算,即相似性度量.不同相似性度量對於演算法的結果,有些時候,差異很大.因此,有必要根據輸入資料的特徵,選擇一種合適的相似性度量方法.

x=(x1,x2,..,xn)t,y=(y1,y2,...yn)t為兩個輸入向量,

1.歐幾里得距離(euclidean distance)

‍相當於高維空間內向量說表示的點到點之間的距離。

由於特徵向量的各分量的量綱不一致,通常需要先對各分量進行標準化,使其與單位無關。

優點:簡單,應用廣泛(如果也算乙個優點的話)

缺點:沒有考慮分量之間的相關性,體現單一特徵的多個分量會干擾結果。

2.馬氏距離(mahalanobis distance)

c=e[(x-x平均)(y-y平均)]為該類輸入向量x的協方差矩陣.(t為轉置符號,e取平均時是樣本因此為n-1)

適用場合:

1)度量兩個服從同一分布並且其協方差矩陣為c的隨機變數x與y的差異程度

2)度量x與某一類的均值向量的差異程度,判別樣本的歸屬。此時,y為類均值向量.

優點:1)獨立於分量量綱

2)排除了樣本之間的相關性影響。

缺點:不同的特徵不能差別對待,可能誇大弱特徵。

3.閔可夫斯基距離(minkowsk distance)

‍可看成是歐氏距離的指數推廣,還沒有見到過很好的應用例項,但通常,推廣都是一種進步:)

特別的,當p=1,也成做街坊距離或曼哈頓距離,也稱絕對距離。

4.漢明距離(hamming distance)

‍還記得漢明碼嗎,海明距離就是表示x,y取值不同的分量數目,只適用分量只取-1或1的情況。

5.tanimoto係數(又稱廣義jaccard係數)

‍通常應用於x為布林向量,即各分量只取0或1的時候。此時,表示的是x,y的公共特徵的佔x,y所占有的特徵的比例。

6.皮爾遜相關係數(pearson correlation coefficient)

‍其實就是高中學過的相關係數啦,等於x,y的協方差除以x,y的標準差之積。不多說了。

這東西在多元統計課本上出現時竟然就稱為相關係數,什麼名稱都沒有。

7.余弦相似度(cosine similarity)

‍就是兩個向量之間的夾角的余弦值。

應用場合:通常應用於x為布林向量,即各分量只取0或1的時候。此時,和tanimoto類似,是x,y公共特徵數目的測量。

優點:不受座標軸旋轉,放大縮小的影響。

還有乙個調整余弦相似度(adjusted cosine similarity),和余弦相似度的計算不同的是,x,y在減去使用者平均評分向量後再代入余弦相似度公式中計算。調整余弦相似度和余弦相似度,皮爾遜相關係數在推薦系統中應用較多。在基於專案的推薦中,grouplens有篇**結果表明調整余弦相似度效能要優於後兩者。

余弦度量

歐式度量

計算文字相似度 文字相似度演算法之 simhash

文字相似度演算法種類繁多,今天先介紹一種常見的網頁去重演算法simhash。1 什麼是simhash 2 simhash步驟 人工智慧,1 大資料,2 科技,3 網際網路,4 機器學習,5 人工智慧 00101 大資料 11001 科技 00110 網際網路 10101 機器學習 01011 has...

java演算法之 相似度匹配

package com.hxqc.pricemonitor.util 比較兩個字串的相似度 public class similarityutil private static int levenshtein distance string str1,string str2 if m 0 matri...

文字相似度計算之tf idf

最基本的文字相似度計算是在向量空間模型 vsm 下,以文件中的詞作為特徵進行計算 先來說一下vsm 思想很簡單 d1 w1 w2 w5 d2 w2 w2 w3 w4 d3 w3 w3 w1 w2 那我現在整個文件集中就有5個詞,由於每篇文件的詞數不同,為了計算他們之間的相似度,我們首先要把他們轉換為...