推荐系统开源软件列表汇总和点评(转载)

我收集和整理的目前互联网上所能找到的知名开源推荐系统(open source project for recommendation system),并附上了个人的一些简单点评(未必全面准确),

这方面的中文资料很少见,希望对国内的朋友了解掌握推荐系统有帮助

陈运文

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(随即梯度下降)优化方法精度要高(当然也会慢一些)

顺便八卦下,去年KDD会议上和Steffen当面聊过,他很腼腆而且喜欢偷笑,呵呵挺可爱。

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://blog.csdn.net/cserchen/article/details/14231153#tc_qz_original=691102124

时间: 2024-10-03 21:01:59

推荐系统开源软件列表汇总和点评(转载)的相关文章

干货阿里巴巴 开源软件列表

阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分.有很多重量级的项目,例如LVS.Tengine,或者很有实践价值的中间件,今天小编为大家汇总了阿里开源的项目,快来看看吧! 服务框架 Dubbo Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. JDBC连接池.监控组件 Druid Druid是一个JDBC组件,它包括三部分: 代理Driver,能够提供基于Filter-Chain模式的插

开源软件选型分析标准【转载】

http://wenku.baidu.com/view/0f4acf88cc22bcd126ff0ca2.html?re=view 1 标准和目标 1.1前言目前开源的网管软件众多,时间关系只能通过网络上的资料介绍和其他用户的体验进行评估.对于重点调查的开源软件通过运行环境搭建.开发环境搭建的方法进行实践.如果只是对通用网络设备的管理,被调研的软件只要经过适当的配置就可以满足要求. 对于我们的需求,这些软件不能满足我们100%的需求,必须进行二次开发,对软件二次研发的接口的调研就成为我们考察软件

阿里巴巴 开源软件列表

服务框架 Dubbo Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. JDBC连接池.监控组件 DruidDruid是一个JDBC组件,它包括三部分: 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource 高效可管理的数据库连接池. SQLParser Java的JSON处理器 fastjson fastjson 是一个性能很好的 Java 语

开源中国的 IT 公司开源软件整理计划介绍

为了方便大家检索开源软件,促进开源在中国的进一步发展,开源中国从去年年底就开始在整理 IT 公司或者组织的开源软件列表.目前已经有一个初步的列表,但很多公司的软件列表还不完善,也可能会因为归属问题有一些争议,欢迎大家给我们提出纠正和改进的意见和建议. 此外如果贵公司开源软件数量较多,希望我们为贵公司制作一个列表,请随时与我们联系. 下面是目前已经整理的一些列表: Apache 基金会: http://www.oschina.net/project/apacheJBoss: http://www.

[转]开源中国的 IT 公司开源软件整理计划介绍

http://www.oschina.net/news/61534/oschina-opensource-collection-plan-for-it-companies 为了方便大家检索开源软件,促进开源在中国的进一步发展,开源中国从去年年底就开始在整理 IT 公司或者组织的开源软件列表.目前已经有一个初步的列表,但很多公司的软件列表还不完善,也可能会因为归属问题有一些争议,欢迎大家给我们提出纠正和改进的意见和建议. 此外如果贵公司开源软件数量较多,希望我们为贵公司制作一个列表,请随时与我们联

开源中国 2014 最受关注开源软件排行榜 TOP 50

开源中国 2014 最受关注开源软件排行榜 TOP 50 开源中国 2014 年最受关注软件排行榜 TOP 50 正式出炉!2014 年结束了,我们来了解一下过去一年里开源中国最受欢迎的 50 款软件.此榜单是根据过去一年的用户访问.交流分享和项目本身的更新频度等诸多角度对收录于开源中国 33000+ 款开源软件进行统计,从而得出前 50 名最受欢迎的开源软件,仅供参考. 本排行榜主要是针对开源中国社区在 2014 年度最受欢迎的 50 款热门开源项目根据用户访问量.讨论和关注等角度进行筛选,从

国内外php主流开源cms、商城、点评、SNS、DIGG、RSS、分类信息、Wiki汇总

网上商城源代码 源码之家- www.mycodes.net 酷网动力 www.aspcool.com 源码联盟 www.aspsun.com 源码天下 www.pccode.net http://blog.chinaunix.net/space.php?uid=20787846&do=blog&id=1842324      2009年快完了,今年国内PHP开源CMS内容管理系统从程序框架,模版加载到程序功能上都有很大的进步,大部分都采用了自定义模块,自定义模型的方式,同时提供各个CMS都

用开源软件建垂直搜索引擎 转载 http://news.cnblogs.com/n/60041/

用Solr.Nutch等开源软件来构建电子元器件垂直搜索引擎涉及很多实现细节,本文结合实际应用系统对数据采集.中文搜索.结果输出.分页处理.整合数据库等重点问题提出了切实可行的解决方法. 用开源软件建垂直搜索引擎 ■ 董娅 周峻松 针对搜索引擎的各种开源技术是开源社区的一枝奇葩,它大大缩短了构建搜索应用的周期,并使得根据特定需求打造个性化应用的垂直搜索引擎系统成为可能.作为一个独立的企业搜索应用解决方案,Solr在美国的众多知名网站中得到应用,如美国最大的科技资讯类网站CNet.Solr基于高性

GitHub上史上最全的Android开源项目分类汇总

今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫的界面特效设计.个性化控件.工具库.优秀的Android开源项目.开发测试工具.优秀个人和团体等.可以这样说,每一位Andorid开发人员都能从中找到一个或多个适用自己项目的解决方案,消化吸收并加以利用,可以为自己的APP增色不少.文章最后还列出了部分国外著名Android开发者的信息,包括GitHub地址