充分利用机器学习的十一个开源工具
来源:互联网 发布:淘宝服务器 编辑:程序博客网 时间:2024/06/03 14:37
垃圾邮件过滤、面部识别、推荐引擎——当你有一个大数据集,你想要进行预测分析或模式识别时,机器学习是一种方法。自由开源软件的普及使得机器学习更容易在单台机器和规模上实现,并且在大多数流行的编程语言中也能实现。这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
- 充分利用机器学习的十一个开源工具
- 机器学习笔记(十一) 机器学习系统的设计
- 系统管理:充分利用Linux的安全防护工具
- 充分利用SQLServer2005的性能工具Performance Dashboard
- 充分利用免费的网站管理员工具-seo工具
- 机器学习笔记十一:决策树
- 斯坦福机器学习笔记十一
- 机器学习十一 评估指标
- 机器学习(二十一)
- 机器学习(十一):boosting
- 机器学习(十一)机器学习系统设计的细节问题
- 充分利用SQLServer2005的性能工具Performance Dashboard(之一)
- 充分利用SQLServer2005的性能工具Performance Dashboard(之二)
- 充分利用SQLServer2005的性能工具Performance Dashboard(之三)
- 充分利用SQLServer2005的性能工具Performance Dashboard(之四)
- 机器学习的开源工具
- 机器学习的开源工具
- 机器学习的开源工具
- Failed to read artifcate descriptor for javax.servlet:jstl:jar:1.2
- 九周一次课(12月18日) 16.3 queue模块(上) 16.4 queue模块(下)
- Hello world!
- Spring学习,AOP增强类型
- 【Jedis】JedisCommand接口说明
- 充分利用机器学习的十一个开源工具
- 线程精进指南之线程池进阶
- 内核中的竞争状态和互斥(简述)
- 前端笔试题的小结(1)
- 关于error:Cannot assign to 'self' outside of a method in the init family
- Maven 私有库和本地库的安装与配置
- 新人报道
- 解决启动Tomcat时闪退的问题
- Django学习(四)表单,让数据库更强大