1. 程式人生 > >使用Matlab計算各種距離Distance

使用Matlab計算各種距離Distance

計算距離的需求有兩種:   一種是給定一個特徵集合X,然後計算Pairwise距離矩陣,那麼可使用D=pdist(X,distance)的方式;   另一種是給定兩個對應的特徵集合X和Y,然後計算X與Y對應的距離資訊,使用D=pdist2(X,Y,distance)的方式; 需注意,2011版本以前的Matlab是沒有pdist2.m檔案的,而早期的pdist2.m檔案中的距離計算方式也比較少,所以建議使用最新的Matlab版本,很重要。

其中,distance的定義有如下幾種:歐幾里德距離Euclidean distance(‘euclidean’) 歐氏距離雖然很有用,但也有明顯的缺點。 一:它將樣品的不同屬性(即各指標或各變數)之間的差別等同看待,這一點有時不能滿足實際要求。 二:它沒有考慮各變數的數量級(量綱),容易犯大數吃小數的毛病。所以,可以先對原始資料進行規範化處理再進行距離計算。

標準歐幾里德距離Standardized Euclidean distance(‘seuclidean’) 相比單純的歐氏距離,標準歐氏距離能夠有效的解決上述缺點。注意,這裡的V在許多Matlab函式中是可以自己設定的,不一定非得取標準差,可以依據各變數的重要程度設定不同的值,如knnsearch函式中的Scale屬性。

馬哈拉諾比斯距離Mahalanobis distance(‘mahalanobis’) where C is the covariance matrix. 馬氏距離是由印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,表示資料的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法。與歐式距離不同的是它考慮到各種特性之間的聯絡(例如:一條關於身高的資訊會帶來一條關於體重的資訊,因為兩者是有關聯的)並且是尺度無關的(scale-invariant),即獨立於測量尺度。 如果協方差矩陣為單位矩陣,那麼馬氏距離就簡化為歐式距離,如果協方差矩陣為對角陣,則其也可稱為正規化的歐氏距離. 馬氏優缺點:   1)馬氏距離的計算是建立在總體樣本的基礎上的,因為C是由總樣本計算而來,所以馬氏距離的計算是不穩定的;   2)在計算馬氏距離過程中,要求總體樣本數大於樣本的維數。   3)協方差矩陣的逆矩陣可能不存在。

曼哈頓距離(城市區塊距離)City block metric(‘cityblock’) Notice that the city block distance is a special case of the Minkowski metric, where p=1.

閔可夫斯基距離Minkowski metric(‘minkowski’) Notice that for the special case of p = 1, the Minkowski metric gives the city block metric, for the special case of p = 2, the Minkowski metric gives the Euclidean distance, and for the special case of p = ∞, the Minkowski metric gives the Chebychev distance. 閔可夫斯基距離由於是歐氏距離的推廣,所以其缺點與歐氏距離大致相同。

切比雪夫距離Chebychev distance(‘chebychev’) Notice that the Chebychev distance is a special case of the Minkowski metric, where p = ∞.

夾角餘弦距離Cosine distance(‘cosine’) 與Jaccard距離相比,Cosine距離不僅忽略0-0匹配,而且能夠處理非二元向量,即考慮到變數值的大小。

相關距離Correlation distance(‘correlation’) Correlation距離主要用來度量兩個向量的線性相關程度。

漢明距離Hamming distance(‘hamming’) 兩個向量之間的漢明距離的定義為兩個向量不同的變數個數所佔變數總數的百分比。

傑卡德距離Jaccard distance(‘jaccard’) Jaccard距離常用來處理僅包含非對稱的二元(0-1)屬性的物件。很顯然,Jaccard距離不關心0-0匹配,而Hamming距離關心0-0匹配。

Spearman distance(‘spearman’)

【參考博文】 1. http://cn.mathworks.com/help/stats/pdist2.html 2.http://blog.sciencenet.cn/blog-531885-589056.html