开源推荐系统软件

收集和整理了目前互联网上能找到的和推荐系统相关的开源项目(Open Source Software | Recommendation),罗列如下,希望对本领域感兴趣的朋友有帮助

SVDFeature 
由上海交大的同学开发(开发语言C++),代码严谨、质量高,我们参加KDD竞赛时用过,很可靠和方便,而且出自咱们国人之手,所以置顶推荐!

项目地址: 
http://svdfeature.apexlab.org/wiki/Main_Page

SVDFeature包含一个很灵活的Matrix
Factorization推荐框架,能方便的实现SVD、SVD++等方法,
是单模型推荐算法中精度最高的一种。SVDFeature代码精炼,可以用相对较少的内存实现较大规模的单机版矩阵分解运算。

另外含有Logistic
regression的model,可以很方便的用来进行ensemble运算 
Crab

项目地址: 
http://geektell.com/story/crab-recommender-systems-in-python/

系统的Tutorial可以看这里: 
http://muricoca.github.io/crab/

Crab是基于Python开发的开源推荐软件,其中实现有item和user的协同过滤。据说更多算法还在开发中,Crab的python代码看上去很清晰明了,适合一读

CofiRank 
C++开发的
Collaborative
Filtering算法的开源推荐系统,但似乎2009年后作者就没有更新了, 
CofiRank依赖boost库,联编会比较麻烦。不是特别推荐 
项目地址: 
http://www.cofirank.org/

EasyRec

Java开发的推荐系统,感觉更像一个完整的推荐产品,包括了数据录入模块、管理模块、推荐挖掘、离线分析等,整个系统比较完备。

项目地址: 
http://easyrec.org/

GraphLab 
项目地址: 
http://graphlab.org/

Graphlab是基于C++开发的一个高性能分布式graph处理挖掘系统,特点是对迭代的并行计算处理能力强(这方面是hadoop的弱项),

由于功能独到,GraphLab在业界名声很响 
用GraphLab来进行大数据量的random
walk或graph-based的推荐算法非常有效。 
Graphlab虽然名气比较响亮(CMU开发),但是对一般数据量的应用来说可能还用不上

Lenskit 
http://lenskit.grouplens.org/

这个Java开发的开源推荐系统,来自美国的明尼苏达大学,也是推荐领域知名的测试数据集Movielens的作者,

他们的推荐系统团队,在学术圈内的影响力很大,很多新的学术思想会放到这里

Mahout 
网址 
http://mahout.apache.org/

Mahout知名度很高,它是Apache基金资助的重要项目,在国内流传很广,并已经有一些中文相关书籍了。注意Mahout是一个分布式机器学习算法的集合,协同过滤只是其中的一部分。除了被称为Taste的分布式协同过滤的实现(Hadoop-based,另有pure
Java版本),Mahout里还有其他常见的机器学习算法的分布式实现方案。

另外Mahout的作者之一Sean
Owen基于Mahout开发了一个试验性质的推荐系统,称为Myrrix,
可以看这里: 
http://myrrix.com/quick-start/

MyMediaLite

http://mymedialite.net/index.html

基于.NET框架的C#开发(也有Java版本),作者基本来自德国、英国等欧洲的一些高校。

除了提供了常见场景的推荐算法,MyMediaLite也有Social
Matrix
Factorization这样独特的功能

尽管是.Net框架,但也提供了Python、Ruby等脚本语言的调用API

MyMediaLite的作者之一Lars
Schmidt在2012年KDD会议上专门介绍过他们系统的一些情况,可惜由于.Net开发框架日渐式微,MyMediaLite对Windows NT
Server的系统吸引力大些,LAMP网站用得很少

LibFM

项目网址: 
http://www.libfm.org/

作者是德国Konstanz
University的Steffen Rendle,去年KDD
Cup竞赛上我们的老对手,他用LibFM同时玩转Track1和Track2两个子竞赛单元,都取得了很好的成绩,说明LibFM是非常管用的利器(虽然在Track1上被我们打败了,hiahia)

顾名思义,LibFM是专门用于矩阵分解的利器,尤其是其中实现了MCMC(Markov
Chain Monte
Carlo)优化算法,比常见的SGD(随即梯度下降)优化方法精度要高(当然也会慢一些)

LibMF

项目地址: 
http://www.csie.ntu.edu.tw/~cjlin/libmf/

注意LibMF和上面的LibFM是两个不同的开源项目。这个LibMF的作者是大名鼎鼎的台湾国立大学,他们在机器学习领域享有盛名,近年连续多届KDD
Cup竞赛上均获得优异成绩,并曾连续多年获得冠军。台湾大学的风格非常务实,业界常用的LibSVM,
Liblinear等都是他们开发的,开源代码的效率和质量都非常高

LibMF在矩阵分解的并行化方面作出了很好的贡献,针对SDG优化方法在并行计算中存在的locking
problem和memory
discontinuity问题,提出了一种矩阵分解的高效算法,根据计算节点的个数来划分评分矩阵block,并分配计算节点。系统介绍可以见这篇论文(Recsys
2013的 Best paper Award)

Y. Zhuang, W.-S. Chin, Y.-C. Juan, and C.-J.
Lin. A Fast Parallel SGD for Matrix Factorization in Shared Memory Systems.
Proceedings of ACM Recommender Systems 2013.

PREA 
全名是
Personalized Recommendation Algorithms Toolkit,
开发语言为Java。也是一个轻量级的开源项目

项目网址: 
http://mloss.org/software/view/420/

放在Mloss这个大project下。我个人感觉PREA还是比较简陋的,参加开发的三位工程师Joonseok
Lee, Mingxuan Sun, Guy
Lebanon更新频率很低,提供的资料也少。

不过Mloss下倒是能找到其他一些推荐开源项目

http://mloss.org/software/tags/collaborative-filtering/

Python-recsys

一个非常轻量级的开源推荐系统,python开发,作者似乎只有一位,

Python-recsys主要实现了SVD、Neighborhood
SVD推荐算法,

这个项目麻雀虽小五脏俱全,评估数据(Movielens,Last.fm)、评估框架也都有

API也很简单清晰,代码简洁,属于推荐入门的良好教材。

不过真正要用到实际系统中,还是得补充很多内容

github的地址位于

https://github.com/ocelma/python-recsys

项目的介绍见:

http://ocelma.net/software/python-recsys/build/html/

RapidMiner

项目网址为:

http://rapidminer.com/

Java语言开发,RapidMiner(前身是Yale)已经是一个比较成熟的数据挖掘解决方案了,包括常见的机器学习、NLP、推荐、预测等方法(推荐只占其中很小一部分),而且带有GUI的数据分析环境,数据ETL、预处理、可视化、评估、部署等整套系统都有。

另外RapidMiner提供commercial
license,提供R语言接口,感觉在向着一个商用的数据挖掘公司的方向在前进。

Recommendable

基于Ruby语言开发,实现了一些评分预测的推荐算法,但是整体感觉比较单薄,

github上地址如下:

https://github.com/davidcelis/recommendable/

Recommenderlab

基于R语言开发的开源推荐程序,对经常使用R语言的工程师或者BI数据分析师来说,recommenderlab的出现绝对算得上是福音了

项目地址:

http://cran.r-project.org/web/packages/recommenderlab/index.html

基于Recommenderlab来开发推荐系统,代码会非常精简,因为推荐系统所依赖的user-item
rating
matrix对擅长处理向量运算的R语言来说再方便不过了,

但是在实际推荐系统中,需要考虑的问题和逻辑都比较复杂,用Recommenderlab不是很灵活。另外受限于R语言对内存的限制,Recommenderlab不太适用于过大规模的推荐应用

Waffles

SF地址:

http://waffles.sourceforge.net/

Waffles英文原意是蜂蜜甜饼(见logo),在这里却指代一个非常强大的机器学习的开源工具包,基于C++语言开发。

Waffles里包含的算法特别多,涉及机器学习的方方面面,推荐系统位于其中的Waffles_recommend
tool,大概只占整个Waffles的1/10的内容(其它还有分类、聚类、采样、降维、数据可视化、音频处理等许许多多工具包,估计能与之媲美的也就数Weka了)

来源:http://www.peileyuan.com/blogs/125from_tags=%E6%8A%80%E6%9C%AF%E5%8A%A8%E6%80%81

时间: 2024-08-29 23:27:05

开源推荐系统软件的相关文章

每周前端开源推荐第六期

每周前端开源推荐第六期 43081j / rar.js Pure-JavaScript RAR reader using AJAX, File API & local access 从名字就可以很容易的看出该项目的作用,rar解压缩.同时支持浏览器和Node.js.大家可以进入项目里面,了解具体用法. rschmukler / agenda Lightweight job scheduling for node agenda是Node.js任务调度的项目.数据库用的是MongoDB.使用非常简单

每周前端开源推荐第五期

每周前端开源推荐第五期 marcuswestin / store.js localStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood http://twitter.com/marcuswestin 合理的使用localStorage可以对速度有非常好的效果,但是localStor

每周前端开源推荐第三期

每周前端开源推荐第三期 HubSpot / odometer Beautiful CSS3 Number Transitions #hubspot-open-source http://github.hubspot.com/odometer. odmeter是一个用很炫的动画来展示数字的库,效果非常赞.你可以去它的demo页面体验一下. peachananr / onepage-scroll Create an Apple-like one page scroller website (iPho

每周前端开源推荐第二期

每周前端开源推荐第二期 strongloop/loopback LoopBack is an open source backend for your mobile apps. Connect to multiple data sources, write business logic in Node.js, auto-generate iOS & Android SDKs. http://docs.strongloop.com/loopback LoopBack是一个可自行部署的BaaS,类似

【开源推荐】微信小程序&公众号商城管理系统

源码地址:下载地址 功能简介: 1.商品:?能够对商品的状态分类管理 (出售中.待上架.库存中.已售馨.库存警戒.回收站).添加产品.添加商品分类,第三方导入等功能 2.会员:站内会员的管理 (发放优惠劵.发通知.发图文消息.增加余额.会员行为详情).站内通知 .微信端用户管理 (微信用 户的管理.分组.行为观察.添加标签) .会员等级对应折扣等功能 3.营销:优惠券.拼团.秒杀.砍价等营销方案 4.财务:能够对用户的消费.充值.返佣.提现的记录 5.订单:能够完成用户的订单管理(发货.订单详情

开源GIS软件 2

Android上的导航软件 AndNav AndNav 是一款 Android 手机上的 GPS导航软件(非开源).软件支持GPS定位信息,目的地查询,道路建议管理,导航提示等功能,十分强大的一款软件. 开源WebGIS项目 UMN MapServer MapServer,它是美国明尼苏达大学 (University of Minnesota, 简称 UMN)在二十世纪90 年代利用 C语言开发的开源 WebGIS项目. [MapServer简介] 它起源于 UMN和美国国家航空航天局的合作项目

Python六大开源框架对比:Web2py略胜一筹

http://www.csdn.net/article/2013-08-08/2816494-6-pillars-of-python-assessment-of-best-python-web-frameworks 2.Web2py Web2py是一个用Python语言编写的免费的开源Web框架,旨在敏捷快速的开发Web应用,具有快速.可扩展.安全以及可移植的数据库驱动的应用,遵循LGPLv3开源协议. Web2py提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了Web版的在线开发

开源的推荐系统

我收集和整理的目前互联网上所能找到的知名开源推荐系统(open source project for recommendation system),并附上了个人的一些简单点评(未必全面准确), 这方面的中文资料很少见,希望对国内的朋友了解掌握推荐系统有帮助 陈运文 SVDFeature 由上海交大的同学开发的,C++语言,代码质量很高 .去年我们参加KDD竞赛时用过,非常好用,而且出自咱们国人之手,所以置顶推荐! 项目地址: http://svdfeature.apexlab.org/wiki/

详解下一代开源混合应用框架Reapp(转)

http://www.iteye.com/news/30269 官网:http://reapp.io/ [开源推荐]Facebook开源的JavaScript库:React http://www.csdn.net/article/2013-05-30/2815488-React React一些翻译 http://cdjs.sinaapp.com/?cat=3