機器學習之余弦距離(Cosine Dsitance)


  相關文章鏈接:算法文章匯總


        余弦距離(也稱為余弦相似度): 用向量空間中兩個向量夾角的余弦值 作為衡量兩個個體
間差異的大小的度量。向量:多維空間中有方向的線段,如果兩個向量的 方向一致,即夾角接
近零,那么這兩個向量就相近 。而要確定兩個向量方向是否一致,這就要用到余弦定理計算向
量的夾角。

        余弦定理描述了 三角形中任何一個夾角和三個邊的關系 。給定三角形的三條邊,可以使用余弦定理求出三角形各個角的角度。

假定三角形的三條邊為a,b和c,對應的三個角為A,B和C,如下如所示:

 那么角A的余弦為:

 如果將三角形的 兩邊b和c看成是兩個向量 ,則上述公式等價於:

 其中 分母表示兩個向量b和c的長度,分子表示兩個向量的內積 。

舉一個具體的例子,假如新聞X和新聞Y對應向量分別是:
    x1, x2, ..., x6400
    和
    y1, y2, ..., y6400
則,它們之間的余弦距離可以用它們之間夾角的余弦值來表示:

        當兩條新聞向量夾角余弦等於1時,這兩條新聞完全重復(用這個辦法可以刪除爬蟲所收集網頁中的重復網頁);當夾角的余弦值接近於1時,兩條新聞相似(可以用作文本分類);夾角的余弦越小,兩條新聞越不相關。

        余弦距離使用兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。 相比歐氏距離,余弦距離更加注重兩個向量在方向上的差異。借助三維坐標系來看下歐氏距離和余弦距離的區別:

         從上圖可以看出,歐氏距離衡量的是空間各點的絕對距離,跟各個點所在的位置坐標直接相關;而余弦距離衡量的是空間向量的夾角,更加體現在方向上的差異,而不是位置。

總體來說,歐氏距離體現數值上的絕對差異,而余弦距離體現方向上的相對差異。


1)例如,統計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);
    此時二者的余弦距很大,而歐氏距離很小;
    我們分析兩個用戶對於不同視頻的偏好,更關注相對差異,顯然應當使用余弦距離。
    
2)而當我們分析用戶活躍度,以登陸次數(單位:次)和平均觀看時長(單:分鍾)作為特征時
    余弦距離會認為(1,10)、(10,100)兩個用戶距離很近;
    但顯然這兩個用戶活躍度是有着極大差異的,此時我們更關注數值絕對差異,應當使用歐氏距離。

        總結:在日常使用中需要注意區分,余弦距離雖然不是一個嚴格意義上的距離度量公式,但是形容兩個特征向量之間的關系還是有很大用處的。比如人臉識別,推薦系統等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM