歐氏距離與餘弦相似度的比較

兩種相似性度量的比較

--

在數據挖掘中,相似性度量是個基礎且重要的問題,我們經常想得知兩個個體之間存在的差異大小,藉由一個合適的度量方式,幫助我們執行分群、分類等任務。在眾多度量方式,最耳熟能詳的莫過於歐式距離餘弦相似度,這篇文章將帶領讀者初探兩者的原理及應用場景。

歐式距離

歐式距離或稱歐幾里得距離,一種簡單直觀且有效的距離度量方式。回想初中計算座標(x1,y1)、(x2,y2)兩點之間的距離,便是 (x1-x2)²+(y1-y2)²再將其開根號即得出結果。以數學表示,假設歐式空間中,存在點x =(x1,…,xn)和 點y =(y1,…,yn),以下的公式用以求出兩者之間的歐式距離。

不難發現,歐式距離就是畢氏定理的一個推廣。

用python代碼實現歐式距離度量只消一行程式碼。假設vec1、vec2表示等長向量,則兩者之間的歐式距離如下 。

np.sqrt(sum(pow(vec1-vec2,2)))

餘弦相似度

--

--

邱秉誠
Carrot Cheng的數據分析

畢業於台大工業工程所,目前任職於台積電。