1. 程式人生 > >模式識別相似性測度距離計算---幾種距離對比

模式識別相似性測度距離計算---幾種距離對比

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

X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T為兩個輸入向量,

1.歐幾里得距離(Euclidean distance)-EuclideanDistanceMeasure.

Euclidean Distance

相當於高維空間內向量說表示的點到點之間的距離。
由於特徵向量的各分量的量綱不一致,通常需要先對各分量進行標準化,使其與單位無關,比如對身高(cm)和體重(kg)兩個單位不同的指標使用歐式距離可能使結果失效


優點:簡單,應用廣泛(如果也算一個優點的話)
缺點:沒有考慮分量之間的相關性,體現單一特徵的多個分量會干擾結果。

2.馬氏距離(Mahalanobis distance)-MahalanobisDistanceMeasure

C=E[(X-X平均)(Y-Y平均)]為該類輸入向量X的協方差矩陣.(T為轉置符號,E取平均時是樣本因此為n-1)

適用場合:
1)度量兩個服從同一分佈並且其協方差矩陣為C的隨機變數X與Y的差異程度
2)度量X與某一類的均值向量的差異程度,判別樣本的歸屬。此時,Y為類均值向量.
優點
1)獨立於分量量綱
2)排除了樣本之間的相關性影響。
缺點:不同的特徵不能差別對待,可能誇大弱特徵。

3.閔可夫斯基距離(Minkowsk distance)-MinkowskiDistanceMeasure(預設p=3)

Minkowski Distance

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

當p=1,也成做曼哈頓距離,也稱絕對距離,曼哈頓距離來源於城市區塊距離,是將多個維度上的距離進行求和後的結果ManhattanDistanceMeasure.

Manhattan Distance

當q=∞時,稱為切比雪夫距離ChebyshevDistanceMeasure 

切比雪夫距離起源於國際象棋中國王的走法,我們知道國際象棋國王每次只能往周圍的8格中走一步,那麼如果要從棋盤中A格(x1, y1)走到B格(x2, y2)最少需要走幾步?擴充套件到多維空間,其實切比雪夫距離就是當p趨向於無窮大時的明氏距離:

Chebyshev Distance

在資訊理論中,兩個等長字串之間的漢明距離是兩個字串對應位置的不同字元的個數。換句話說,它就是將一個字串變換成另外一個字串所需要替換的字元個數。

    例如:

    1011101 與 1001001 之間的漢明距離是 2。
    2143896 與 2233796 之間的漢明距離是 3。
    "toned" 與 "roses" 之間的漢明距離是 3。

5.Tanimoto係數(又稱廣義Jaccard係數)-TanimotoDistanceMeasure.

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

5.Jaccard係數

Jaccard係數主要用於計算符號度量或布林值度量的個體間的相似度,因為個體的特徵屬性都是由符號度量或者布林值標識,因此無法衡量差異具體值 的大小,只能獲得“是否相同”這個結果,所以Jaccard係數只關心個體間共同具有的特徵是否一致這個問題。如果比較X與Y的Jaccard相似係數, 只比較xn和yn中相同的個數,公式如下:


Jaccard Coefficient

即相關分析中的相關係數r,分別對X和Y基於自身總體標準化後計算空間向量的餘弦夾角。公式如下:

Pearson Correlation Coefficient

8.餘弦相似度(cosine similarity)-CosineDistanceMeasure

Cosine Similarity

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

餘弦相似度用向量空間中兩個向量夾角的餘弦值作為衡量兩個個體間差異的大小。相比距離度量,餘弦相似度更加註重兩個向量在方向上的差異,而非距離或長度上。

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

9.調整餘弦相似度-Adjusted Cosine Similarity

雖然餘弦相似度對個體間存在的偏見可以進行一定的修正,但是因為只能分辨個體在維之間的差異,沒法衡量每個維數值的差異,會導致這樣一 個情況:比如使用者對內容評分,5分制,X和Y兩個使用者對兩個內容的評分分別為(1,2)和(4,5),使用餘弦相似度得出的結果是0.98,兩者極為相 似,但從評分上看X似乎不喜歡這2個內容,而Y比較喜歡,餘弦相似度對數值的不敏感導致了結果的誤差,需要修正這種不合理性,就出現了調整餘弦相似度,即 所有維度上的數值都減去一個均值,比如X和Y的評分均值都是3,那麼調整後為(-2,-1)和(1,2),再用餘弦相似度計算,得到-0.8,相似度為負 值並且差異不小,但顯然更加符合現實。

調整餘弦相似度和餘弦相似度,皮爾遜相關係數在推薦系統中應用較多。在基於專案的推薦中,GroupLens有篇論文結果表明調整餘弦相似度效能要優於後兩者。

10.基於權重的距離計算方法:

WeightedDistanceMeasure、WeightedEuclideanDistanceMeasure 、 WeightedManhattanDistanceMeasure

歐氏距離與餘弦相似度

藉助三維座標系來看下歐氏距離和餘弦相似度的區別:

distance and similarity

根據歐氏距離和餘弦相似度各自的計算方式和衡量特徵,分別適用於不同的資料分析模 型:歐氏距離能夠體現個體數值特徵的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,如使用使用者行為指標分析使用者價值的相似度或差異;而 餘弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用於使用使用者對內容評分來區分使用者興趣的相似度和差異,同時修正了使用者間可能存在的度 量標準不統一的問題(因為餘弦相似度對絕對數值不敏感)。

相關推薦

模式識別相似性測度距離計算---距離對比

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

習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算圖形面積,並求。。。

C++程式設計(第三版) 譚浩強 習題12.5 個人設計 習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求它們的和

機器學習中的距離度量方法比較

1. 歐氏距離(Euclidean  Distance)  /ju:'klidiən/ 歐式距離是最容易直觀理解的距離度量方法,我們小學,中學,高中所接觸的兩個空間中的距離一般都是指的是歐式距離。  二維平面上點a(x1,y1)與b(x2,y2)間的歐氏距離:

常用距離的標識

曼哈頓距離(Manhattan Distance) 顧名思義,在曼哈頓街區要從一個十字路口開車到另一個十字路口,駕駛距離顯然不是兩點間的直線距離。這個實際駕駛距離就是“曼哈頓距離”。曼哈頓距離也稱為“城市街區距離”(City Block distance)。

Windows上安裝配置SSH教程(7)——方式對比

由於 客戶端 方案 body open ins 下使用 上傳下載 直接 服務端:Windows XP 客戶端:Windows 10 由於Cygwin也可以安裝OpenSSH,所以客戶端其實可以直接使用Cygwin安裝OpenSSH,那麽在Windows下使用SCP(安全拷貝

java整合groovy的方式對比

   Groovy的幾種整合方式:groovyshell、GroovyClassLoader、GroovyScriptEngine,其中groovyshell的方式不支援指令碼快取,會導致垃圾回收頻繁

系統學習機器學習之隨機場(三)--MRF,CRF及模型對比

條件隨機場(Conditional random fields),是一種判別式圖模型,因為其強大的表達能力和出色的效能,得到了廣泛的應用。從最通用角度來看,CRF本質上是給定了觀察值集合 (observations)的馬爾可夫隨機場(MRF)。在這裡,我們直接從最通用的角

Android解析JSON資料方式對比

Json介紹 Json(JavaScript Object Natotion)是一種輕量級的資料交換格式,具有良好的可讀性和便於快速編寫的特性,主要用於傳送資料。Json是一種取代Xml的資料結構,相比於xml更小巧,從而減少資料傳輸流量和佔用的頻寬。 Json語法 {

Android 熱修復的方案對比

Dexposed是一個阿里巴巴手機淘寶基於Xposed進行的改進,產生了針對Android Dalvik 虛擬機器執行時的Java Method Hook 技術--Dexposed。在native層中先找到要修復的Java函式對應的Method物件,修改它變為native方法,把它的nativeFunc指向h

React事件繫結的方式對比

React事件繫結由於類的方法預設不會繫結this,因此在呼叫的時候如果忘記繫結,this的值將會是undefined。通常如果不是直接呼叫,應該為方法繫結this。繫結方式有以下幾種:1. 在建構函式中使用bind繫結thisclass Button extends Rea

字串為空判斷的寫法對比

public static void main(String[] args) {         String str = "";         //最好         if(str!=null&&!"".equals(str)){          

JAVA中字符串操作方式對比

sed str aps exceptio clas src sys sta 完整 @參考文章 方法及原理: 方法1:a=a+b實際上另開辟一個空間c=a+b;然後將c的引用賦給a 方法2:a += b實際上是建立一個StringBuffer,然後調用append(),

php載入腳本的方式對比

特點 文件 腳本 當前 ron 不存在 font clu color require require_once include include_once 共同點: 都可以在當前 PHP 腳本文件執行時載入另外一個 PHP 腳本文件。 requ

MDX常用查詢對比

view reg 架構 aggregate nbsp member mon lap sed MDX1: SELECT NON EMPTY {Hierarchize( { [Measures].

異地組網的方式對比

什麽 基礎 人性化 掉線 全面 公有ip 1.5 核心 應該 首先就是自建V皮恩,就是自行購買設備建立一個屬於你的V皮恩,網絡需求是至少一邊租有公有ip,除過公網IP的租賃價格,價格一般(設備+地址+鏈接費用+維護),維護需要一定的網絡基礎,當然也可以找代理。mpls V皮

常見的模式識別演算法整理和總結

這學期選了門模式識別的課。發現最常見的一種情況就是,書上寫的老師ppt上寫的都看不懂,然後繞了一大圈去自己查資料理解,回頭看看發現,Ah-ha,原來本質的原理那麼簡單,自己一開始只不過被那些看似formidable的細節嚇到了。所以在這裡把自己所學的一些點記錄下來,供備忘,也

常見模式識別演算法整理和總結

這學期選了門模式識別的課。發現最常見的一種情況就是,書上寫的老師ppt上寫的都看不懂,然後繞了一大圈去自己查資料理解,回頭看看發現,Ah-ha,原來本質的原理那麼簡單,自己一開始只不過被那些看似formidable的細節嚇到了。所以在這裡把自己所學的一些點記錄下來,供備忘

模式識別基本演算法

           本學期選了模式識別的課程,該期末考試了, 將本課程的幾種基本演算法整理一下。 0.最小距離分類判別演算法 (1)定義:是指求出未知類別向量到要識別各類別代表向量中心點的距離,將未知類別向量歸屬於距離最小一類的一種影象分類方法。 (2)用Matlab實現

常見的模式識別演算法整理 及 相關資料介紹和下載

這學期選了門模式識別的課。發現最常見的一種情況就是,書上寫的老師ppt上寫的都看不懂,然後繞了一大圈去自己查資料理解,回頭看看發現,Ah-ha,原來本質的原理那麼簡單,自己一開始只不過被那些看似formidable的細節嚇到了。所以在這裡把自己所學的一些點記錄下來,供備忘,也供參考。 1. K-Near

stm32 usart的通信模式

格式 bsp 紅外 同步 單向 使用 需要 半雙工 數據 一 USART 通用同步異步收發器(USART)提供了一種靈活的方法與使用工業標準NRZ異步串行數據格式的外部設備之間進行全雙工數據交換。 USART支持同步單向通信和半雙工單線通信,也支持LIN(局部互聯網)、