Python 已经成为数学、科学和统计方面的首选编程语言,因为它易于采用,而且几乎任何应用程序都可以使用这些库。scikit- learn 通过在几个现有的 Python 包——numpy、SciPy 和 matplotlib——上构建数学和科学工作,利用了这一广度。生成的库可以用于交互式的 "工作台" 应用程序,或者嵌入到其他软件中并重新使用。该工具包在 BSD 许可下可用,因此它是完全开放和可重用的。
Project: scikit-learn
GitHub: https://github.com/scikit-learn/scikit-learn
尊敬的 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 是之前一个项目的扩展,协议包括一组用于处理音频信号和图像流的库 (如视频)。它的视觉处理算法可以用于人脸检测、拼接图像或追踪移动对象等任务。协议还包括提供更传统的机器学习功能的库,从神经网络到决策树系统。
Project:Accord.Net Framework
GitHub: https://github.com/accord-net/framework/
Apache Mahout 长期以来与 Hadoop 捆绑在一起,但它旗下的许多算法也可以在 Hadoop 之外运行。它们对于独立应用程序非常有用,这些应用程序最终可能会迁移到 Hadoop 或 Hadoop 项目中,这些项目可能会被拆分为独立的应用程序。最后几个版本增强了对高 perfomance Spark 框架的支持,并增加了对 GPU 加速线性代数的 ViennaCL 库的支持。
Project:Apache Mahout
官网: https://mahout.apache.org/
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 可以以独立的方式与 HDFS 存储、在 YARN、MapReduce 中,或者直接在 Amazon EC2 实例中交互。Hadoop mavens 可以使用 Java 与 H2O 进行交互,但该框架还为 Python、R 和 Scala 提供了绑定,允许您与这些平台上的所有库交互。
Project:H2O
GitHub: https://github.com/0xdata/h2o
Oryx 是 Cloudera Hadoop 发行版的创建者,它使用 Spark 和 Kafka 流处理框架来运行实时数据的机器学习模型。Oryx 提供了一种方法来构建需要决策的项目,比如推荐引擎或实时异常检测,这些都是由新的和历史数据提供的。版本 2.0 是对项目的近乎完全的重新设计,其组件在 lambda 体系结构中松散耦合。新的算法,以及这些算法的新抽象,对于超参数选择,可以随时添加。
Project:Cloudera Oryx
GitHub: https://github.com/cloudera/oryx
据开发人员斯蒂芬 · 惠特沃斯 (Stephen Whitworth) 说,GoLearn 是一个为谷歌的 Go 语言学习的机器学习库,它的目标是简单和可定制。它的简单性在于数据在库中加载和处理的方式,这种方式是在 SciPy 和 R 语言之后进行的,而定制的功能在于如何在应用程序中轻松地扩展某些数据结构。惠特沃斯还为 Vowpal Wabbit 库创建了一个 Go 包装器,这是在 Shogun 工具箱中发现的一个库。
Project:GoLearn
GitHub: https://github.com/sjwhitworth/golearn
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/
在 web 浏览器中深度学习的另一个项目,Deeplearn.js,通过谷歌来实现。神经网络模型可以直接在任何现代浏览器中进行训练,而不需要额外的客户端软件。Deeplearn.js 还可以通过 WebGL API 进行 gpu 加速计算,因此性能并不局限于系统的 CPU。项目中可用的函数是在谷歌的 TensorFlow 之后形成的,这使得该项目的用户可以轻松地开始使用这个项目。
Project:Deeplearn.js
官网: https://pair-code.github.io/deeplearnjs/
顾名思义,ConvNetJS 是一个用于神经网络机器学习的 JavaScript 库,便于使用浏览器作为数据工作台。对于使用节点的用户,也可以使用 NPM 版本。js 和库的设计是为了正确使用 JavaScript 的异步性。例如,培训操作一旦完成就可以执行回调。还包括了大量的演示示例。
Project:ConvNetJS
GitHub: https://github.com/karpathy/convnetjs
原 文: 11 open source tools to make the most of machine learning
来源: http://igeekbar.com/igeekbar/post/831.htm