距离度量计算方式

距离

距离本质上是比较两个事物之间的差异大小。但是不同场景下,距离的表示方式也有所不同。

欧式距离

场景

网上影院需要将用户进行归类。
影院有用户的观影记录和对电影的评分记录。

归类

一维
假设小王和小李都只看了A电影:

比如小李对A电影评分为4,小王对A电影评分为5.那么小王和小李的距离为 d=开根号(5-4)的平方。

二维
复杂一点,小王和小李都看过两部相同电影,那怎么衡量他们两个的距离呢?

将两个电影投到二维平面上,x代表对A电影评分的距离,y表示对B电影评分的距离。二维平面上直线的长度就是两个人的距离d = 开根号(|A1-A2|平方+|B1-B2|平方)

多维
小王和小李关于n部电影的距离:
小王对第i部电影的评分为xi,小李对第i部电影的评分为yi。

引出欧式距离公式:√(∑(xi-yi)2

维度不一致问题
如果有小王、小张、小红三个人,但是小王和小张只看过两部相同电影,而小王和小红一共看过四部相同电影,如果按照欧式公式,小王和小红一定比小王和小张的分数高,即距离更远,这显然不公平。

修正后的欧式距离公式(修正维度不一致的时候,带来的距离差异): √(∑(1/n(xi-yi))2)

权重不一致问题
到此为止,我们假设每一部电影的权重是一样的,但是事实不是如此。比较重量级的电影可能权重更高。这时引入权重的概念,假设第i部电影的权重为Ai,且满足A1+A2+…+An=1.

引入权重的欧式距离公式: √(∑(1/n(xi-yi)*Ai)2)

因为不是所有人的维度都是一样的,因此有些人之间的权重之和不为1。这时候需要对权重进行修正。比如小王和小张共同看过两部电影,权重为0.3和0.3,那修正后的权重为0.3/(0.3+0.3)=0.5。因此小王和小张修正后的实际权重为0.5。假设Wi为修正后的权重距离公式。

引入权重后修正维度的欧式距离公式: √(∑(Wi*(xi-yi)*Ai)2)

对比修正后的欧式距离公式,当n对人的维度都为n,且各个维度权重一样,都为1/n的时候,权重欧式距离公式和修正后的欧式距离公式是一样的。因此可以把修正后的欧式距离公式当成权重欧式距离公式的一个特例。

特别说明
上面是通过电影计算两个人的相似度,现在通过身高和体重来看看两个人的相似度。
这种通过身体指标来计算两者的欧式距离,看看有什么不一样。

假设小王 身高180 体重65 ,而小李 165 60,得到的欧式距离结果反映的更多是由身高控制,因为身高差个二十厘米很正常,但是体重差二十公斤概率比较低。

下面对身高和体重进行修正:将身高/人类平均身高,将体重/人类平均体重,将身高和体重放到一个维度上去比较,这样的结果才更有意义。

曼哈顿距离

欧式距离局限
假设你在等车,车在几条街道外。如果用欧式距离计算,得到的是两点距离,这显然不对,因为车只能行驶在街道上。针对这个场景,引入另外一种距离,
假设人的坐标P1=(x1,y1), 车的坐标是P2(x2,y2)。其实往往有多种走法,但是多种走法是一样的,因为最终走的横纵坐标距离是一样的。得到曼哈顿距离公式:
d=|x1-x2|+|y1-y2|。

在多维空间内,曼哈顿距离(维数一致): d=∑(xi-yi)

海明距离

请比较下面两个字符串的距离:

abcd和aedf

我们可以考虑字母表的顺序来判断两者的差异吗?不行!因为字母表仅仅是编排。我们可以假设如果两个字母相等,距离为0。如果不相等,距离为1,得到海明(hamming)距离。海明距离本质上是异或结果相加。

回到曼哈顿距离,如果每一个维度只能取值为0或1,那就得到了海明距离。因此可以认为,海明距离是曼哈顿距离的一个特例。

使用角度差衡量距离

在欧式距离、曼哈顿距离中,我们用长度衡量两者的差异。我们还可以从其他角度来衡量两者的差异,比如角度。

角度的取值 范围:0 - 180度

在曼哈顿距离中,范围:0 - n(n为维度)
在欧式距离中,范围: 0 - 无穷大

角度度量方式对长度不敏感,主要用来度量方向。

场景

应用场景:比如我们有一个论坛网站,有两个频道,一个军事频道、一个美容频道。计算AB和AC的距离,判断A和B更相近还是和C更相近。
在这里插入图片描述
如果用欧式距离计算,得到AC距离更短,AC<AB。但C可能是女性,AB可能都是男性,得到这个错误结果的原因是B的上网时间长。因此引入角度度量。

在二维平面上,设x为美容频道,y为军事频道花费的时间,得到二维 坐标(x, y)。通过连接原点,得到一个角度。两个坐标的夹角P1和P2,角度越相近的人,相似度越高。

角度更多的判断各个维度上的比例差异,而和绝对数值关系不大

我们知道,设夹角为θ,θ越大,表示相似度越小。θ越小,则相似度越大。

因此我们可以用相似度来度量两个事物的差异程度,相似度越大,说明两个事物越相近。

引入角度度量公式,计算相似度: y = arccosθ

在n维空间内 ,计算公式如下:
在这里插入图片描述

总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值