余弦距离和欧氏距离,知道原理和公式后真的很简单

简介: 余弦距离和欧氏距离,知道原理和公式后真的很简单

余弦距离

我们来看下公式,其实就是余弦计算公式:A和B是两个任意向量,除以它们模的乘积,就得到它们夹角的余弦值,其中向量Ai和Bi是向量A和B的每一个分量。

image.png


简单来说,余弦相似度,就是计算两个向量间的夹角的余弦值。


余弦距离就是用1减去这个获得的余弦相似度。


余弦值取值范围为[-1,1],余弦距离取值范围为[0,2],这样就满足了非负性的性质。


是不是很简单~


欧式距离

欧式距离我们从初中或者说小学就开始使用了,就是计算距离空间中的两点的实际距离。

image.png

这里的p为点(x1,y1)与点(x2,y2)之间的欧氏距离,当然扩展到多维空间中,公式就拓展到:

image.png

是不是更简单~


选择依据

总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。


统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距很大,而欧氏距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。


而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

目录
相关文章
|
7月前
|
机器学习/深度学习 算法
简单遗传算法 + 最低水平线算法求解二维排样问题
简单遗传算法 + 最低水平线算法求解二维排样问题
122 0
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
|
8月前
|
算法 前端开发
前端算法-最大三角形面积-鞋带公式&-海伦公式
前端算法-最大三角形面积-鞋带公式&-海伦公式
94 0
|
8月前
|
存储 Serverless 定位技术
基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析
基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析
|
8月前
油管公式(全)
油管公式(全)
3471 0
|
算法 图形学
计算机图形学 之 DDA直线算法(数值微分法)
计算机图形学 之 DDA直线算法(数值微分法)
477 0
|
机器学习/深度学习 传感器 算法
基于matlab计算不等间距样本的一阶和二阶导数
基于matlab计算不等间距样本的一阶和二阶导数
频域滤波—离散余弦变换
频域滤波—离散余弦变换
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
702 0
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式