余弦欧式距离matlab,余弦相似度和欧几里得距离
1.余弦相似度
同過兩個向量的夾角的余弦值來判斷兩個向量的相似度。
余弦值取值[-1,1],越接近1,兩向量夾角越小,越相似。
圖片.png
二維公式:
圖片.png
n維公式:
圖片.png
存在的問題[1]:
余弦相似度更多的是從方向上區分差異,而對絕對的數值不敏感。
比如用戶對內容評分,5分制。A和B兩個用戶對兩個商品的評分分別為A:(1,2)和B:(4,5)。我們分別用兩種方法計算相似度。使用余弦相似度得出的結果是0.98,看起來兩者極為相似,但從評分上看X似乎不喜歡這兩個東西,而Y比較喜歡。造成這個現象的原因就在于,余弦相似度沒法衡量每個維數值的差異,對數值的不敏感導致了結果的誤差。
需要修正這種不合理性,就出現了調整余弦相似度,即所有維度上的數值都減去一個均值。
比如A和B對兩部電影評分的均值分別是(1+4)/2=2.5,(2+5)/2=3.5。那么調整后為A和B的評分分別是:(-1.5,-1.5)和(1.5,2.5),再用余弦相似度計算,得到-0.98,相似度為負值,顯然更加符合現實。
修正的余弦相似度可以說就是對余弦相似度進行歸一化處理的算法,公式如下:
圖片.png
2.歐幾里得距離
通過兩個點(向量)的歐式空間距離來判斷相似度
圖片.png
標準化歐式距離公式:
圖片.png
python實現
余弦相似度使用scipy.spatial.distance.cosine(u,v)
需要注意的是這里公式有所變動:
圖片.png
這樣取值就在[0,2]。
歐式距離scipy.spatial.distance.euclidean(u,v)
總結
以上是生活随笔為你收集整理的余弦欧式距离matlab,余弦相似度和欧几里得距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php session缓存,扫盲:php
- 下一篇: php支持cs吗,关于composer、