关于机器学习的11个开源工具
翻译:疯狂的技术宅
英文标题:11 open source tools to make the most of machine learning
英文连接:https://www.infoworld.com/art...
本文首发于微信公众号:充实的脑洞
使用这些多样化、易于实现的库和框架,挖掘机器学习的预测能力
垃圾邮件过滤,人脸识别,推荐引擎 —— 当你有一个需要执行预测分析或模式识别的大型数据集时,机器学习是一条途径。 免费开源软件的激增使机器学习更容易在单机和大规模集群上实现,并支持大多数流行的编程语言。这11个开源工具使用的语言包括Python,R,C ++,Java, Scala,Clojure,JavaScript和Go。
1、Scikit-learn
Python因为它的易用性,已经成为一种用于数学、科学和统计的编程语言,而且几乎任何程序都可以使用这些库。Scikit-learn 通过在几个现有的 python 包( NumPy, SciPy 和 Matplotlib )可以被广泛用于数学和科学工作。它可以被用在交互式“工作台”程序中,也可以嵌入到其他软件中并被重用。该工具包在BSD许可证下提供,因此它是完全开放和可重用的。
Project: http://scikit-learn.org/stable/
GitHub: https://github.com/scikit-lea...
2、Shogun
著名的Shogun创建于1999年,尽管它是用C++编写的,但可以与Java,Python,C#,Ruby,R,Lua,Octave和Matlab一起使用。最新版本 6.0.0 增加了对Microsoft Windows和Scala语言的本地支持。
虽然广受欢迎,但是 Shogun 仍受到来自另外一个基于C++的机器学习库的竞争:2011年出现的Mlpack。但是Shogun仍然自称是比其他竞争者更快更易用的(通过一个更完整的API集)。
Project: http://www.shogun-toolbox.org/
GitHub: https://github.com/shogun-too...
3、Accord.Net Framework
Accord是一个机器学习和信号处理框架,基于.Net编写,是以前的项目AForge.net的延伸,Accord包括一组用于处理音频信号和图像流(例如视频)的库。其视觉处理算法可用于脸部识别,拼接图像或跟踪移动物体等任务。
Accord还提供更传统的机器学习功能的库,包括神经网络和决策树系统。
Project: http://accord-framework.net/
GitHub: https://github.com/accord-net...
4、Apache Mahout
Apache Mahout长期以来一直被绑定到Hadoop,但是其中的许多算法也可以脱离 Hadoop 运行。 这对可能最终迁移到 Hadoop 项目中的独立应用非常有用,这些项目最终可能会被剥离到自己的独立应用中。最后几个版本加强了对高性能 Spark 框架的支持,并增加了对用于 GPU 加速的 ViennaCL 库的支持。
Project: https://mahout.apache.org/
5、Spark MLlib
Apache Spark 和 Apache Hadoop 的机器学习库。MLLib拥有许多最新的常用算法和有用的数据类型,为速度和大规模运行需求所设计。虽然 Java 是 MLLib 的主要工作语言,但 Python 用户可以将 MLLib 与 Numpy 库整合,Scala用户可以编写针对MLLib的代码,而R用户可以嵌入到在 Spark 1.5 之后的版本中。
在MLLib的基础之上构建的项目MLbase可以更容易得到结果。 用户无需编写代码,只需要通过声明语言(à la SQL)进行查询。
Project: https://spark.apache.org/mllib/
6、H2O
H2O的算法针对业务流程(例如欺诈或趋势预测)而不是图像分析。H2O能够以独立的方式与HDFS、YARN、MapReduce或者直接在Amazon EC2实例进行交互。Hadoop专家可以使用Java与H2O交互,该框架还提供了Python、R 和 Scala 的绑定方式,允许你与这些平台上的所有库进行交互。
Project: http://0xdata.com/h2o/
GitHub: https://github.com/0xdata/h2o
7、Cloudera Oryx
Oryx,由 Cloudera Hadoop distribution 的创始人提供,通过Spark和Kafka流处理框架来运行机器学习模型中的实时数据。Oryx 提供了一种需要在当下做出决定的项目构建方法,如推荐引擎或实时异常检测。 2.0版本做了近乎完整的重新设计,其组件在 lambda 体系结构下进行松散耦合。可以随时添加新算法以及这些算法的新的抽象 (例如 hyperparameter 选择器),。
Project: Cloudera Oryx
GitHub: https://github.com/cloudera/oryx
8、GoLearn
GoLearn 是一个由Go语言编写的机器学习库, 根据开发者 Stephen Whitworth 的研究, 它以简洁性和可定制性为目标。简洁性在于在库中加载和处理数据的方式, 这点模仿了 SciPy 和 R 。可定制性在于如何在应用程序中轻松扩展某些数据结构。Stephen Whitworth 还为 Vowpal Wabbit 库创建了一个gGo包装器,它可以在Shogun工具箱中找到。
Project: GoLearn
GitHub: https://github.com/sjwhitwort...
9、Weka
Weka是专门为数据挖掘而设计的一套Java机器学习算法。它有一个包系统用来扩展功能,被包含在官方和非官方包中。 Weka甚至提供了一本书来解释这个软件及其所使用的技术。
虽然 Weka 不是专门针对 Hadoop 用户的,但最近的版本提供了一组包装器使其可以与 Hadoop 一起使用。 请注意,Weka尚不支持 Spark,目前只支持 MapReduce。 Clojure 用户可以通过Clj-ml库来使用Weka。
Project: http://www.cs.waikato.ac.nz/m...
10、Deeplearn.js
在web浏览器中进行深度学习的另一个项目是deeplearn.js,它来自Google。你可以在任何现代浏览器中直接训练神经网络模型,而无需额外的客户端软件。deeplearn.js还可以通过web GLAPI进行GPU加速,因此性能不受限于系统的CPU。该项目的函数模仿了Google 的TensorFlow,使得TensorFlow的用户可以轻松地开始使用。
Project: https://pair-code.github.io/d...
11、ConvNetJS
顾名思义,ConvNetJS是用于神经网络机器学习的JavaScript库,便于将浏览器用作数据工作台。 对于使用Node.js的用户,还可以使用NPM版本,该库的设计使用了JavaScript的异步操作。例如,训练完成后执行一个回调。它包括了大量演示示例。
Project: http://cs.stanford.edu/people...
GitHub: https://github.com/karpathy/c...
关注微信公众号:充实的脑洞, 一个技术宅的保留地 | |
---|---|
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。