一、概念
余弦相似度:
余弦距離:1-cos(A,B)
歐式距離:
二、兩者之間的關系
當向量的模長是經過歸一化的,此時歐氏距離與余弦距離有着單調的關系:
在此場景下,如果選擇距離最小(相似度最大)的近鄰,那么使用余弦相似度和歐氏距離的結果是相同的。
推導如下,這里面前提就是X和Y是歸一化后的,也就是自己的模都為1,才會存在這種關系:
三、什么時候用余弦距離什么時候用歐式距離呢?
總體來說,歐氏距離體現數值上的絕對差異,而余弦距離體現方向上的相對差異。
1)例如,統計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);此時二者的余弦距很大,而歐氏距離很小;我們分析兩個用戶對於不同視頻的偏好,更關注相對差異,顯然應當使用余弦距離。
2)而當我們分析用戶活躍度,以登陸次數(單位:次)和平均觀看時長(單:分鍾)作為特征時,余弦距離會認為(1,10)、(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有着極大差異的,此時我們更關注數值絕對差異,應當使用歐氏距離。