全文共1617字,預計學習時長5分鐘
世界上最遙遠的距離
不是生與死的距離
而是我站在你面前
你卻不知道我愛你
「尷尬開場」到此結束。
今天,小芯給大家帶來的是數據科學家絕對不能錯過的3個距離知識!
無論你是剛開始接觸數據科學還是有一定的經驗,下面這三個距離都是必不可少的知識:
1. 歐式距離(Euclidean Distance)(或直線距離)
歐氏距離算法最直觀:這是有人讓我們測量距離時最直觀的一種距離計算方法。
歐氏距離就是橫縱坐標軸(x,y)內兩點間的直線距離:比如在世界地圖上,可以通過坐標(緯度,經度)鎖定一個城市。
歐氏距離算法測量直線距離
想像一下在下圖城市中心地圖上測量A、B兩點間的直線距離。
A到B之間的歐氏距離就是直線距離,採用畢達哥拉斯算法
既然是歐氏距離,那麼只需要兩點的橫縱坐標,再運用畢達哥拉斯算法即可。
畢達哥拉斯定理是指在已知直角的水平線和垂直線長度時,通過公式a + b=c計算得出直角的「對角線」長度(或弦長)。
2. 切比雪夫距離(Chebyshev Distance)(也稱棋盤距離)
切比雪夫距離也叫棋盤距離(ChessboardDistance)或L-Infinity距離。對該距離最簡單的解釋就是「王」在棋盤上移動的距離:可以朝任意方向走(上、下、左、右)。
切比雪夫距離中,走斜線跟走直角是一樣的
與L1距離的不同之處在於,這裡我們將走直角的路線當作一步,而在城市街區距離中走直角是當作兩步的(一步向左一步向右)。
該距離跟歐式距離也不一樣,因為在歐氏距離中,正如上文所述,直角的路徑是(x+y)開根的值。
歐氏距離、L1距離和切比雪夫距離的對比
切比雪夫距離就是棋盤距離。
舉一個簡單的例子就是有兩個獨立發動機的無人機:一個發動機是提供向前的動力,另一個是提供向側面移動的動力。二者可以同時運轉,而且可以在同一時間達到各自的最大動力。
效果就是無人機可以沿斜線飛速移動,跟水平移動的速度一樣快:兩個發動機都運轉到極限就行。
再看上方的切比雪夫距離城市地圖,步子1時,兩個發動機同時運轉,在步子2中二者也保持同時運轉,但到步子3時就不用向前移動了,只需給側面提供動力的發動機運轉即可。
切比雪夫距離也因此得名「軸上最長的距離」
3. L1距離(或城市街區距離)
L1距離,也稱城市街區距離、曼哈頓距離(ManhattanDistance)、計程車距離(TaxicabDistance)、直線式距離(RectilinearDistance)或蛇形距離(SnakeDistance),並非指直線而是按街區算。
L1距離測量街區距離:只算直線部分
看下面這幅圖便一目了然:L1距離只允許直線式移動!
點A到B之間的L1距離就是城市街區距離,也稱為曼哈頓距離。
圖中由A到B距離最短有多種選擇:可以先朝上走過兩個街區,然後右轉再走過三個街區;或者先朝右走過三個街區,然後轉而朝上走,等等。
L1距離就是段距離,所以跟實際路線無關。只需要知道最終要向東移動一定的x軸距離,向北移動一定的y軸距離。兩個距離相加就是AB間的L1距離。
希望這篇文章對大家以後理解距離有幫助,小芯在這裡也非常感謝大家的閱讀。
武運昌隆!
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範