算法推荐算法
FANSEA校园闲置推荐算法
构建推荐模型
$$
F(Y|X)
$$
F:为商品算分决定推荐商品的排序
Y:为推测用户的行为,例如:点击商品详情页
X:商品特征(标签,地区,价格,用户点击次数),用户特征(兴趣,搜索历史,我想要)
商品特征
- 标签
用户发表闲置商品时,选择商品标签并保存在数据库表中
- 地区
按照发布地区与用户地区的距离对商品的推荐指数进行算分
用户特征
- 兴趣
在用户新登录软件时,增加用户选择兴趣的环节,为用户打上标签,推荐和用户相同兴趣的商品
- 搜索关键字
记录用户的搜索记录,增加用户兴趣的权重,如果用户在一开始并未选择兴趣,则加入用户特征
- 我想要
用户发布我想要的帖子,增加标签选项,和用户输入的商品关键字,按“我想要”关键字着重推送
商品关键字可以包括:低价,耳机,手表,距离近
涉及算法
决策树

神经网络
基于协同的推荐算法
基于协同过滤的推荐算法( Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,从而根据这一喜好程度来对目标用户进行推荐。


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| data = { "1":{"诺基亚":4.8,'iphone':5.0,"联想":0.1}, "2":{"诺基亚":3.0,"vivo":5.0,"htc":0.2}, "3":{"锤子":0.1,"魅族":0.3,"一加":5.0}, "4":{"联想":0.1,"魅族":0.3,"一加":5.0}, "5":{"诺基亚":2.0,'oppe':5.0,"htc":0.2},
}
from math import *
def Euclid(user1,user2): user1_data = data[user1] user2_data = data[user2] distance = 0
for key in user1_data.keys(): if key in user2_data.keys(): distance += pow(float(user1_data[key]) - float(user2_data[key]),2)
return 1/(1+sqrt(distance))
print(Euclid("1","2"))
def top_user(user): res = [] for uid in data.keys(): if not uid == user: simliar = Euclid(user,uid) res.append((uid,simliar))
res.sort(key=lambda val:val[1])
return res
print(top_user('1'))
def recommend(user): top_people = top_user(user)[0][0]
items = data[top_people]
recommed_list = []
for item in items.keys(): if item not in data[user].keys(): recommed_list.append((item,items[item]))
recommed_list.sort(key=lambda val:val[1],reverse=True)
return recommed_list[:10]
print(recommend("1"))
|
基于特征的推荐算法
