本文用Numpy實(shí)現(xiàn)了常見(jiàn)的幾種距離度量。
設(shè)和為兩個(gè)向量,求它們之間的距離。
這里用Numpy實(shí)現(xiàn),設(shè)和為ndarray <numpy.ndarray>,它們的shape都是(N,)
為所求的距離,是個(gè)浮點(diǎn)數(shù)(float)。
1.歐氏距離(Euclidean distance)
歐幾里得度量(euclidean metric)(也稱(chēng)歐氏距離)是一個(gè)通常采用的距離定義,指在m維空間中兩個(gè)點(diǎn)之間的真實(shí)距離,或者向量的自然長(zhǎng)度(即該點(diǎn)到原點(diǎn)的距離)。在二維和三維空間中的歐氏距離就是兩點(diǎn)之間的實(shí)際距離。
2.曼哈頓距離(Manhattan distance)
想象你在曼哈頓要從一個(gè)十字路口開(kāi)車(chē)到另外一個(gè)十字路口,駕駛距離是兩點(diǎn)間的直線距離嗎?顯然不是,除非你能穿越大樓。實(shí)際駕駛距離就是這個(gè)“曼哈頓距離”。而這也是曼哈頓距離名稱(chēng)的來(lái)源, 曼哈頓距離也稱(chēng)為城市街區(qū)距離(City Block distance)。
3.切比雪夫距離(Chebyshev distance)
在數(shù)學(xué)中,切比雪夫距離(Chebyshev distance)或是L∞度量,是向量空間中的一種度量,二個(gè)點(diǎn)之間的距離定義是其各坐標(biāo)數(shù)值差絕對(duì)值的最大值。以數(shù)學(xué)的觀點(diǎn)來(lái)看,切比雪夫距離是由一致范數(shù)(uniform norm)(或稱(chēng)為上確界范數(shù))所衍生的度量,也是超凸度量(injective metric space)的一種。
4.閔可夫斯基距離(Minkowski distance)
閔氏空間指狹義相對(duì)論中由一個(gè)時(shí)間維和三個(gè)空間維組成的時(shí)空,為俄裔德國(guó)數(shù)學(xué)家閔可夫斯基(H.Minkowski,1864-1909)最先表述。他的平坦空間(即假設(shè)沒(méi)有重力,曲率為零的空間)的概念以及表示為特殊距離量的幾何學(xué)是與狹義相對(duì)論的要求相一致的。閔可夫斯基空間不同于牛頓力學(xué)的平坦空間。
5.漢明距離(Hamming distance)
漢明距離是使用在數(shù)據(jù)傳輸差錯(cuò)控制編碼里面的,漢明距離是一個(gè)概念,它表示兩個(gè)(相同長(zhǎng)度)字對(duì)應(yīng)位不同的數(shù)量,我們以表示兩個(gè)字,之間的漢明距離。對(duì)兩個(gè)字符串進(jìn)行異或運(yùn)算,并統(tǒng)計(jì)結(jié)果為1的個(gè)數(shù),那么這個(gè)數(shù)就是漢明距離。
總結(jié)
本文用Numpy實(shí)現(xiàn)了常見(jiàn)的幾種距離度量。