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

距离度量 —— 余弦距离(Cosine Distance)

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

距离度量 —— 余弦距离(Cosine Distance)

Python学习系列文章: 目录 

文章目录
    • 一、概述
    • 二、计算公式
      • ① 二维平面上的余弦距离
      • ② n维空间上的余弦距离
      • ③ 注意

一、概述

三角函数,相信大家在初高中都已经学过,而这里所说的余弦距离(Cosine Distance)的计算公式和高中学到过的公式差不多。

在几何中,夹角的余弦值可以用来衡量两个方向(向量)的差异;因此可以推广到机器学习中,来衡量样本向量之间的差异。

因此,我们的公式也要稍加变换,使其能够用向量来表示。

二、计算公式 ① 二维平面上的余弦距离

假设 二维平面 内有两向量: A ( x 1 , y 1 ) A(x_{1},y_{1}) A(x1​,y1​) 与 B ( x 2 , y 2 ) B(x_{2},y_{2}) B(x2​,y2​)

则二维平面的 A A A、 B B B 两向量的余弦距离公式为:

c o s ( θ ) = a ⋅ b ∣ a ∣ ∣ b ∣ cos(theta)=frac{acdot b}{|a| |b|} cos(θ)=∣a∣∣b∣a⋅b​

c o s ( θ ) = a ⋅ b ∣ a ∣ ∣ b ∣ = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 x 2 2 + y 2 2 begin{aligned} cos(theta)&=frac{acdot b}{|a| |b|}\ &=frac{x_{1}x_{2}+y_{1}y_{2}}{sqrt{x_{1}^2+y_{1}^2}sqrt{x_{2}^2+y_{2}^2}} end{aligned} cos(θ)​=∣a∣∣b∣a⋅b​=x12​+y12​ ​x22​+y22​ ​x1​x2​+y1​y2​​​

② n维空间上的余弦距离

推广到 n 维空间的两个向量 A ( x 11 , x 12 , . . . , x 1 n ) A(x_{11},x_{12},...,x_{1n}) A(x11​,x12​,...,x1n​) 与 B ( x 21 , x 22 , . . . , x 2 n ) B(x_{21},x_{22},...,x_{2n}) B(x21​,x22​,...,x2n​),则有余弦距离为:

c o s ( θ ) = a ⋅ b ∣ a ∣ ∣ b ∣ = ∑ k = 1 n x 1 k x 2 k ∑ k = 1 n x 1 k 2 ∑ k = 1 n x 2 k 2 begin{aligned} cos(theta)&=frac{acdot b}{|a| |b|}\ &=frac{sum_{k=1}^n x_{1k} x_{2k}}{sqrt{sum_{k=1}^nx_{1k}^2}sqrt{sum_{k=1}^nx_{2k}^2}} end{aligned} cos(θ)​=∣a∣∣b∣a⋅b​=∑k=1n​x1k2​ ​∑k=1n​x2k2​ ​∑k=1n​x1k​x2k​​​

③ 注意
  • 余弦距离的取值范围为 [ − 1 , 1 ] [-1,1] [−1,1]。
  • 余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。
  • 当两个向量的方向重合时余弦取最大值 1 1 1,当两个向量的方向完全相反余弦取最小值 − 1 -1 −1。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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