余弦相似度总结
余弦相似度衡量的是空間向量的夾角,體現在方向上的差異。
余弦值越接近1,夾角越接近0度,兩個向量越相似,叫"余弦相似性"。
歐氏距離能夠體現個體數值特征的絕對差異;
余弦相似度是從方向上區分差異,對數值不敏感,余弦相似度對絕對數值不敏感,沒法衡量每個維數值的差異。
調整余弦相似度:兩個評分(1, 2)和(4, 5),可用(1 + 2 + 4 + 5)/ 4 = 3獲取平均值
在所有維度上減去一個均值,調整后為(-2,-1)和(1,2),再用余弦相似度計算,得到-0.799,相似度為負值,兩個方向不同。
from sklearn.metrics.pairwise import cosine_similarity
a=[[1,3,2],[2,2,1]]
使用cosine_similarity,傳入一個變量a時,返回數組的第i行第j列表示a[i]與a[j]的余弦相似度
cosine_similarity(a)
array([[1. , 0.89087081],
??? [0.89087081, 1. ]])
使用pairwise_distances,注意該方法返回的是余弦距離,余弦距離= 1 - 余弦相似度,
同樣傳入一個變量a時,返回數組的第i行第j列表示a[i]與a[j]的余弦距離
from sklearn.metrics.pairwise import pairwise_distancespairwise_distances(a,metric="cosine")array([[0. , 0.10912919], [0.10912919, 0. ]])余弦距離:一減去余弦相似度;
?余弦相似度取值范圍是[-1,1];方向相同的向量間的相似度是1;余弦距離的取值范圍是[0,2]。
余弦距離不是嚴格意義上的距離,根據數學定義,在一個集合中,如果一對元素可確定一個實數,使得非負性,對稱性和三角不等式成立,則該實數可稱為這對元素之間的距離
1 非負性:余弦距離的取值范圍為[0,2],滿足非負性的性質
2 對稱性:dist(A,B)=1?cosθ=dist(B,A),滿足對稱性
3.?余弦距離不滿足三角不等式的性質
?
參考:
余弦相似度和余弦距離的推導與理解 - 努力奮斗的阿貝拉 - 博客園
總結
- 上一篇: 模拟美式橄榄球比赛数据(R)
- 下一篇: 爬虫笔记嘛