django 推薦商品演算法

2022-05-09 23:42:14 字數 2531 閱讀 8884

1.基於使用者的協同過濾演算法(usercf)

該演算法利用使用者之間的相似性來推薦使用者感興趣的資訊,個人通過合作的機制給予資訊相當程度的回應(如評分)並記錄下來以達到過濾的目的進而幫助別人篩選資訊,回應不一定侷限於特別感興趣的,特別不感興趣資訊的紀錄也相當重要。但有很難解決的兩個問題,乙個是稀疏性,即在系統使用初期由於系統資源還未獲得足夠多的評價,很難利用這些評價來發現相似的使用者。另乙個是可擴充套件性,隨著系統使用者和資源的增多,系統的效能會越來越差。

2.基於物品的協同過濾演算法(itemcf)

內容過濾根據資訊資源與使用者興趣的相似性來推薦商品,通過計算使用者興趣模型和商品特徵向量之間的向量相似性,主動將相似度高的商品傳送給該模型的客戶。由於每個客戶都獨立操作,擁有獨立的特徵向量,不需要考慮別的使用者的興趣,不存在評價級別多少的問題,能推薦新的專案或者是冷門的專案。這些優點使得基於內容過濾的推薦系統不受冷啟動和稀疏問題的影響

資料描述

#使用者,興趣度,物品

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']

1.構建使用者-->物品的倒排

def loaddata(files):

data ={};

for line in files:

user,score,item=line.split(",");

data.setdefault(user,{});

data[user][item]=score;

print "----1.使用者:物品的倒排----"

print data

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使用者的歷史記錄為

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(uid_score_bid);#獲得資料

w=similarity(data);#計算物品相似矩陣

recommandlist(data,w,'a',3,10);#推薦

歌曲和商品推薦背後的演算法

這就是 amazon 發明的 喜歡這個商品的人,也喜歡某某 演算法。其核心是數學中的 多維空間中兩個向量夾角的余弦公式 當初我的確是被這演算法驚豔到了。商品推薦 系統的演算法 collaborative filtering 分兩大類 第一類,以人為本,先找到與你相似的人,然後看看他們買了什麼你沒有買...

京東商品推薦系統

京東商品推薦系統 個性化推薦是根據使用者的興趣特點和購買行為,向使用者推薦使用者感興趣的資訊和商品。隨著電子商務規模的不斷擴大,商品個數和種類快速增長,顧客需要花費大量的時間才能找到自己想買的商品。這種瀏覽大量無關的資訊和產品過程無疑會使淹沒在資訊過載問題中的消費者不斷流失。為了解決這些問題,京東商...

給使用者推薦商品

根據使用者15個月商品購買記錄 2015年1月28日到2016年5月使用者購買商品記錄 下個月 2016年6月 哪些使用者最可能購買的7個商品。融合模型。模型融合演算法效果不好。商品分布跟月份相關,只使用2015年6月的測試資料來 2016年6月份的使用者購買行為。資料量大大縮小。有的使用者2015...