机器学习中五种常见的计算距离的方法

计算距离的五种方法

距离计算方法

在机器学习中,我们常常需要计算不同点之间的距离。下面是几种常见的距离计算方法:

欧几里得距离

欧几里得距离是两点之间的直线距离,即勾股定理中的斜边长度。假设有两个点A(x1, y1)和B(x2, y2),则它们之间的欧几里得距离为:

d(A,B) = sqrt((x2-x1)^2 + (y2-y1)^2)

曼哈顿距离

曼哈顿距离是两点在网格上行走的距离,即两点在横纵坐标上的距离之和。假设有两个点A(x1, y1)和B(x2, y2),则它们之间的曼哈顿距离为:

d(A,B) = |x2-x1| + |y2-y1|

Euclidean-欧几里得

manhatten-曼哈顿

minowsk-闵可夫斯基

chebyshew-切比雪夫

cosine distance-余弦距离

闵可夫斯基距离

闵可夫斯基距离是欧几里得距离和曼哈顿距离的一般化。假设有两个点A(x1, y1)和B(x2, y2),则它们之间的闵可夫斯基距离为:

d(A,B) = (|x2-x1|^p + |y2-y1|^p)^(1/p)

当p=1时,变成曼哈顿距离;当p=2时,变成欧几里得距离。

切比雪夫距离

切比雪夫距离是两点在网格上行走的最大距离,即横纵坐标之差的最大值。假设有两个点A(x1, y1)和B(x2, y2),则它们之间的切比雪夫距离为:

余弦距离

在讲余弦距离之前,我们必须弄清楚什么是向量的点乘。

向量的点乘(一)_向量点乘_大熊背的博客-CSDN博客

余弦距离是两个向量之间的夹角余弦值,它衡量的是两个向量方向上的差异。假设有两个向量A和B,则它们之间的余弦距离为:

d(A,B) = cos(theta) = (A*B) / (|A| * |B|)

其中,A*B表示A和B的点积,|A|和|B|分别表示A和B的模长。

为什么我老师给的公式是1-cos(theta)

因为余弦相似度的取值范围是[-1, 1],越接近1表示两个向量越相似,越接近-1表示两个向量越不相似。而距离度量一般是越小表示越相似,因此一般会使用1减去余弦相似度来作为余弦距离。这样,余弦距离的取值范围就是[0, 2],越接近0表示两个向量越相似,越接近2表示两个向量越不相似。

余弦距离的应用

余弦距离广泛应用于文本分类、信息检索、图像处理等领域。在文本分类中,我们可以将文档表示为词袋模型,然后计算文档之间的余弦相似度,从而进行分类。在信息检索中,我们可以将用户查询表示为向量,然后计算查询向量和文档向量之间的余弦相似度,从而实现搜索结果的排序。在图像处理中,我们可以将图像表示为向量,然后计算图像之间的余弦距离,从而实现图像的相似性比较和检索。

余弦距离的优点在于它不受向量长度的影响,而只取决于它们的夹角。这使得余弦距离在高维空间中非常有效,因为在高维空间中,向量之间的夹角往往更能反映它们之间的关系。另外,余弦距离不需要对向量进行归一化,因为在计算中除了向量的模长,其它部分都相同,所以可以省略这个步骤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值