欧式距离和余弦距离

欧式距离

核心思想:直接计算“两点之间的直线距离”,适合需要物理空间或数值差异的场景。

1. 地理位置导航
  • 例子:地图App计算你和咖啡店的直线距离。
    • 如果你在坐标点A(2,3),咖啡店在B(5,7),欧式距离就是两点间的直线距离。
    • 适用原因:导航需要真实的物理距离。
2. 图像识别
  • 例子:人脸识别中,比较两张人脸图片的像素差异。
    • 把图片看作多维向量(比如每个像素是一个维度),计算两张图片的欧式距离,距离越小越相似。
    • 适用原因:像素值的直接差异能反映图像内容的接近程度。
3. 聚类分析(如K-means算法)
  • 例子:电商将用户按消费金额和购买频率分组。
    • 用户A(月消费500元,买3次)和用户B(月消费800元,买5次)的欧式距离越小,消费行为越接近。
    • 适用原因:数值的绝对差异直接影响分组结果。
4. 异常检测
  • 例子:信用卡交易中,检测异常消费。
    • 正常交易的特征向量(金额、地点、时间)形成一个集群,新交易如果距离集群中心过远(欧式距离大),可能是欺诈。

余弦距离

核心思想:比较“方向是否一致”,适合忽略大小、只关注模式的场景。

1. 文本相似度
  • 例子:比较两篇文章的相似性。
    • 将文章转为词频向量(每个词的出现次数),计算余弦距离。即使文章长度不同(比如一篇长、一篇短),只要关键词比例相似,方向就一致。
    • 适用原因:关注内容主题(方向),而非文章长度(向量大小)。
2. 推荐系统
  • 例子:视频平台推荐你可能喜欢的电影。
    • 用用户评分向量(如A用户对喜剧、科幻片的评分)和电影特征向量计算余弦相似度。方向越接近,推荐越精准。
    • 适用原因:关注兴趣方向(比如“喜欢喜剧>动作”),而不是评分绝对值。
3. 自然语言处理(NLP)
  • 例子:ChatBot理解用户问题的意图。
    • 将用户问题“如何做蛋糕?”和语料库中的句子转为词向量,用余弦距离找到最接近的意图(如“烘焙步骤”)。
    • 适用原因:语义相似性由关键词方向决定,而非词频绝对值。
4. 人脸识别(辅助)
  • 例子:判断两张人脸是否为同一人。
    • 先用神经网络提取人脸特征向量(如128维),再计算余弦相似度。方向越一致,越可能是同一人。
    • 适用原因:光照、角度可能影响像素值(欧式距离不准),但特征向量的方向更稳定。

关键对比:什么时候用哪个?

场景特征选欧式距离选余弦距离
关注“实际距离”✔️(比如地图导航)
数据量纲差异大(如身高vs体重)❌(需先归一化)✔️(自动忽略幅度)
关注“模式相似”❌(比如“喜欢甜食”vs“喜欢辣”)✔️(方向一致即相似)
数据稀疏(如文本词频)❌(0值多,欧式距离不稳定)✔️(只关注非零维度方向)

举个对比例子

假设你想比较用户对电影的喜好:

  • 用欧式距离:用户A评分为[5, 1](喜剧5分,恐怖片1分),用户B评分为[3, 3]。欧式距离较大,但两人可能都喜欢喜剧(只是B更中庸)。
  • 用余弦距离:用户A和用户C[10, 2]的方向一致,余弦距离小,说明喜好模式相似(都偏爱喜剧)。

总结:欧式距离是“物理世界的尺子”,余弦距离是“模式方向的量角器”。根据问题本质(要距离还是要方向)选择即可! 😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值