浅析|用协同过滤实现电商个性化推荐系统
Posted 人机耦合
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析|用协同过滤实现电商个性化推荐系统相关的知识,希望对你有一定的参考价值。
我们平时使用的app里面,会有一些类似于猜你喜欢的功能,如网易云、酷狗,或者有些app会优先推荐你喜欢的商品
逛淘宝的时候,我们会被一些推荐的商品吸引到,它们诱发了你的购买欲,结果脑子一热,就把它们加入了购物车
这些“剁手邀请”背后都有一个推荐系统的概念
他们在做完用户画像分析后,对用户分类,挖掘出潜在的价值,从而提升业务价值,以提高公司的利润
推荐系统最基本的算法就是协同过滤
具体来说,协同过滤的思路是通过群体的行为来找到某种相似性(用户之间的相似性或者标的物之间的相似性),通过该相似性来为用户做决策和推荐。
基于用户相似的推荐
基于物品相似的推荐
基于标签的推荐
这里来实现一下基于物品相似的推荐
代码块显示效果
数据处理
from math import sqrt
import operator
#1.构建用户-->物品的倒排
def loadData(uid_score_bid):
data ={}
for line in uid_score_bid:
user,score,item=line.split(",")
data.setdefault(user,{})
data[user][item]=score
return data
计算共现矩阵和相似矩阵
#2.计算
# 2.1 构造物品-->物品的共现矩阵
# 2.2 计算物品与物品的相似矩阵
def similarity(data):
# 2.1 构造物品:物品的共现矩阵
N={}#喜欢物品i的总人数
C={}#喜欢物品i也喜欢物品j的人数
for user,item in data.items():
for i,score in item.items():
N.setdefault(i,0)
N[i]+=1
C.setdefault(i,{})
for j,scores in item.items():
if j not in i:
C[i].setdefault(j,0)
C[i][j]+=1
print("---2.构造的共现矩阵---")
print('N:',N)
print('C',C)
#2.2 计算物品与物品的相似矩阵
W={}
for i,item in C.items():
W.setdefault(i,{})
for j,item2 in item.items():
W[i].setdefault(j,0)
W[i][j]=C[i][j]/sqrt(N[i]*N[j])
print( "---3.构造的相似矩阵---")
print(W)
return W
给用户推荐他喜欢的物品
#3.根据用户的历史记录,给用户推荐物品
def recommandList(data,W,user,k=3,N=10):
rank={}
for i,score in data[user].items():#获得用户user历史记录,如A用户的历史记录为{'a': '1', 'b': '1', 'd': '1'}
for j,w in sorted(W[i].items(),key=operator.itemgetter(1),reverse=True)[0:k]:#获得与物品i相似的k个物品
if j not in data[user].keys():#该相似的物品不在用户user的记录里
rank.setdefault(j,0)
rank[j]+=float(score) * w
print ("---4.推荐----")
print(sorted(rank.items(),key=operator.itemgetter(1),reverse=True)[0:N])
return sorted(rank.items(),key=operator.itemgetter(1),reverse=True)[0:N]
输入用户的历史数据,输出推荐的物品
if __name__=='__main__':
#用户,兴趣度,物品
uid_score_bid = ['A,1,a', 'A,1,b', 'A,1,d', 'B,1,b', 'B,1,c', 'B,1,e', 'C,1,c', 'C,1,d', 'D,1,b', 'D,1,c', 'D,1,d',
'E,1,a', 'E,1,d']
data=loadData(df5)#获得数据
W=similarity(data)#计算物品相似矩阵
recommandList(data,W,'A',3,10)#给A用户推荐物品
算法原理
余弦值求相似度
公式的推导
我就可以把用户C喜欢的D物品推荐给用户A
推荐系统又称推荐平台、推荐引擎,是信息过滤系统的一个分支,目的是预测用户对某一产品的评分或兴趣程度
现在已经被广泛运用于电影、音乐、新闻、书籍和产品推荐等领域
在网络技术不断发展的背景下,信息源源不断地涌入了我们的日常生活
一方面满足了对于信息的需求
另一方面却导致了信息过载的问题
尤其在电子商务行业中,快速增长的商品个数和种类渐欲迷人眼,在找到符合自己需求的产品之前,消费者往往需要耗费大量时间浏览无关的内容,这种低效的体验很容易导致消费者流失
这时候推荐系统就显得尤为重要
end
看更多走心好文章
请长按下方图片
喜欢就关注一下
以上是关于浅析|用协同过滤实现电商个性化推荐系统的主要内容,如果未能解决你的问题,请参考以下文章
Python+Django+Mysql个性化二手车推荐系统 汽车推荐系统 基于用户项目内容的协同过滤推荐算法 WebCarCFRSPython python实现协同过滤推荐算法实现源代码下载
Python+Django+Mysql个性化购物商城推荐系统 电子商务推荐系 基于用户项目内容的协同过滤推荐算法 WebShopRSMPython python实现协同过滤推荐算法实现源代码下载
Python+Django+Mysql志愿者活动推荐系统 基于用户项目内容的协同过滤推荐算法 SimpleWebActivityCFRSPython python实现协同过滤推荐算法实现源代码下载