基于淘宝点击及购买记录的口碑商家推荐——基于物品的协同过滤

Table_2: Users’shopping records at brick-and-mortar stores before Dec. 2015. (ijcai2016_koubei_train)
User_id、Merchant_id、Location_id 、Time_Stamp
Table_3: Merchant information. (ijcai2016_merchant_info)
Merchant_id 、Budget(budget constraints imposed on the merchant) 、Location_id_list
Table_4: Prediction result. (ijcai2016_koubei_test)
User_id、Location_id、Merchant_id_list

首先统计出下面几个字典:
{用户:[商家]}
{商家:[用户]}
{商家:商家热度} (热度用用户访问次数来表示)
{商圈:{商家:商家热度}} (方便后面的推荐)
商家间的相似度矩阵(其实是存储在字典中)

1、对于某用户,若其所在商圈内商家少于10个,则全部推荐,并且按照商家热度从高到低排序。
2、冷启动问题,若该用户之前没有使用过口碑,即没有历史商家记录,则推荐所在商圈热门的前十个商家(需排序)。
3、如果有历史商家记录,分别对消费过的商家找到相似商家和相似度,对于所有消费过的商家设置等权,累计同一商家的相似度,按照相似度从大到小排序,推荐前十个。

# -*- coding:utf-8 -*-
__author__ = 'Bai'
import os,math,csv
os.chdir('c:/Bai/datasets/tianchi_ijcai2016')
f1 = open('ijcai2016_merchant_info')
context1 = f1.readlines()
f2 = open('ijcai2016_koubei_train')
context2 = f2.readlines()
f3 = open('ijcai2016_koubei_test')
context3 = f3.readlines()

csvfile = file('forcast.csv','wb')
writer = csv.writer(csvfile)

#统计字典: {用户:[商家]}、{商家:[用户]} 及 {商家:商家热度}
user_merchant = {}
merchant_user = {}
merchant_popular = {}
for x in context2:
    x = x.replace('\n','').split(',')
    if x[0] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值