sklearn tfidf求余弦相似度_推荐算法原理(二)欧几里得距离计算物品间相似度...

4564900e1c9c9d1c2733e7d01a838b32.png

在上篇文章中介绍了如何利用余弦定理计算两个物品间的相似度:

KiKlaus:推荐算法原理(一)余弦定理计算物品间相似度​zhuanlan.zhihu.com
5892762c8a5ce9420650ad3236b32e78.png

这种计算方法虽然简单,但是在衡量空间两个向量间值的大小差异时,会有明显的缺陷。

例如,向量A(1,1,1),向量B(5,5,5),如果用余弦定理计算,那么这两个向量的夹角大小为0°,即在方向上是完全一致的,所以算法会认为这两个向量极相似。但是我们仔细一想,其实这两个向量在比较值时(空间的相对位置上)是极不相似,那么如果用余弦定理进行计算,就会和我们想得出的结果有很大差距。

利用欧几里得计算物品间的相似度时可以解决上述问题。

1. 利用欧几里得公式计算两个物品间的相似度

  • n维空间中计算两点间距离的原理

如下图所示,其中dist(A,B)为三维空间中两点间的距离。

db21fae601a0248f6ccef464cadaf95b.png

拓展到n维空间时的一般性公式为:

ada8ecee76f921f92809af981a6b68bb.png

这个式子在二维下展开的话可以想象成是利用勾股定理计算两点间的距离,这里不再展开。

从上述的一般性公式可以看出,两点之间的距离恒为非负数,最大值为正无穷大。但是通常情况下相似度的取值范围应该在[-1,1]之间,所以我们需要对其求倒数将结果控制在(0,1]之间。

最后欧几里得计算两个物品间相似度的公式为:

a3f9ec10323d070494d8855eb51f942a.png

两个物品或者用户之间的距离越大,则其相似度越小,距离越小则相似度越大。

2. 实际运用

下表为用户和评分对照表:

a4ff647b87e318868feecad1fcb48ba2.png

下面分别运用欧几里得公式计算用户1和用户2的相似度:

从计算结果可以看出,用户1和用户2的相似度比用户1和用户3的相似度高,所以用户2与用户1更相似。

3. 总结

以上就是这次要分享给大家的内容了, 余弦定理和欧几里得公式两种计算方法各有好坏,欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,比如使用用户行为作为指标分析用户价值的相似情况(比较不同用户的消费能力),这属于价值度量;而余弦相似度对绝对数值不敏感,更多的用于使用用户对内容的评分来分析用户兴趣的相似程度(用户是否喜欢某商品),这属于定性度量。

没有最好的算法,只有最合适的场景,只有结合实际情况才能使这些算法更好地落地生产~

大家有疑惑的话可以在留言区留言多多交流~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值