充分利用机器学习的十一个开源工具

垃圾邮件过滤、面部识别、推荐引擎——当你有一个大数据集,你想要进行预测分析或模式识别时,机器学习是一种方法。自由开源软件的普及使得机器学习更容易在单台机器和规模上实现,并且在大多数流行的编程语言中也能实现。这11个开源工具包括了Python、R、c++、Java、Scala、Clojure、JavaScript和Go等的库。

 

 

 


 

Scikit-learn

Python已经成为数学、科学和统计方面的首选编程语言,因为它易于采用,而且几乎任何应用程序都可以使用这些库。scikit- learn通过在几个现有的Python包——numpy、SciPy和matplotlib——上构建数学和科学工作,利用了这一广度。生成的库可以用于交互式的“工作台”应用程序,或者嵌入到其他软件中并重新使用。该工具包在BSD许可下可用,因此它是完全开放和可重用的。

Project: scikit-learn

GitHub:https://github.com/scikit-learn/scikit-learn

 

Shogun(幕府)

尊敬的Shogun创建于1999年,并以c++编写,但可以使用Java、Python、c#、Ruby、R、Lua、Octave和Matlab。最新的版本是6.0.0,增加了对Microsoft Windows和Scala语言的本机支持。虽然广受欢迎,但Shogun却有竞争。另一个基于c++的机器学习库MLpack,自2011年以来就一直在使用,但是它声称比竞争库更容易使用(通过更完整的API集)。

Project:Shogun

GitHub:https://github.com/shogun-toolbox/shogun

 

Accord.Net Framework

Accord,机器学习和信号处理框架。.Net是之前一个项目的扩展,协议包括一组用于处理音频信号和图像流的库(如视频)。它的视觉处理算法可以用于人脸检测、拼接图像或追踪移动对象等任务。协议还包括提供更传统的机器学习功能的库,从神经网络到决策树系统。

Project:Accord.Net Framework

GitHub:https://github.com/accord-net/framework/

 

Apache Mahout

Apache Mahout长期以来与Hadoop捆绑在一起,但它旗下的许多算法也可以在Hadoop之外运行。它们对于独立应用程序非常有用,这些应用程序最终可能会迁移到Hadoop或Hadoop项目中,这些项目可能会被拆分为独立的应用程序。最后几个版本增强了对高perfomance Spark框架的支持,并增加了对GPU加速线性代数的ViennaCL库的支持。

Project:Apache Mahout

官网:https://mahout.apache.org/

 

Spark MLlib

MLlib是Apache Spark和Apache Hadoop的机器学习库,它拥有许多常见的算法和有用的数据类型,设计以速度和规模运行。尽管Java是在MLlib工作的主要语言,Python用户可以将MLlib与NumPy库连接起来,Scala用户可以编写针对MLlib的代码,并且R用户可以在1.5版中插入Spark。另一个项目,MLbase,建立在MLlib之上,使其更容易获得结果。用户不需要编写代码,而是通过一种声明式语言à la来进行查询。

Project:Spark MLlib

官网:https://spark.apache.org/mllib/

 

H2O

H2O的算法主要针对业务流程——比如欺诈或趋势预测——而不是图像分析。H2O可以以独立的方式与HDFS存储、在YARN、MapReduce中,或者直接在Amazon EC2实例中交互。Hadoop mavens可以使用Java与H2O进行交互,但该框架还为Python、R和Scala提供了绑定,允许您与这些平台上的所有库交互。

Project:H2O

GitHub:https://github.com/0xdata/h2o

 

Cloudera Oryx

Oryx是Cloudera Hadoop发行版的创建者,它使用Spark和Kafka流处理框架来运行实时数据的机器学习模型。Oryx提供了一种方法来构建需要决策的项目,比如推荐引擎或实时异常检测,这些都是由新的和历史数据提供的。版本2.0是对项目的近乎完全的重新设计,其组件在lambda体系结构中松散耦合。新的算法,以及这些算法的新抽象,对于超参数选择,可以随时添加。

Project:Cloudera Oryx

GitHub:https://github.com/cloudera/oryx

 

GoLearn

据开发人员斯蒂芬·惠特沃斯(Stephen Whitworth)说,GoLearn是一个为谷歌的Go语言学习的机器学习库,它的目标是简单和可定制。它的简单性在于数据在库中加载和处理的方式,这种方式是在SciPy和R语言之后进行的,而定制的功能在于如何在应用程序中轻松地扩展某些数据结构。惠特沃斯还为Vowpal Wabbit库创建了一个Go包装器,这是在Shogun工具箱中发现的一个库。

Project:GoLearn

GitHub:https://github.com/sjwhitworth/golearn

 

Weka

Weka是一组专门用于数据挖掘的Java机器学习算法。这个GNU gplv3许可的集合有一个包系统来扩展它的功能,包括官方的和非官方的软件包。Weka甚至还带了一本书来解释软件和使用的技术。虽然Weka并没有专门针对Hadoop用户,但由于一组包装器,最新的版本可以与Hadoop一起使用。注意,Weka还不支持Spark,只有MapReduce。Clojure用户可以通过clj - ml库利用Weka。

Project:Weka

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

 

Deeplearn.js

在web浏览器中深度学习的另一个项目,Deeplearn.js,通过谷歌来实现。神经网络模型可以直接在任何现代浏览器中进行训练,而不需要额外的客户端软件。Deeplearn.js还可以通过WebGL API进行gpu加速计算,因此性能并不局限于系统的CPU。项目中可用的函数是在谷歌的TensorFlow之后形成的,这使得该项目的用户可以轻松地开始使用这个项目。

Project:Deeplearn.js

官网:https://pair-code.github.io/deeplearnjs/

 

ConvNetJS

顾名思义,ConvNetJS是一个用于神经网络机器学习的JavaScript库,便于使用浏览器作为数据工作台。对于使用节点的用户,也可以使用NPM版本。js和库的设计是为了正确使用JavaScript的异步性。例如,培训操作一旦完成就可以执行回调。还包括了大量的演示示例。

Project:ConvNetJS

GitHub:https://github.com/karpathy/convnetjs

 

 

原    文:  11 open source tools to make the most of machine learning

你可能感兴趣的:(充分利用机器学习的十一个开源工具)