经典的机器学习方面源代码库(非常全,数据挖掘,计算机视觉,模式识别,信息检索相关领域都适用的了)

编程语言:搞实验个人认为当然matlab最灵活了(但是正版很贵),但是更为前途的是python(numpy+scipy+matplotlib)和C/C++,这样组合既可搞研究,也可搞商业开发,易用性不比matlab差,功能组合更为强大,个人认为,当然R和java也不错.

1.机器学习开源软件网(收录了各种机器学习的各种编程语言学术与商业的开源软件)

http://mloss.org

2偶尔找到的机器学习资源网:(也非常全,1和2基本收录了所有ML的经典开源软件了)

http://www.dmoz.org/Computers/Artificial_Intelligence/Machine_Learning/Software/

3libsvm(支持向量机界最牛的,不用多说了,台湾大学的林教授的杰作)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

4WEKA(基于java的机器学习算法最全面最易用的开源软件)

http://www.cs.waikato.ac.nz/ml/weka/

5scikit(本人最喜欢的一个基于python的机器学习软件,代码写得非常好,而且官方的文档非常全,所有都有例子,算法也齐全,开发也活跃
,强烈推荐给大家用)

http://scikit-learn.org/stable/

6OpenCv(最牛的开源计算机视觉库了,前途无可限量,做图像处理与模式识别的一定要用,总不能整天抱着matlab做实验和工业界脱节吧,但是有一定难度)

http://opencv.willowgarage.com/wiki/

7Orange(基于c++和python接口的机器学习软件,界面漂亮,调用方便,可以同时学习C++和python,还有可视化的功能,)

http://orange.biolab.si/

8Mallet(基于JAVA实现的机器学习库,主要用于自然语言处理方面,特色是马尔可夫模型和随机域做得好,可和WEKA互补)

http://mallet.cs.umass.edu/

9NLTK(PYTHON的自然处理开源库,非常易用,也强大,还有几本orelly的经典教程)

http://nltk.org/

10lucene(基于java的包括nutch,solr,hadoop,mahout等全套,是做信息检索和搜索引擎的同志们必学的开源软件了,学JAVA的必学)

http://lucene.apache.org/

1.MG4J-ManagingGigabytesforJava

818137ee-0209-36a6-9d67-b3302273f56a.jpg
MG4J可以让你通过内插编码(interpolativecoding)技术,为大量的文档集合构建一个被压缩的全文本索引。与Lucene主要区别是,它提供了cluster功能,具有更OO的设计方式。虽然MG4J不是一个像Lucene、Egothor和Xapian那样的信息检索库,但是相信每一位搜索工程师都应该知道它,因为它对构建Java信息检索库提供了低水平的支持。MG4J是在一本很流行的书问世之后被命名的,这本书是由H.Witten,AlistairMoffat和Timothy所写,名字是《管理十亿字节:压缩并且索引文档和图片》。在使用他们的分布式、可容错的网页爬虫UbiCrawler收集到大量的网页数据后,它的作者需要一个软件来解析那些收集来的数据,由于这个需求,MG4J诞生了。MG4J的库提供了优化的类来处理I/O,转化索引文件的压缩等等。

2.Terrier-InformationRetrievalPlatform
bc3d4be8-47d4-3962-8a47-fd7184cf8e6d.jpg
Terrier是一个高度灵活,高效的开源搜索引擎,易于部署在大型的文件集合。Terrier实现非常优秀的索引和搜索功能,为开发大型检索应用程序提供了一个理想的平台。它支持多索引策略比如:multi-pass、single-pass和大型MapReduce索引。

3.Lemur-SearchEngine

6de4912d-3aea-3f8f-b160-51d5642ffe76.jpg
Lemur(狐猴)系统是CMU和UMass联合推出的一个用于自然语言模型和信息检索研究的系统。在这个系统上可以实现基于自然语言模型和传统的向量空间模型以及Okapi的adhoc或者分布式检索,可以使用结构化查询、跨语言检索、过滤、聚类等。

Lemur可以在Windows或者Unix环境下使用,因此我们可以直接在Windows下使用Lemur。但是Lemur提供了shellscript文件来演示完整的使用lemur进行检索的过程,所以在Windows下需要安装cygwin来模拟Unix环境。Lemur还提供了一个GUI程序以及用户交互的界面的CGI,Java程序可以直接看到检索的结果,需要安装Java虚拟机,CGI程序需要Perl的解释器。

4.Xapian-SearchEngineLibrary
e86920dc-8023-3b9d-ad48-2d774e4bec24.jpg
Xapian由C++编写,但可以绑定到Perl、Python、PHP、Java、Tcl、C#和Ruby甚至更多的语言。Xapian可以说是STL编程的典范,在这里您可以找到熟悉的引用计数型智能指针、容器和迭代器,甚至连命名也跟STL相似,相信一定能引起喜好C++和STL的你的共鸣(实际上,很少C++程序员完全不使用STL)。

由于Xapian使用的是STL和C运行时库,因此具有高度可移值性,官方说法是可以运行在Linux、MacOSX、FreeBSD、NetBSD、OpenBSD、Solaris、HP-UX、Tru64和IRIX,甚至其它的Unix平台,在Windows上也跑得很好。当然,并不能像Java那样“一次编译,到处可以运行”,当移植到其它平台时,一般来说是需要重新编译的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章