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