日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

open source project for recommendation system

發布時間:2023/12/31 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 open source project for recommendation system 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:http://blog.csdn.net/cserchen/article/details/14231153

目前互聯網上所能找到的知名開源推薦系統(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了)


總結

以上是生活随笔為你收集整理的open source project for recommendation system的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。