机器学习相关资源

1、 引言

在机器学习相关领域研究中,不可避免的要涉及各类各样的算法,包括数据预处理、算法模型生成、算法模型集成、算法评估等。对于研究人员而言,每个算法都亲力亲为实现几乎是不可能的,并且会形成很是巨大的时间浪费。java

此外,在算法实验中,数据自己占据着很是重要的地位,在公认的数据集上取得较好的实验效果,是研究成果获得认可的前提之一。c++

基于以上的两点缘由,本文对目前可使用的主要机器学习工具包以及数据集进行整理,做为以后研究的基础。算法

必须说明的是,本文整理的内容必然有失完整,后续期待着进一步的完善。机器学习

 

2、 必备的经典工具包
2.1 MATLAB

毫无疑问,MATLAB是机器学习算法研究中最为核心的工具,其中包含的大量函数、算法能够为研究工做提供极大的便利。ide

MATLAB的语法很是简洁,最大程度上下降了传统通用程序设计语言由于严谨性致使的额外工做量。函数

MATLAB能够在m文件的层面以及jar文件(JAVA语言)的层面上与其余机器学习相关工具包很是简便的集成。不只不少机器学习工具包基于MATLAB开发,不少基于JAVA开发的工具包也能够用于MATLAB(例如Weka)。工具

MATLAB的另外一个良好特性是跨平台,最新的R2012版本在Linux上的安装已经顺利完成(Ubuntu 12.04 LTS),这样可使用基于Linux平台的MATLAB补充工具包。学习

2.2 Weka

Weka[1]是新西兰怀卡托大学开发的一个基于Java的开源机器学习和数据挖掘平台。Weka提供了大量的算法实现,不只能够在其提供的GUI上进行各类实验,也能够利用JAVA接口在MATLAB等工具中直接调用Weka的功能。由于Weka是开源软件,因此直接修改其JAVA实现以进行算法的微调也是可能的。测试

 

3、 独立的算法平台
3.1 KEEL

KEEL最初被设计为一种专一于进化算法的算法平台,可是如今的KEEL已经涵盖了机器学习了领域的各类算法,其算法的完整程度与Weka不相上下。网站

KEEL也是JAVA实现的开源软件。

3.2 AlphaMiner

AlphaMiner是香港大学开发的一种开源数据挖掘平台,不管是GUI界面和定位都比较相似Weka

3.3 Elefant

Elefant是一种支持多语言和多平台的机器学习开发包,它的GUI界面具备本身的特点。

目前对于Elefant的了解并很少,其核心多是用Python实现的。

 

4、 基于MATLAB的补充工具包
4.1 PRToolsdd_tools

PRTools[2]dd_tools[3]是荷兰代夫特技术大学R.P.W Duin大牛领衔开发的基于MATLAB的模式识别和单类分类器工具包。其使用较为简洁,数据可视化的部分比较有特色,针对二维数据能够方便的绘制分类器的决策边界等。

4.2 Spider

Spider是基于MATLAB的很是著名的机器学习工具包,提供了较多的功能而且能够与Weka协同工做。惟一比较明显的问题是Spider已经中止更新多年。

 

5、 其余工具包
5.1 R

R是与MATLAB其名的科学计算平台,因为MATLAB过于昂贵(彷佛和咱们无关……),R的相关补充包也很是丰富。尤为在统计学领域,R的被承认程度是最高的。

5.2 LibSVM

LibSVM是支持向量机领域最重要的工具包,由台湾大学林智仁教授带队开发。几乎全部的支持向量机相关研究(包括单类分类SVM等相关研究)都会使用LibSVM

5.3 Shogun

这个能够支持包括C++MATLABRPython等等接口的开源工具包能够说是机器学习领域的后起之秀,尤为是在参与了googleSummer of Code计划以后,其发展获得了较大的推进。

Shogun的数据可视化功能具备本身的特点,并且能够有效支持Linux。可是因为是社区型开源软件,因此可能缺少足够的测试。

此外,这个数据集既不是中国人开发的,也不是日本人开发的。

5.4 Orange

Orange是一个基于Python的开源数据分析平台。提供了包括GUI和库在内的完整支持,其核心是Python脚本。

5.5 JavaML

JavaML是一个纯java的机器学习库。

5.6 mlpack

JavaML是一个纯c++的机器学习库。

 

6、 数据集来源
6.1 UCI数据集

毫无疑问,UCI数据集的影响力是最大的,在大多数的机器学习研究论文中,实际上只用到UCI数据。

6.2 StatLib

虽然知名度并不高,可是StatLib做为卡耐基梅隆大学统计学社区,也维护了数量可观的来自实际问题的数据集。

6.3 数据堂

总感受后台很硬的网站,能够获得更多接近中国实际状况的数据。

6.4 KEEL

参见3.1节,KEEL整理了不少现有的数据集,虽然并非其自己提供,可是KEEL对数据的归类整理能够为咱们节省大量的时间。

 

7、 索引

MLOSS维护了数百个开源机器学习项目的更新等信息,能够从MLOSS上了解当前各个开源机器学习项目的现状,或寻找适合具体需求的软件。

相关文章
相关标签/搜索