歐氏距離、閔氏距離和馬氏距離(閔可夫斯基軼事外一則)

2021-03-02 機會的數學

    距離是數學中的基礎概念之一,也是多元數據分析、機器學習方法(如聚類分析、判別分析等)中的重要概念之一。距離的定義很多,在數學上只需滿足三個基本條件即可以稱為距離,即非負性、對稱性和三角不等式性質。

 

    我們最熟悉的莫過於歐幾裡得(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年引入的試驗調查概念是序貫分析的先驅,並給出了估計方法。

相關焦點

  • 閔式距離詳解及其SPSS實現
    多元統計分析中,距離是衡量樣品和變量間相似性和差異性的常用測度。許多多元方法都是以距離為基礎建立起來的。Minkowski距離是多元統計中最常見的一種距離形式,不同參考資料的翻譯名稱不同,有些叫閔可夫斯基距離,也有資料稱作明考斯基距離,建議記憶其英文名稱。本文主要包括三部分:①閔可夫斯基距離及其分類。②曼哈頓距離和切比雪夫距離的相互轉化。
  • CICC科普欄目|距離,原來還有這麼多類
    採用什麼樣的方法計算距離是很講究,甚至關係到分類的正確與否。1. 歐氏距離(EuclideanDistance)       歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的切比雪夫距離4. 閔可夫斯基距離(MinkowskiDistance)       兩個n維變量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的閔可夫斯基距離定義為:  閔氏距離,包括曼哈頓距離、歐氏距離和切比雪夫距離都存在明顯的缺點。
  • 馬氏距離及其幾何解釋
    Mahalanobis)提出的,是歐氏距離的一種推廣。它通過協方差來計算兩點之間距離,是一種有效的計算兩個未知樣本集的相似度的方法。與歐氏距離不同的是它考慮到各種特性之間的相關性。先上兩個圖看下馬氏距離與歐氏距離的區別。
  • 機器學習中的分類距離
    針對性格活潑、愛好打球的兩項特徵,假設A、B、C三人的取值分別如下:我們現以上述A、B、C三個樣本A(4,4)、B(9,5)、C(6,1)投影到二維坐標上,分別計算A、B樣本之間和A、C樣本之間各自的歐氏距離、曼哈頓距離和切比雪夫距離,參照二維坐標投影圖,計算結果如下:從上表結果可知,A、C兩個樣本的歐氏距離、曼哈頓距離和切比雪夫距離均小於A、B兩個樣本,因此
  • 詳解數學中的「距離」
    ,xn) 和 y = (y1,...,yn) 之間的距離為:閔可夫斯基距離(Minkowski distance)是衡量數值點之間距離的一種非常常見的方法。當 p 趨近於無窮大時,閔可夫斯基距離轉化成切比雪夫距離(Chebyshev distance):
  • NN中常用的距離計算公式:歐式距離、曼哈頓距離、馬氏距離、餘弦、漢明距離
    3 Mahalanobis馬氏距離馬氏距離的淺顯解釋,見我的博文:https://blog.csdn.net/weixin_41770169/article/details/80759195馬氏距離和歐式距離的對比,見我的博文:https://blog.csdn.net/weixin_41770169/article/details/80759236
  • 用Numpy手寫各種距離度量
    import numpy as np1.歐氏距離(Euclidean distance) 歐幾裡得度量(euclidean metric)(也稱歐氏距離)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。
  • 多元統計分析——歐式距離和馬氏距離
    今天介紹一下歐式距離和馬氏距離。歐式距離大家都比較熟悉,但是歐式距離在某些情境下不太適用,於是印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出了馬氏距離,來解決不能直接使用歐式距離的問題。文章分為四個部分,第一部分簡單介紹歐式距離,第二部分給出不能直接使用歐式距離的例子,第三部分介紹馬氏距離,第四部分將歐式距離和馬氏距離的優缺點作比較。
  • 機器學習裡的歐氏距離
    在詩句裡,距離可以很浪漫,「世界上最遙遠的距離,不是生與死的距離,不是天各一方,而是,我就站在你的面前,你卻不知道我愛你」。在機器學習裡,距離是嚴謹的,需要一個精確的公式來計算。許多機器學習的常見算法都需要用到距離函數,即用於計算兩個不同觀測(obs)之間的距離。
  • 【機器學習基礎】常見二分類損失函數、距離度量的 Python 實現
    import numpy as np1.歐氏距離(Euclidean distance) 歐幾裡得度量(euclidean metric)(也稱歐氏距離)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。
  • 【機器學習基礎】常見二分類損失函數、距離度量的Python實現
    import numpy as np1.歐氏距離(Euclidean distance) 歐幾裡得度量(euclidean metric)(也稱歐氏距離)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。
  • 機器學習中距離和相似性度量方法
    閔可夫斯基距離閔可夫斯基距離(Minkowski distance)是衡量數值點之間距離的一種非常常見的方法,假設數值點 P 和 Q 坐標如下:該距離最常用的 p 是 2 和 1, 前者是歐幾裡得距離(Euclidean distance),後者是曼哈頓距離(Manhattan distance)。
  • 常用的相似度和距離計算方法
    例如:分析兩個用戶對於不同視頻的偏好,更關注相對差異,顯然應當使用餘弦距離;而當我們分析用戶活躍程度,以登錄次數和平均觀看時長作為特徵時,餘弦會人為(1,10)和(10,100)兩個用戶關係很近,但顯然兩個用戶的活躍程度有著極大差異,因此我們更關注數值絕對差異,應當使用歐式距離。
  • 常見的距離算法和相似度計算方法
    關注 極市平臺 公眾號 ,回復 加群,立刻申請入群~來源|https://zhuanlan.zhihu.com/p/138107999本文整理了常見的距離算法和相似度(係數)算法,並比較了歐氏距離和餘弦距離間的不同之處。
  • 相似度距離度量公式
    常用的相似度度量距離有:歐幾裡得距離、餘弦相似度距離、曼哈頓距離、閔可夫斯基距離、切比雪夫距離、Jaccard相似係數、皮爾森相關係數。
  • 數據科學家絕對不能錯過的3個距離
    歐式距離(Euclidean Distance)(或直線距離)歐氏距離算法最直觀:這是有人讓我們測量距離時最直觀的一種距離計算方法。歐氏距離就是橫縱坐標軸(x,y)內兩點間的直線距離:比如在世界地圖上,可以通過坐標(緯度,經度)鎖定一個城市。
  • 什麼是「歐幾裡得距離」(ED)?| 群體遺傳專題
    要理解歐幾裡得距離,我們先要了解歐幾裡得空間。我們通常所在的空間是三維空間,三維空間任意的點可以被一個三維的坐標定義。而將三維拓展為更高的n維,即得到了n維歐幾裡得空間。而在n維空間中兩個點之間的距離,我們就稱之為歐幾裡得距離。在具體的應用中,如果一組數據擁有n個相互獨立的變量,我們就可以將其置於n維的歐幾裡得空間中,並應用歐幾裡得距離來量化兩組數據之間的差異。
  • 愛犯錯的智能體:談談黎曼流形與視覺距離錯覺問題
    在黎曼用了七周時間準備的報告中,他希望在能用直線測距離的歐氏空間和非歐空間之間找到合理的銜接。於是,他假定非歐空間可以由好幾個局部歐氏空間拼接而成的,提出了多個(英文的前綴是mani) 折或層(英文的詞根是fold)的概念,即流形(manifold,對應的德語是mannigfaltigkeit)。
  • 再論「為什麼不存在比普朗克長度更短的距離?」
    昨天發的文章《為什麼不存在比普朗克長度更短的距離?》評論區中,看到了很多網友的留言,其中一部分表示,普朗克距離之所以被現代物理學宣稱為最短的距離,是因為我們的科學技術手段不足以去測量比它更短的距離(10^-35米以下),還有一部分網友表示,如果普朗克長度真是距離的下限,那就意味著比普朗克長度更小的實數將會失去意義。在這篇文章中,主要針對這兩個觀點進行討論。