一些距離表示和相似度量

信號或者多維空間裏,常常需要用一些距離或者相關度量來衡量兩個點或向量的距離和相似度。下面列舉一些常用於不同的模型和空間的距離。


1. 歐氏距離(euclidean distance)

       最通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。在二維和三維空間中的歐氏距離就是兩點之間的實際距離(直線距離)。在m維空間中,歐式距離的計算如下:



2. 馬氏距離(Mahalanobis distance)

        馬氏距離表示數據的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法。與歐氏距離不同的是它考慮到各種特性之間的聯繫(例如:一條關於身高的信息會帶來一條關於體重的信息,因爲兩者是有關聯的)並且是尺度無關的(scale-invariant),即獨立於測量尺度。

有M個樣本向量X1~Xm,協方差矩陣記爲S,均值記爲向量μ,則其中樣本向量X到μ的馬氏距離表示爲:

而其中向量Xi與Xj之間的馬氏距離定義爲:

若協方差矩陣是單位矩陣(各個樣本向量之間獨立同分布),則公式就成了:

也就是歐氏距離了。






3. Bhattacharyya距離

在統計學中,Bhattacharyya距離(以下稱巴氏距離)測量的是兩個離散或連續概率分佈的相似性。計算方式和Bhattacharyya係數關係很密切。兩種計算方式都以A. Bhattacharyya名字命名,Bhattacharyya是一位30年代在印度統計研究所工作的統計學家。巴氏係數可用來對兩組樣本的相關性進行測量。這一方法常用來作分類器算法

數學定義

-離散概率分佈

  對於在X數域上的兩個離散概率分佈p和q,巴氏距離定義爲:



其中


被稱作Bhattacharyya係數(巴氏係數,Bhattacharyya Coefficien)

  0 \le BC \le 1 且 0 \le D_B \le \infty


對於連續概率分佈

  在連續函數中,Bhattacharyya係數如下定義:

 

0 \le BC \le 1 且 0 \le D_B \le \infty

兩種情形中,巴氏距離DB均不滿足三角不等式

例如在正態分佈下,p(x)和q(x)的巴氏距離爲;

D_{B}(p,q) = \frac{1}{4} \ln \left ( \frac{1}{4}\left( \frac{\sigma_{p}^{2}}{\sigma_{q}^{2}}+\frac{\sigma_{q}^{2}}{\sigma_{p}^{2}}+2\right ) \right ) +\frac{1}{4} \left ( \frac{(\mu_{p}-\mu_{q})^{2}}{\sigma_{p}^{2}+\sigma_{q}^{2}}\right )

其中,σμ分別表示相應的均值和方差。


Bhattacharyya係數

       巴氏係數是對兩個統計樣本的重疊量的近似計算。巴氏係數可用來對兩組樣本的相關性進行測量。

計算巴氏係數涉及到對該兩個樣本的重疊部分進行基本形式的積分。兩個樣本值的積分被分成指定數目的部分。而每一個樣本的每一個部分的成員數被用於下式中:

4.Hellinger 距離

       在概率論和統計理論中,Hellinger距離被用來度量兩個概率分佈的相似度。它是f散度的一種(f散度——度量兩個概率分佈相似度的指標)。爲了從度量理論的角度定義Hellinger距離,我們假設P和Q是兩個概率測度,並且它們對於第三個概率測度λ來說是絕對連續的,則P和Q的Hellinger距離的平方被定義如下:

H^2(P,Q) = \frac{1}{2}\displaystyle \int \left(\sqrt{\frac{dP}{d\lambda}} - \sqrt{\frac{dQ}{d\lambda}}\right)^2 d\lambda.

這裏的dP 和 dQdλ分別是P和Q的Radon–Nikodym微分。這裏的定義是與λ無關的,因此當我們用另外一個概率測度替換λ時,只要P和Q關於它絕對連續,那麼上式就不變。爲了簡單起見,我們通常把上式改寫爲:

H^2(P,Q) = \frac{1}{2}\int \left(\sqrt{dP} - \sqrt{dQ}\right)^2.

Hellinger距離滿足如下性質:

0\le H(P,Q) \le 1.

離散概率分佈

對於兩個離散概率分佈 P=(p1,p2,...,pn)和 Q=(q1,q2,...,qn),它們的Hellinger距離可以定義如下:

H(P, Q) = \frac{1}{\sqrt{2}} \; \sqrt{\sum_{i=1}^{k} (\sqrt{p_i} - \sqrt{q_i})^2},

上式可以被看作兩個離散概率分佈平方根向量的歐式距離,如下所示:

H(P, Q) = \frac{1}{\sqrt{2}} \; \|\sqrt{P} - \sqrt{Q} \|_2 .

兩個正態分佈P 和 Q的Hellinger距離的平方可以被定義爲:

H^2(P, Q) = 1 - \sqrt{\frac{2\sigma_1\sigma_2}{\sigma_1^2+\sigma_2^2}} \, e^{-\frac{1}{4}\frac{(\mu_1-\mu_2)^2}{\sigma_1^2+\sigma_2^2}} .

兩個指數分佈P 和 Q的Hellinger距離的平方可被定義爲:

H^2(P, Q) = 1 - \frac{2 \sqrt{\alpha \beta}}{\alpha + \beta}.

兩個威利分佈P 和 Q(此處k是一個形狀參數,α和β是尺度係數)的Hellinger距離的平方可被定義爲:

H^2(P, Q) = 1 - \frac{2 (\alpha \beta)^{k/2}}{\alpha^{k} + \beta^{k}}.

對於兩個具有參數α和β的泊松分佈 P 和 Q,它們的Hellinger距離可被定義爲:

H^2(P,Q) = 1-e^{-\frac{1}{2}(\sqrt{\alpha} - \sqrt{\beta})^2}.


5.明氏距離   (或譯成 閔可夫斯基距離 MinkowskiDistance)

又叫做明可夫斯基距離,是歐氏空間中的一種測度,被看做是歐氏距離的一種推廣,對於n維空間的兩個點x,y的明氏距離的定義式:

當p=1時,就是曼哈頓距離

當p=2時,就是歐氏距離

當p→∞時,就是切比雪夫距離

       根據變參數的不同,閔氏距離可以表示一類的距離。

6.漢明距離

信息論中,兩個等長字符串之間的漢明距離是兩個字符串對應位置的不同字符的個數。換句話說,它就是將一個字符串變換成另外一個字符串所需要替換的字符個數。例如:
  • 10111011001001之間的漢明距離是2。
  • 21438962233796之間的漢明距離是3。
  • "toned"與"roses"之間的漢明距離是3。

用3個二進制位來表示立方體頂點的編碼,那個任意兩個頂點(二進制序列)的漢明距離就是邊長。如下圖所示,從000到111要走3步,漢明距離就是3。



用4個二進制表示的超立方體的編碼也類似,只是多了一位,距離計算也是位變化數量。




7. 曼哈頓距離(ManhattanDistance)

       從名字就可以猜出這種距離的計算方法了。想象你在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是這個“曼哈頓距離”。而這也是曼哈頓距離名稱的來源, 曼哈頓距離也稱爲城市街區距離(CityBlock distance)

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離

 

(2)兩個n維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的曼哈頓距離

 





8.餘弦距離(Cosine Distance)

       從名字就可以知道計算什麼了,就是兩個向量的餘弦,對於n維空間的兩個向量a和b,其餘弦距離;



9.切比雪夫距離(Chebyshev distance)

       二個點之間的距離定義爲其各座標數值差的最大值,以(x1,y1)和(x2,y2)二點爲例,其切比雪夫距離爲max(|x2-x1|,|y2-y1|)。切比雪夫距離得名自俄羅斯數學家切比雪夫。若將國際象棋棋盤放在二維直角座標系中,格子的邊長定義爲1,座標的x軸及y軸和棋盤方格平行,原點恰落在某一格的中心點,則王從一個位置走到其他位置需要的步數恰爲二個位置的切比雪夫距離,因此切比雪夫距離也稱爲棋盤距離。例如位置F6和位置E2的切比雪夫距離爲4。任何一個不在棋盤邊緣的位置,和周圍八個位置的切比雪夫距離都是1。




若二個向量或二個點p 、and q,其座標分別爲p_iq_i,則兩者之間的切比雪夫距離定義如下:

D_{\rm Chebyshev}(p,q) := \max_i(|p_i - q_i|).\

這也等於以下Lp度量的極值:

\lim_{k \to \infty} \bigg( \sum_{i=1}^n \left| p_i - q_i \right|^k \bigg)^{1/k},

因此切比雪夫距離也稱爲L度量。

以數學的觀點來看,切比雪夫距離是由一致範數(或稱爲上確界範數)所衍生的度量,也是超凸度量的一種。

在平面幾何中,若二點pq的直角座標系座標爲 (x_1,y_1)(x_2,y_2),則切比雪夫距離爲

D_{\rm Chess} = \max \left ( \left | x_2 - x_1 \right | , \left | y_2 - y_1 \right | \right ) .

依以上的度量,以任一點爲準,和此點切比雪夫距離爲r的點會形成一個正方形,其邊長爲2r,且各邊都和座標軸平行。在棋盤上,使用的是離散的切比雪夫距離,以以任一位置爲準,和此點切比雪夫距離爲r的所有位置也會形成一正方形,若以位置的中心量到其他位置的中心,此正方形的“邊長”爲2r,正方形的邊會有2r+1個方格,例如,和一位置切比雪夫距離爲1的所有位置會形成一個3×3的正方形。



10. 傑卡德距離(Jaccard Distance) 

傑卡德距離是用來衡量兩個集合差異性的一種指標,它是傑卡德相似係數的補集,被定義爲1減去Jaccard相似係數。而傑卡德相似係數(Jaccard similarity coefficient),也稱傑卡德指數(Jaccard Index),是用來衡量兩個集合相似度的一種指標。

Jaccard相似指數用來度量兩個集合之間的相似性,它被定義爲兩個集合交集的元素個數除以並集的元素個數。




Jaccard距離用來度量兩個集合之間的差異性,它是Jaccard的相似係數的補集,被定義爲1減去Jaccard相似係數。
1) 若A、B兩個集合都爲空,則
        ;
2) ;給定兩個n維二元向量A、B,A、B的每一維都只能是0或者1,利用Jaccard相似係數來計算二者的相似性:
1)M00代表向量A與向量B都是0的維度個數;
2)M01 代表向量A是0而向量B是1的維度個數;
3)M10代表向量A是1而向量B是0的維度個數;
4) 
M11
代表向量A和向量B都是1的維度個數。
n維向量的每一維都會落入這4類中的某一類,因此:

則Jaccard相似係數爲


Jaccard距離爲


11. 信息熵(Information Entropy

熵用於度量一個熱力學系統的無序程度。在信息論裏面,熵是對不確定性的測量。但是在信息世界,熵越高,則能傳輸越多的信息,熵越低,則意味着傳輸的信息越少。英語文本數據流的熵比較低,因爲英語很容易讀懂,也就是說很容易被預測。即便我們不知道下一段英語文字是什麼內容,但是我們能很容易地預測,比如,字母e總是比字母z多,或者qu字母組合的可能性總是超過q與任何其它字母的組合。如果未經壓縮,一段英文文本的每個字母需要8個比特來編碼,但是實際上英文文本的熵大概只有4.7比特。

熵的計算

如果有一枚理想的硬幣,其出現正面和反面的機會相等,則拋硬幣事件的熵等於其能夠達到的最大值。我們無法知道下一個硬幣拋擲的結果是什麼,因此每一次拋硬幣都是不可預測的。因此,使用一枚正常硬幣進行若干次拋擲,這個事件的熵是一比特,因爲結果不外乎兩個——正面或者反面,可以表示爲0, 1編碼,而且兩個結果彼此之間相互獨立。若進行n次獨立實驗,則熵爲n,因爲可以用長度爲n的比特流表示。但是如果一枚硬幣的兩面完全相同,那個這個系列拋硬幣事件的熵等於零,因爲結果能被準確預測。現實世界裏,我們收集到的數據的熵介於上面兩種情況之間。

另一個稍微複雜的例子是假設一個隨機變量X,取三種可能值\begin{smallmatrix} x_1, x_2, x_3 \end{smallmatrix},概率分別爲\begin{smallmatrix} \frac{1}{2}, \frac{1}{4}, \frac{1}{4} \end{smallmatrix},那麼編碼平均比特長度是:\begin{smallmatrix} \frac{1}{2} \times 1 + \frac{1}{4} \times 2 + \frac{1}{4} \times 2 = \frac{3}{2} \end{smallmatrix}。其熵爲3/2。因此熵實際是對隨機變量的比特量和順次發生概率相乘再總和的數學期望。

一個值域爲{x1, ..., xn}的隨機變量X 的熵值 H 定義爲:

H(X)  =  \operatorname{E}(I(X))

其中,E 代表了期望函數,而 I(X) 是 X 的信息量。I(X) 本身是個隨機變量。如果p 代表了 X 的機率質量函數(probability mass function),則熵的公式可以表示爲:

H(X) = \sum_{i=1}^n {p(x_i)\,I(x_i)} = -\sum_{i=1}^n {p(x_i) \log_b p(x_i)}

在這裏 b 是對數所使用的底,通常是 2, 自然常數 e,或是10。當b = 2,熵的單位是bit;當b = e,熵的單位是nat;而當b = 10,熵的單位是dit。

pi = 0時,對於一些i值,對應的被加數0 logb 0的值將會是0,這與極限一致。

\lim_{p\to0+}p\log p = 0.


交叉熵Cross Entropy

交叉熵是一種萬能的Monte-Carlo技術,常用於稀有事件的仿真建模、多峯函數的最優化問題。交叉熵技術已用於解決經典的旅行商問題、揹包問題、最短路問題、最大割問題等。

交叉熵算法的推導過程中又牽扯出來一個問題:如何求一個數學期望?常用的方法有這麼幾種:

  • 概率方法,比如Crude Monte-Carlo
  • 測度變換法change of measure
  • 偏微分方程的變量代換法
  • Green函數法
  • Fourier變換法

在實際中變量X服從的概率分佈h往往是不知道的,我們會用g來近似地代替h----這本質上是一種函數估計。有一種度量g和h相近程度的方法叫 Kullback-Leibler距離,又叫交叉熵:



通常選取g和h具有相同的概率分佈類型(比如已知h是指數分佈,那麼就選g也是指數分佈)----參數估計,只是pdf參數不一樣(實際上h中的參數根本就是未知的)。交叉熵反應了文本類別的概率分佈與在出現了某個詞條的情況下文本類別的概率分佈之間的距離。詞條的交叉熵越大,對文本類別分佈影響也就越大。


12. 相關係數( Correlation coefficient )與相關距離(Correlation distance)

(1)相關係數的定義

相關係數是衡量隨機變量X與Y相關程度的一種方法,相關係數的取值範圍是[-1,1]。相關係數的絕對值越大,則表明X與Y相關度越高。當X與Y線性相關時,相關係數取值爲1(正線性相關)或-1(負線性相關)。

(2)相關距離的定義




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章