首页 > 其他 > 详细

简单的推荐系统环境

时间:2014-02-18 14:46:47      阅读:438      评论:0      收藏:0      [点我收藏+]

很早以前就听过推荐系统这个词,然后浏览一起网页侧边栏的广告时也经常看到京东、淘宝、LifeVC等广告的推荐产品,最近比较有空,所以希望深入了解一下什么是推荐系统。所以特意搭了一个环境来试一试。

1. 安装

这个简单的环境是基于Python的,然后利用了Python的库python-recsys。首先先下载python-recsys,地址是http://github.com/ocelma/python-recsys,然后然后要先安装这个库的依赖库,用以下方法直接按照即可(Mac 平台下!)。

sudo easy_install csc-pysparse
sudo easy_install networkx
sudo easy_install divisi2

安装完这些依赖库以后安装python-recsys即可。

tar -zxvf python-recsys.tar.gz
cd python-recsys
sudo python setup.py install


2.使用

安装完以后就可以使用了,这里使用奇异值分解(SVD)的方法来进行推荐,算法的原理见

http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html。然后为了测试结果,我们首先需要获得数据集,数据集可以在网站http://grouplens.org/datasets/movielens/中下载,我们这里使用1M大小的数据,使用的文件是ratings.dat。然后就可以进行推荐了,详细的代码如下:

from recsys.algorithm.factorize import SVD
svd = SVD()
svd.load_data(filename=‘./data/movielens/ratings.dat‘, sep=‘::‘, format={‘col‘:0, ‘row‘:1, ‘value‘:2, ‘ids‘: int})
#假设奇异值的个数为100
k = 100
svd.compute(k=k, min_values=10, pre_normalize=None, mean_center=True, post_normalize=True)
#你可以计算两个电影的相似度
ITEMID1 = 1
ITEMID2 = 2355
print svd.similarity(ITEMID1, ITEMID2)
#或者得到类似的电影
print svd.similar(ITEMID1)
#再预测一下用户对电影的评分
MIN_RATING = 1.0
MAX_RATING = 5.0
USERID1 = 1
print svd.predict(ITEMID1, USERID, MIN_RATING, MAX_RATING)
#重头戏,推荐电影给用户!
print svd.recommend(USERID, is_row = False)
#谁应该看这部电影
print svd.recommend(ITEMID)


简单的推荐系统环境

原文:http://liangqiu.blog.51cto.com/4461709/1359948

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!