距離是數學中的基礎概念之一,也是多元數據分析、機器學習方法(如聚類分析、判別分析等)中的重要概念之一。距離的定義很多,在數學上只需滿足三個基本條件即可以稱為距離,即非負性、對稱性和三角不等式性質。
我們最熟悉的莫過於歐幾裡得(Euclid)距離(簡稱歐氏距離),但距離還有很多其他定義方式,在不同情形下有不同的應用。本文介紹一下另外兩種常用的距離定義:閔可夫斯基(Minkowski)[1]距離(簡稱閔氏距離)和馬哈拉諾比斯[2](Mahalanobis)距離(簡稱馬氏距離),它們都可以看作是歐氏距離的推廣。
注意上式的兩種不同表達方式,第一種是用各分量顯式表達出計算公式來,第二種是利用向量點乘運算表達,正是從這兩種不同表達形式分別推廣出了閔氏距離和馬氏距離。
一. 閔氏距離
定義名稱來源於紐約曼哈頓區整齊規範的街區。
切比雪夫距離來源於西洋棋,國王可以直行、橫行、斜行,所以國王走一步可以移動到相鄰8個方格中的任意一個。國王從一個格子走到另一個格子最少需要多少步?這個距離就叫切比雪夫距離。
二. 馬氏距離
最後一行表達式恰好為馬氏距離的定義,即馬氏距離實質上就是標準化向量的歐氏距離。標準化過程消除了原始變量之間的相關性。
馬氏距離不受量綱的影響,兩點之間的馬氏距離與原始數據的測量單位無關,同時還可以排除變量之間的相關性的幹擾。所以在多元統計分析中一般採用馬氏距離。但是,另一方面,馬氏距離誇大了微小變量的作用。同時由於馬氏距離與協方差矩陣求逆有關,因此協方差矩陣的不確定性往往容易導致無法準確計算出馬氏距離。
注意到AO和BO的歐氏距離相同,這符合我們的直觀。然而AO和BO的馬氏距離卻差異如此之大,還是有點出乎意料的,怎麼理解呢?前面我們看到過,馬氏距離考慮了變量之間的相關性,這裡二維總體的兩個分量具有強的負相關性,即在BO方向上強相關。可以理解為是B(包含B的小鄰域,下同)和O同時出現的概率要遠遠大於A和O同時出現的概率,既然A和O很難同時出現,所以它們的距離相應的就比能經常相見的B和O的距離遠一些,是不是很合理?借用蘇東坡寫給其弟的一句詩——「咫尺不相見,實與千裡同」,用在這裡也是很貼切的了。
三. 在軟體中計算距離的函數
在Matlab和R中都有方便的計算距離的函數。
1. Matlab中計算距離的函數為:pdist()
D = pdist(X)D = pdist(X,distance)Description
D= pdist(X) 計算 X 中各對行向量的相互距離(X是一個m-by-n的矩陣). 這裡 D 要特別注意,D 是一個長為m(m–1)/2的行向量。可以這樣理解 D 的生成:首先生成一個 X 的距離方陣,由於該方陣是對稱的,令對角線上的元素為0,所以取此方陣的下三角元素,按照Matlab中矩陣的按列存儲原則,此下三角各元素的索引排列即為(2,1), (3,1), ..., (m,1), (3,2),..., (m,2), ..., (m,m–1)。可以用命令 squareform(D) 將此行向量轉換為原距離方陣。
D= pdist(X,distance)使用指定的距離distance可以取下述值:
(1)'euclidean':歐氏距離 Euclidean distance
(2)'seuclidean':標準化歐氏距離 Standardized Euclidean distance
(3)'mahalanobis':馬哈拉諾比斯距離 Mahalanobis distance
(4)'cityblock':曼哈頓距離(城市街區距離) City block metric
(5)'minkowski':閔可夫斯基距離 Minkowski metric
(6)'chebychev':切比雪夫距離 Chebychev distance
另外可選的還有夾角餘弦距離 Cosine distance ('cosine'),相關距離 Correlation distance ('correlation'),漢明距離 Hamming distance ('hamming'), Spearman distance ('spearman')等等。
2. R中計算距離的函數為:dist( )
dist(x, method ="euclidean", diag = FALSE, upper = FALSE, p = 2)其中x是數值矩陣,數據框(data frame)或"dist"對象,method用來設置距離名稱,可選項包含"euclidean","maximum","manhattan", "canberra", "binary"以及"minkowski"等。
[1] 閔可夫斯基(Hermann Minkowski,1864 - 1909)出生於俄國。父親是一個成功的猶太商人,但是當時的俄國政府迫害猶太人,所以當閔可夫斯基八歲時,父親就帶全家搬到普魯士的 Konigsberg (哥尼斯堡)定居,和另一位數學家希爾伯特(Hilbert)的家僅一河之隔。曾為愛因斯坦的老師,閔可夫斯基時空為廣義相對論的建立提供了框架。為紀念閔可夫斯基,第12493號小行星以他的名字「閔可夫斯基」命名。
閔可夫斯基趣事一則
在希爾伯特傳記《希爾伯特---數學世界的亞歷山大》中記錄了閔可夫斯基的一則趣事。
閔可夫斯基曾在哥廷根大學講授拓撲學(1902年前後),有一次在課上,閔可夫斯基提到了這個領域裡一個尚未解決的著名問題——四色定理。他說:「這個定理還沒有得到證明,但這是因為到現在為止,只有一些第三流的數學家對它進行過專門研究。」閔可夫斯基以一種少有的自負向全班學生宣稱:「我相信我能夠證明它。」
他當場開始證明這條定理這堂課結束時,他沒有證出來。到下一次課時,他又繼續證明。就這樣,一連幾個星期過去了。最後在一個陰雨的早晨,閔可夫斯基走進教室,這時恰有一道閃電,空中雷聲大作。他站在講臺上,面朝著大家,溫和的圓臉顯出一副深沉、嚴肅的表情。
「老天也被我的驕傲激怒啦,」他說,「我對四色定理的證明也是不完全的。」接著他就從數周前中斷的地方開始繼續講拓撲學。
[2] 馬哈拉諾比斯(Mahalanobis, P. C.,1893 - 1972),印度數理統計學家。馬哈拉諾比斯在加爾各答獲物理學士學位以後,赴英國劍橋大學學習。1914年通過數學榮譽學位I考試,1915年通過自然科學榮譽學位B考試,並被選為高級研究人員。馬哈拉諾比斯曾是英國皇家學會會員。1931年,他創立了印度統計學會,並任主席。
馬哈拉諾比斯主要研究數理統計學和經濟規劃。1930年引人了Dz統計量,後來稱為馬哈拉諾比斯距離,在分類問題中有廣泛應用。他在20世紀 30年代和40年代,主要從事氣象統計、與後來發展起來的運籌學有關的問題、場試驗誤差及大樣本調查等課題的研究。他1944年引入的試驗調查概念是序貫分析的先驅,並給出了估計方法。