基于协同过滤的推荐引擎

推荐引擎对因特网用户而言已经不再是什么新鲜事。Amazon会根据顾客的购买历史向他们推荐物品,Netflix会向其用户推荐电影,新闻网站会对用户推荐新闻报道…..当然,有很多方法可以实现推荐功能,这里我们只使用一种称为协同过滤(collaborative filtering)的方法。协同过滤是通过将用户和其他用户的数据进行对比来实现推荐的

1.1 相似度计算
计算物品之间的相似度,一般来说,我们有3种方法:
1. 欧氏距离:我们希望相似度值在0到1之间变化,并且物品对越相似,它们的相似度值也就越大。可以用“相似度=1/(1+距离)”这样的算式来计算相似度。当距离为0时,相似度值为1;如果距离很大,相似度也就趋近于0。

def  eulidSim(inA, inB):
       return 1.0/(1.0+linalg.norm(inA-inB)) #norm求范数

2.皮尔逊相关系数: 它度量的是两个向量之间的相似度,在Numpy中,皮尔逊相关系数的计算是由函数corrcoef()进行的。皮尔逊相关系数的取值范围从-1到1,通过0.5+0.5*corrcoef()这个函数计算,把取值范围归一化到0到1之间。

def pearsSim(inA,inB):
      if len(inA)<3 :return 1.0
      return 0.5+0.5*corrcoef(inA,inB,rowvar = 0)[0][1]

3. 余弦相似度:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值