天天看點

跟我一起資料挖掘(8)——相似性和相異性

前面說過了資料矩陣和相異性矩陣,并且對标稱屬性和二進制屬性的相異性進行了分析。

下面綜合看一下矩陣的相異性和相似性。

相似性和相異性被許多資料挖掘技術所使用,如聚類、最近鄰分類、異常檢測等。兩個對象之間的相似度是這兩個對象相似程度的數值度量,通常相似度是非

負值,并常常在0(不相似)和1(完全相似)之間取值。兩個對象之間的相異度是這兩個對象差異程度的數值度量,兩個對象越相似,它們的相異度就越低,通常

用“距離”作為相異度的同義詞。資料對象之間相似性和相異性的度量有很多,如何選擇度量方法依賴于對象的資料類型,資料的量值是否重要,資料的稀疏性等。

1. 歐氏距離(euclidean distance)

歐式距離是高維空間中兩點之間的距離,它計算簡單、應用廣泛,但是沒有考慮變量之間的相關性,當展現單一特征的多個變量參與計算時會影響結果的準确性,同時它對向量中得每個分量的誤差都同等對待,一定程度上放大了較大變量誤差在距離測度中的作用。

兩個n維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的歐氏距離定義為:d(a,b)=[(x11-x21)^2+(x12-x22)^2+…+(x1n-x2n)^2]^0.5

歐式距離的公式是 

d=sqrt( ∑(xi1-xi2)^ ) 這裡i=1,2..n 

歐氏距離:(∑(xi-yi)2)1/2,即兩項間的差是每個變量值差的平方和再平方根,目的是計算其間的整體距離即不相似性。 

 歐氏距離雖然很有用,但也有明顯的缺點。它将樣品的不同屬性(即各名額或各變量)之間的差别等同看待,這一點有時不能滿足實際要求。例如,在教育研究中, 經常遇到對人的分析和判别,個體的不同屬性對于區分個體有着不同的重要性。是以,有時需要采用不同的距離函數。

歐氏距離看作信号的相似程度。 距離越近就越相似,就越容易互相幹擾,誤碼率就越高。

2. 曼哈頓距離(manhattan distance)

曼哈頓距離也稱為城市街區距離(city block distance),想象在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是“曼哈頓距離”。

兩個n維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的曼哈頓距離定義為:d(a,b)=|x11-x21|+|x12-x22|+…+|x1n-x2n|

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

跟我一起資料挖掘(8)——相似性和相異性

以上兩個距離都具有的數學性質是:

非負性:d(i,j)≥0 距離是一個非負的數值

同一性:d(i,i)= 0 對象到自身的距離為0

對稱性:d(i,j)= d(j,i)距離是一個對稱函數

三角不等式:d(i,j)≤d(i,k)+d(k,j)從對象i到對象j的直接距離不會大于途經的任何其他對象k的距離

3. 切比雪夫距離 (chebyshev distance )

數學上,切比雪夫距離(chebyshev distance)或是l∞度量是向量空間中的一種度量,二個點之間的距離定義為其各座标數值差的最大值。以(x1,y1)和(x2,y2)二點為例,其切比雪夫距離為max(|x2-x1|,|y2-y1|)。切比雪夫距離得名自俄羅斯數學家切比雪夫。

切比雪夫距離也稱為棋盤距離,國際象棋中,國王走一步能夠移動到相鄰的8個方格中的任意一個,那麼國王從格子a(x1,y1)走到格子b(x2,y2)最少需要多少步?你會發現最少步數總是max{|x2-x1|,|y2-y1|}步。

兩個n維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的切比雪夫距離定義為:d(a,b)=max{|x11-

x21|,|x12-x22|,…,|x1n-x2n|},該公式的另一種等價形式是:d(a,b)=[(x11-x21)^k+(x12-

x22)^k+…+(x1n-x2n)^k]^(1/k),其中k趨向于無窮大。

4. 闵氏距離(minkowski distance)

闵可夫斯基距離:

跟我一起資料挖掘(8)——相似性和相異性

闵可夫斯基距離(minkowski distance)是衡量數值點之間距離的一種非常常見的方法,假設數值點 p 和 q 坐标如下:

那麼,闵可夫斯基距離定義為:

跟我一起資料挖掘(8)——相似性和相異性

闵氏距離不是一種距離,而是一組距離的定義。

該距離最常用的 p 是 2 和 1, 前者是歐幾裡得距離(euclidean distance),後者是曼哈頓距離(manhattan distance)。假設在曼哈頓街區乘坐計程車從 p 點到 q 點,白色表示高樓大廈,灰色表示街道:

跟我一起資料挖掘(8)——相似性和相異性

綠色的斜線表示歐幾裡得距離,在現實中是不可能的。其他三條折線表示了曼哈頓距離,這三條折線的長度是相等的。

當 p 趨近于無窮大時,闵可夫斯基距離轉化成切比雪夫距離(chebyshev distance):

跟我一起資料挖掘(8)——相似性和相異性

我們知道平面上到原點歐幾裡得距離(p = 2)為 1 的點所組成的形狀是一個圓,當 p 取其他數值的時候呢?

注意,當 p < 1 時,闵可夫斯基距離不再符合三角形法則,舉個例子:當 p < 1, (0,0) 到 (1,1) 的距離等于 (1 1)^{1/p} > 2, 而 (0,1) 到這兩個點的距離都是 1。

跟我一起資料挖掘(8)——相似性和相異性

闵可夫斯基距離比較直覺,但是它與資料的分布無關,具有一定的局限性,如果 x 方向的幅值遠遠大于 y 方向的值,這個距離公式就會過度放大 x 次元的作用。是以,在計算距離之前,我們可能還需要對資料進行 z-transform 處理,即減去均值,除以标準差:

跟我一起資料挖掘(8)——相似性和相異性

可以看到,上述處理開始展現資料的統計特性了。這種方法在假設資料各個次元不相關的情況下利用資料分布的特性計算出不同的距離。如果次元互相之間資料相關(例如:身高較高的資訊很有可能會帶來體重較重的資訊,因為兩者是有關聯的),這時候就要用到馬氏距離(mahalanobis distance)了。

兩個n維變量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的闵氏距離定義為:d(a,b)=[|x11-

x21|^p+|x12-x22|^p+…+|x1n-x2n|^p]^(1/p),其中p是一個可變參數。當p=1時為曼哈頓距離,當p=2時為歐氏距

離,當p→∞時為切比雪夫距離。

闵氏距離,包括曼哈頓距離、歐氏距離和切比雪夫距離都存在明顯的缺點:(1)對各個分量的量綱(scale)沒有差別對待。(2)未考慮各個分量的分布(期望,方差等)可能是不同的。

5. 标準化歐氏距離(standardized euclidean distance)

标準化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進,其基本思想是先将資料對象的各個分量都進行均值為μ、标準差為s的标準化,然後再計算歐式距離。

兩個n維向量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)的标準化歐氏距離定義為:d(a,b)={[(x11-x21)/s1]^2+[(x12-x22)/s2]^2+…+[(x1n-x2n)/sn]^2}^0.5

6. 馬氏距離(mahalanobis distance)

馬氏距離由印度統計學家馬哈拉諾斯(p.c.mahalanobis)提出,表示資料的協方差距離,與歐式距離不同,它考慮了各名額之間相關性的幹擾,而且不受各名額量綱的影響,但是它的缺點是誇大了變化微小的變量的作用。

設a、b是從均值向量為μ,協方差陣為∑的總體g中抽取的兩個樣本,a、b兩點之間的馬氏距離定義為:d(a,b)=[(a-b)t∑-1(a-b)]^0.5,a與總體g的馬氏距離定義為d(a,g)=[(a-μ)t∑-1(a-μ)]^0.5。

當協方差矩陣∑是機關矩陣(各個樣本向量之間獨立同分布),則馬氏公式就轉化為歐氏距離;當協方差矩陣∑是對角陣時,則馬氏距離就轉化為标準化歐式距離;

7. 漢明距離(hamming distance)

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

例如:1011101 與 1001001 之間的漢明距離是 2;”toned”與”roses” 之間的漢明距離是3。

8. 皮爾遜相關系數(pearson correlation coefficient )

皮爾遜相關系數也稱為簡單相關系數,它是衡量随機變量x與y相關程度的一種方法,相關系數的取值範圍是[-1,1]。相關系數的絕對值越大,則表明x與y相關度越高,負值表示負相關,正值表示正相關。

[(d(x)^0.5)*(d(y)^0.5)]=[(x1-x_bar)(y1-y_bar)+(x2-x_bar)(y2-y_bar)+…+

(xn-x_bar)(yn-y_bar)]/{[(x1-x_bar)^2+(x2-x_bar)^2+…(xn-x_bar)]*[(y1-

y_bar)^2+(y2-y_bar)^2+…(yn-y_bar)]}^0.5。

pearson相關系數要求參與計算的變量為服從雙變量正态分布的連續型資料,并且僅适用于線性相關的情況。另外,當極值對pearson相關系數的影響非常大,是以在計算之前要首先進行極值處理。

9.斯皮爾曼秩相關系數(spearman rank correlation)

與pearson相關系數一樣,它也可以反映兩組變量聯系的緊密程度,取值在-1到+1之間,計算方法上也完全相同,不同的是它建立在秩次的基礎之上,對原始變量的分布和樣本容量的大小不作要求,屬于非參數統計方法,适用範圍更廣。

中的秩,q(q1,q2,…,qn)表示y在(y1,y2,…,yn)中的秩,如果x和y具有同步性,那麼r和q也會表現出同步性,反之依然,将其代入

pearson相關系數,就得到秩之間的一緻性,也就是spearman相關系數。考慮到

r1+r2+…rn=q1+q2+…+qn=n(n+1)/2,r1^2+r2^2+…+rn^2=q1^2+q2^2+…+qn^2=n(n+1)

(2n+1)/6,spearman相關系數可以定義為:r(x,y)=1-6*[(r1-q1)^2+(r2-q2)^2+…(rn-qn)^2]

/[n(n^2-1)]

10.肯德爾秩相關系數(kendall rank correlation )

kendall在本質設想方面與spearman是一樣的,它從兩個變量是否協同一緻的角度出發檢驗兩變量之間是否存在相關性。什麼是協同?假設兩

個變量x、y有n對觀察值(x1,y1)(x2,y2)…(xn,yn),如果(xj-xi)(yj-yi)>0(j>i),稱

(xi,yi)與(xj,yj)滿足協同性(concordant),或者說變化方向一緻。否則,不滿足協同性。

全部資料共有n(n-1)/2對,如果用nc表示同向數對的數目,nd表示反向數對的數目,則nc+nd=

n(n-1)/2,kendall相關系數由兩者的平均差定義:(nc-nd)/[n(n-1)/2]。kendall相關系數的取值範圍在-1到1之

間,當等于1時,表示兩個随機變量擁有一緻的等級相關性;當等于-1時,表示兩個随機變量擁有完全相反的等級相關性;當等于0時,表示兩個随機變量是互相

獨立的。

11. 餘弦相似度(cosine similarity)

幾何中夾角餘弦可用來衡量兩個向量方向的差異,機器學習中用這一概念來衡量樣本向量之間的差異。夾角餘弦的取值範圍為[-1,1]。夾角餘弦越大表

示兩個向量的夾角越小,夾角餘弦越小表示兩向量的夾角越大。當兩個向量的方向重合時夾角餘弦取最大值1,當兩個向量的方向完全相反夾角餘弦取最小值-1。

兩個n維樣本向量a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角餘弦定義為:cosθ=

(a·b)/(|a|*|b|)

=(x11*x21+x12*x22+…x1n*x2n)/[(x11^2+x12^2+…+x1n^2)^0.5*

(x21^2+x22^2+…+x2n^2)^0.5],夾角餘弦經常應用于像文檔這樣的稀疏資料,它變量的長度無關,如向量(1,2)和(2,4)的夾

角餘弦與向量(1,2)和(10,20)的相等。

歐氏距離是最常見的距離度量,而餘弦相似度則是最常見的相似度度量,很多的距離度量和相似度度量都是基于這兩者的變形和衍生,是以下面重點比較下兩者在衡量個體差異時實作方式和應用環境上的差別。

借助三維坐标系來看下歐氏距離和餘弦相似度的差別:

跟我一起資料挖掘(8)——相似性和相異性

從圖上可以看出距離度量衡量的是空間各點間的絕對距離,跟各個點所在的位置坐标(即個體特征次元的數值)直接相關;而餘弦相似度衡量的是空間向量的夾角,更加的是展現在方向上的差異,而不是位置。如果保持a點的位置不變,b點朝原方向遠離坐标軸原點,那麼這個時候餘弦相似度cosθ是保持不變的,因為夾角不變,而a、b兩點的距離顯然在發生改變,這就是歐氏距離和餘弦相似度的不同之處。

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

12.調整餘弦相似度(adjusted cosine similarity)

餘弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感。是以沒法衡量每個維數值的差異,會導緻這樣一個情況:比如使用者對内容評分,5分制,x

和y兩個使用者對兩個内容的評分分别為(1,2)和(4,5),使用餘弦相似度得出的結果是0.98,兩者極為相似,但從評分上看x似乎不喜歡這2個内容,

而y比較喜歡,餘弦相似度對數值的不敏感導緻了結果的誤差,需要修正這種不合理性。

調整餘弦相似度,将所有次元上的數值都減去一個均值,比如x和y的評分均值都是3,那麼調整後為(-2,-1)和(1,2),再用餘弦相似度計算,得到-0.8,相似度為負值并且差異不小,但顯然更加符合現實。

13. 簡單比對系數(simple matching coefficient,smc)

設a、b是兩個二進制屬性組成的對象,這兩個對象的比較導緻如下四個頻率變量:f00:a取0并且b取0屬性的個數;f01:a取0并且b取1屬性的個數;f10:a取1并且b取0屬性的個數;f11:a取1并且b取1屬性的個數。

那麼smc就是兩個對象a、b屬性值比對的屬性個數與所有屬性個數的比值,即smc(a,b)=(f11+f00)/(f01+f10+f11+f00)

14. jaccard系數(jaccard coefficient)

當資料對象的二進制屬性是非對稱的時,例如用1表示商品被購買,用0表示商品未被購買。由于未被購買的商品數遠遠大于被購買的商品數,是以,如果用smc計算資料對象的相似度,其結果必然是所有的資料對象都是相似的。

jaccard系數可以處理僅包含非對稱二進制屬性的對象,它是比對屬性的個數與不涉及0-0比對的屬性個數的比值,即j(a,b)=f11/(f01+f10+f11)。

15. 廣義jaccard系數(extended tanimoto coefficient)

廣義jaccard系數又稱為tanimoto系數,常常用于文檔資料,并在二進制屬性情況下規約為jaccard系數。

該系數用ej表示,定義如下:ej(a,b)=(a·b)/(|a|*|a|+|b|*|b|-

a·b)=(x11*x21+x12*x22+…+x1n*x2n)/[(x11^2+x12^+…x1n^2)+(x21^2+x22^2+…+x2n^2)-(x11*x21+x12*x22+…+x1n*x2n)]