python协同过滤可以预测吗_如何为协同过滤选择合适的相似度算法

(点击 上方公众号 ,快速关注,获取学习资料!)

推荐阅读时间:8min~9min

文章内容:相似度算法选择

近邻推荐之基于用户的协同过滤 以及  近邻推荐之基于物品的协同过滤 讲解的都是关于如何使用协同过滤来生成推荐结果,无论是基于用户的协同过滤还是基于物品的协同过滤,相似度的计算都是必不可少的,那么都有哪些计算相似度的方法呢?

到底什么是相似度呢

在推荐系统中,近邻推荐的核心就是相似度计算方法的选择,由于近邻推荐并没有采用最优化思路,所以效果通常取决于矩阵的量化方式和相似度的选择。

与相似度通常一起使用的一个概念是距离,这两个概念都可以用来衡量物体在高维空间的亲疏程度。

在近邻推荐中,最常用的是相似度计算方法是余弦相似度,事实上,除了余弦相似度,还有其他的计算方法,比如:欧式距离、修正余弦相似度、皮尔逊相关系数、杰卡德(Jaccard)相似度。

相似度计算方法

相似度计算的对象是向量,向量的取值有两种,一种是 0 或 1,另一种是实数值。

欧氏距离

每个向量可以认为是在高维空间中的一个点,欧式距离就是衡量这两个点之间的距离,欧式距离不适合布尔向量之间。

可以看到,欧式距离得到的结果是一个非负数,最大值是正无穷大,但是通常情况下相似度结果的取值范围在 [-1, 1] 之间。可以对它求倒数将结果转化到 (0, 1]之间。

欧式距离度量的是空间中两个点的绝对差异,适用于分析用户能力模型之间的差异,比如消费能力、贡献内容的能力等

余弦相似度

余弦相似度度量的是两个向量的夹角。

可以看到,余弦相似度对向量长度进行了归一化,所以它的结果与向量长度无关,只与向量的夹角有关。

余弦相似度的取值范围是[0,1],当两个向量的夹角为 0 度时,余弦值为 1,当夹角为 90 度时,余弦值为 0,为 180 度时,余弦值则为 -1。

另外,余弦相似度对向量的绝对值大小也不敏感。例如:用户A对 a、b 两部电影的评分分别是 1 分和 2 分,用户B对两部电影的评分分别是 4 分 和 5 分,计算两个用户向量的余弦相似度,即 [1, 2] 和 [4, 5],结果为 0.98,说明这两个用户比较相似,但实际上这是非常不合理的。

余弦相似度在度量文本相似度、用户相似度、物品相似度的时候都较为常用。

修正余弦相似度

余弦相似度读绝对值不敏感的问题可以通过修正余弦相似度来解决。

修正后的余弦相似度在计算时,会将向量中的每个维度的元素减去该维度对应的均值作为计算值。

接着上面的例子,具体来说,就是得到电影a和电影b的平均评分:[2.5, 3.5],然后重新生成用户A和用户B对应的向量。

用户A: [1, 2] - [2.5, 3.5] = [-1.5, -1.5]

用户B: [4, 5] - [2.5, 3.5] = [1.5, 1.5]

再次计算两个向量的余弦相似度,得到结果为 -1。

皮尔逊相关系数

皮尔逊相关系数衡量的是两个变量之间的线性关系。

可以看出,皮尔逊相关系数会将原始的向量将去该向量的平均值,修正后的余弦相似度会将原始的向量中的值减去每列的平均值。

皮尔逊相关系数的取值范围是 [-1, 1],-1 表示两个变量负相关,1 表示两个变量正相关,0 表示两个变量之间没有线性关系,但不代表没有其他关系。

皮尔逊相关系数不适合用作计算布尔值向量之间相关度。

杰卡德(Jaccard)相似度

杰卡德相似度,是两个集合的交集元素个数在并集中所占的比例。

集合非常适用于布尔向量表示,所以向量为布尔值时非常适合使用杰卡德相似度。

总结

这里介绍了几种常见向量的相似度计算方法,如果向量的元素是布尔类型的相似度,适合使用杰卡德相似度、余弦相似度、修正余弦相似度,如果向量的元素是实数值,适合使用欧氏距离、余弦相似度、修正余弦相似度。

欢迎加入脑洞科技栈微信交流群,群内每天都有关于 Python和机器学习 主题的 有料 分享。

后台回复 “ 加群 ”获取二维码入群。

作者:1or0,脑洞大开(www.naodongopen.com)签约作者,专注于机器学习研究。

脑洞科技栈

专注于人工智能领域

长按,识别二维码,加关注

回复关键字可获取大量学习资料!

本文 为脑洞科技栈撰写,转载请注明出处,并给出本公众号链接地址

更多精彩内容,请点击“ 阅读原文 ”

戳这里戳这里~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值