栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习中的数学——距离定义(八):余弦距离(Cosine Distance)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习中的数学——距离定义(八):余弦距离(Cosine Distance)

余弦距离(Cosine Distance)也可以叫余弦相似度。 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。 n n n维空间中的余弦距离为:
cos ⁡ ( x , y ) = x ⋅ y ∣ x ∣ ⋅ ∣ y ∣ = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 cos(x, y)=frac{xcdot y}{|x|cdot|y|}=frac{sum_{i=1}^nx_iy_i}{sqrt{sum_{i=1}^nx_i^2}sqrt{sum_{i=1}^ny_i^2}} cos(x,y)=∣x∣⋅∣y∣x⋅y​=∑i=1n​xi2​ ​∑i=1n​yi2​ ​∑i=1n​xi​yi​​

余弦取值范围为 [ − 1 , 1 ] [-1,1] [−1,1],求得两个向量的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表示这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向更加吻合,则越相似;当两个向量的方向完全相反夹角余弦取最小值-1;当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度与向量的幅值无关,只与向量的方向相关。

下面我们来看一下余弦距离的Python实现:

def CosineDistance(x, y):
    import numpy as np
    x = np.array(x)
    y = np.array(y)
    return np.dot(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689227.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号