简单的推荐系统环境
2014-02-17 22:34
204 查看
很早以前就听过推荐系统这个词,然后浏览一起网页侧边栏的广告时也经常看到京东、淘宝、LifeVC等广告的推荐产品,最近比较有空,所以希望深入了解一下什么是推荐系统。所以特意搭了一个环境来试一试。
1. 安装
这个简单的环境是基于Python的,然后利用了Python的库python-recsys。首先先下载python-recsys,地址是http://github.com/ocelma/python-recsys,然后然后要先安装这个库的依赖库,用以下方法直接按照即可(Mac 平台下!)。
2.使用
安装完以后就可以使用了,这里使用奇异值分解(SVD)的方法来进行推荐,算法的原理见 http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html。然后为了测试结果,我们首先需要获得数据集,数据集可以在网站http://grouplens.org/datasets/movielens/中下载,我们这里使用1M大小的数据,使用的文件是ratings.dat。然后就可以进行推荐了,详细的代码如下:
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)
相关文章推荐
- 在Windows环境下用mahout做推荐系统简单例子
- [置顶] Spark Mllib构建简单的电影推荐系统(转)
- 使用Mahout搭建推荐系统之入门篇1-搭建REST风格简单推荐系统
- 笔记-WINDOWS SERVER 2008系统管理 第4章 搭建简单的单域环境
- [20180313智慧餐厅推荐系统02]基于python的socket编程代码,实现PC与服务器的简单通信
- 推荐系统简单介绍
- 简单的推荐系统(线性分类器的一种)(就是所说的打分系统)
- 简单比较搜索引擎与推荐系统
- 数据推荐系统系列 8种方法之零 简单方式 SlopeOne 方式 (补充简单的方式)
- 在Linux系统中搭建Node.js开发环境的简单步骤讲解
- 上机考试系统的简单设计 推荐
- 简单案例教你用PROC文件系统获取进程信息 推荐
- Windows下NLB(分工作组与域环境)、服务器群集简单搭建 推荐
- 使用欧几里德距离构建简单的推荐系统计算用户相似度
- 史上最简单的推荐系统设计
- 基于协同过滤构建简单推荐系统
- 树莓派开发板--Linux系统--ROS环境--实现一个简单的消息发布器和订阅器
- 手机游戏中记录存储系统与存储环境 推荐
- Windows系统下配置gradle的环境变量的简单方式
- VS.NET环境下实现日志系统的几种方式 推荐