推荐系统之Also Buy和Also View的实现

标签: 程序设计 python 推荐系统 | 发表时间:2012-10-13 20:41 | 作者:标点符
出处:http://www.biaodianfu.com

目前很多的B2C网站均有推荐系统的呈现,而最常见的就是类似Amazon网站上出现的购买此商品的顾客也同时购买了。

说到推荐系统,大多数人认为非常的高深莫测,但是再高深的系统也可以一探究竟。上面的推荐其实就是著名的“啤酒和尿布”相类似。下面我们就来研究上要实现上述的功能,需要做哪些操作。

首先我们要的是一份数据,即所有的用户的购买记录。即一份 userId和itemId的记录表。

数据格式可以如下:

userId itemId

123 A

123 B

124 A

125 B

有了上述所有网站内的所有数据,接下来就是对数据进行处理了

1、去除所有重复的数据项

2、去除所有只购买过一个产品的用户记录

经过上述的操作后,留下来就是有用的数据了。我们需要再把数据保存为:

A:(123,124)

B:(123,125)

即找出每个商品有哪些用户Id购买过。再然后再去取A商品和B商品有相同会员Id的数目,即同时购买A商品和B商品的人数共有多少。

如果你N个商品,则两两比较需要N(N+1)/2次,然后找出重复最多的产品。具体python代码实现如下:

import pymssql,heapq

matrix = {}

conn = pymssql.connect(host='localhost:1433',user='sa', password='123456', database='item2item')
cur = conn.cursor()
cur.execute('SELECT [itemId],[userId]  FROM [item2item].[dbo].[user_item]')

for row in cur:
    itemId = row[0]
    userId = row[1]

    if not itemId in matrix:
        matrix[itemId] = set([userId])
    else:
        matrix[itemId].add(userId)
conn.close()

def amazonDistance(item1Set, item2Set):
    return len(item1Set.intersection(item2Set))

def recommend(seedItem, numRecommendations):
    amazonResults = []
    for key in matrix.keys():
        heapq.heappush(amazonResults, (-1*amazonDistance(matrix[key], matrix[seedItem]), key))
    amazonResults.sort()
    return amazonResults[0:numRecommendations]

data = recommend(1234,10)

Related posts:

  1. 使用Python连接MSSQL方法
  2. 使用python将Sqlite中的数据直接输出为CVS
  3. 使用python来抓取新浪的IP数据

相关 [推荐系统 also buy] 推荐:

推荐系统之Also Buy和Also View的实现

- - 标点符
目前很多的B2C网站均有推荐系统的呈现,而最常见的就是类似Amazon网站上出现的购买此商品的顾客也同时购买了. 说到推荐系统,大多数人认为非常的高深莫测,但是再高深的系统也可以一探究竟. 上面的推荐其实就是著名的“啤酒和尿布”相类似. 下面我们就来研究上要实现上述的功能,需要做哪些操作. 首先我们要的是一份数据,即所有的用户的购买记录.

N9,the best phone you should NOT buy

- archer - 爱范儿 · Beats of Bits
这标题不是我发明的,它来自 Engadget 的一条评论. 这条评论针对的文章题为《Nokia’s Stephen Elop is still over MeeGo, even if the N9 is a hit》. 没错,就是《即使 N9 成功了,史蒂芬·艾洛普仍会放弃 MeeGo》. 根据芬兰当地报纸《HELSINGIN SANOMAT》上周采访了艾洛普,采访中,艾洛普表示:.

Min-Hash和推荐系统

- - xlvector - Recommender System
前几年看Google News Recommendation的那篇Paper,对里面提到的MinHash的算法基本没有注意,因为之前的习惯都是只注意论文的模型那块,至于怎么优化模型一般都只是扫一眼. 不过最近看了大量的Google Paper,发现Google在实现一个算法方面确实有很多独到之处. 其实,Min-Hash是LSH(Locality Sensitive Hash)的一种,我之前对LSH的了解仅仅限于知道它能把两个相似的东西Hash成两个汉明距离接近的2进制数.

推荐系统实战

- - 博客园_首页
推荐算法:基于特征的推荐算法. 推荐算法准确度度量公式:. 其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合. 集合相似度度量公式(N维向量的距离度量公式):. 其中,N(u)表示用户u有过正反馈的物品集合. 其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣.

推荐系统杂谈

- - 后端技术杂谈 | 飒然Hang
推荐系统是近些年非常火的技术,不管是电商类软件还是新闻类app,都号称有精准的推荐系统能给你推送你最感兴趣的内容. 现象级的资讯类app“今日头条”就得益于此成为了势头非常猛的一款产品. 本文就针对推荐系统讲述一些相关概念和实践经验. 首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:. 用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标.

[原]淘宝Buy+负责人胡晓航:从技术和产品维度看Buy+ VR购物

- - 雷锋网
导语:阿里巴巴是怎么做VR购物的. 此次公开课我们邀请到了Buy+负责人胡晓航,为你解答所有这些疑问. 一年一度的网购狂欢节“双十一”刚刚过去,这不仅仅是购物者的盛宴,也是各种新技术登场的时刻,其中就包括Buy+ . 有很多人喜欢网购体验,端着手机、电脑、Pad一页页浏览商品,但也有许多人怀念线下购物,那种和姐妹一起逛街、聊天,拿起一件商品查看标签和价格的感觉.

白色版 HTC Droid Incredible 2 在美国 Best Buy 有售

- ArmadilloCommander - Engadget 中国版
在两个多星期前,我们曾经报导过白色版本的 HTC Droid Incredible 2 (港台两地称 Incredible S)有可能会在美国电讯商 Verizon 发售;而美国 Best Buy 在昨天以行动证实了这个传闻. 由 8 月 21 日起,当地消费者便可以从该网站以 US$149.99 和两年的 Verizon 合约将这小白带回家.

Galaxy Tab 8.9 WiFi 抵达 Best Buy,美国本周开卖

- ZeeJee - Engadget 中国版
三星 Galaxy Tab 8.9 WiFi 逐渐揭开神秘的面纱,马上就要和消费者见面了. 这次我们来看看美国方面的消息,据主站所知,这款 8.9 寸平板已经抵达 Best Buy ,最快的发售日是在 9 月 22 日,不过是指定的一些门店才有,而其它零售店要等到 25 日. 美国地区售价未知,不过你可以参考英国的售价.

Best Buy跳楼大甩卖 7寸HTC平板仅卖$99

- 为伊憔悴 - cnBeta.COM
看一看瞧一瞧,走过路过不要错过,7英寸Android平板HTC Flyer仅卖99美刀,仅在Best Buy有售――这个价格足够秒杀Kindle Fire,虽然这只是Best Buy一家商家的个人行为而非HTC的官方攻势,但这是一个可怕的交易,同时也标志着,生产商和零售商变得越来越有攻击性.

最后一波:150 美刀 Best Buy 抢购 32GB HP TouchPad 平板…

- jun - 谷安——谷奥Android专题站
早在几个月前 HP 就放弃了 WebOS,而他们采用 WeoOS 系统的产品,TouchPad 也进行了甩卖,超低的价格引来了疯抢,很快就销售一空. 现在新的机会来了,Best Buy 看起来还有一些存货,32 GB 版本的 TouchPad 只要 150 美刀(不过前提是要购买 HP 电脑才可以以这个价格买到,感谢 东东 提醒之前搞忘写上这个条件了…).