1. 歐氏距離(Euclidean Distance)
歐氏距離是最容易直觀理解的距離度量方法,我們小學、初中和高中接觸到的兩個點在空間中的距離一般都是指歐氏距離。
- 二維平面上點a(x1,y1)與b(x2,y2)間的歐氏距離:
- 三維空間點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:
- n維空間點a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的歐氏距離(兩個n維向量):
2. 曼哈頓距離(Manhattan Distance)
顧名思義,在曼哈頓街區要從一個十字路口開車到另一個十字路口,駕駛距離顯然不是兩點間的直線距離。這個實際駕駛距離就是“曼哈頓距離”。曼哈頓距離也稱為“城市街區距離”(City Block distance)。
- 二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離:
- n維空間點a(x11,x12,…,x1n)與b(x21,x22,…,x2n)的曼哈頓距離:
3. 切比雪夫距離 (Chebyshev Distance)
國際象棋中,國王可以直行、橫行、斜行,所以國王走一步可以移動到相鄰8個方格中的任意一個。國王從格子(x1,y1)走到格子(x2,y2)最少需要多少步?這個距離就叫切比雪夫距離。
- 二維平面兩點a(x1,y1)與b(x2,y2)間的切比雪夫距離:
- n維空間點a(x11,x12,…,x1n)與b(x21,x22,…,x2n)的切比雪夫距離:
為什么一些場景中使用余弦相似度而不是歐式距離
## 那么歐式距離和余弦相似度的應用場景是什么呢
以下場景案例是從網上摘抄的。
如某T恤從100塊降到了50塊(A(100,50)),某西裝從1000塊降到了500塊(B(1000,500)),那么T恤和西裝都是降價了50%,兩者的價格變動趨勢一致,可以用余弦相似度衡量,即兩者有很高的變化趨勢相似度,但是從商品價格本身的角度來說,兩者相差了好幾百塊的差距,歐氏距離較大,即兩者有較低的價格相似度。
如果要對電子商務用戶做聚類,區分高價值用戶和低價值用戶,用消費次數和平均消費額,這個時候用余弦夾角是不恰當的,因為它會將(2,10)和(10,50)的用戶算成相似用戶,但顯然后者的價值高得多,因為這個時候需要注重數值上的差異,而不是維度之間的差異。
兩用戶只對兩件商品評分,向量分別為(3,3)和(5,5),顯然這兩個用戶對兩件商品的偏好是一樣的,但是歐式距離給出的相似度顯然沒有余弦值合理。