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

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

余弦距离

我们来看下公式,其实就是余弦计算公式: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)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

目录
相关文章
|
3月前
油管公式(全)
油管公式(全)
52 0
|
8月前
|
算法 图形学
计算机图形学 之 DDA直线算法(数值微分法)
计算机图形学 之 DDA直线算法(数值微分法)
207 0
|
8月前
|
机器学习/深度学习 传感器 算法
基于matlab计算不等间距样本的一阶和二阶导数
基于matlab计算不等间距样本的一阶和二阶导数
|
11月前
|
算法
频域滤波—离散余弦变换
频域滤波—离散余弦变换
|
数据可视化 JavaScript 前端开发
【数学篇】07 # 如何用向量和参数方程描述曲线?
【数学篇】07 # 如何用向量和参数方程描述曲线?
81 0
【数学篇】07 # 如何用向量和参数方程描述曲线?
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
202 0
三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式
|
机器学习/深度学习 Python 算法框架/工具
常见距离公式 numpy 实现
在使用 keras 或者使用 tf 做深度学习时,通常有些内容需要计算距离来作为判定相似程度的依据,如下列举一些常见的距离公式: def minkowski_distance(vec1, vec2, p=3): """ 闵氏距离 ...
1193 0
|
人工智能 移动开发 算法
Sherman-Morrison公式及其应用
Sherman-Morrison公式   Sherman-Morrison公式以 Jack Sherman 和 Winifred J. Morrison命名,在线性代数中,是求解逆矩阵的一种方法。
2834 0