ApacheMahout(TM)是一个分布式线性代数框架,具有数学表达力的ScalaDSL,旨在让数学家,统计学家和数据科学家快速实现自己的算法。建议使用ApacheSpark开箱即用的分布式后端,也可以将其扩展到其他分布式后端。
Mahout是Hadoop大数据平台上的开源机器学习软件包。Mahout提供了在大规模集群上对大数据进行深度分析的能力。主流的数据挖掘和机器学习算法不断在Mahout平台上实现,包括聚类、分类、协同过滤(CollaborativeFiltering,用于推荐)以及频繁集挖掘等众多的算法。
早期版本的Mahout使用MapReduce计算模型实现机器学习和数据挖掘算法。由于MapReduce计算模型固有的局限性(在Stage之间和Job之间,中间结果经过磁盘进行传递),这些算法的执行效率不高。2014年Mahout社区决定把Mahout代码迁移到其他更高性能的大数据平台上运行,包括Spark和H2O。Mahout不再接受使用MapReduce编程模型实现的代码,原先已经用MapReduce模型实现的代码仍然保留,并且由Mahout社区提供维护和支持。
迁移到Spark平台的原因是Spark提供了更加灵活的编程模型和更加高性能的执行引擎。针对Spark平台开发的机器学习算法,可以充分利用Spark的内存数据处理能力,提高机器学习算法的执行效率。Mahout经过改写以后,成为一个更加通用的软件包,并不依赖于Spark,也可以运行在其他底层大数据处理系统上,比如H2O。H2O是由初创公司Oxdata开发的内存数据处理引擎,用于从HDFS上加载数据集,执行各种机器学习和统计分析算法。Mahout和Spark平台上的MLlib都是机器学习软件包,某种程度上提供了重复的功能,但是有选择对用户来讲终究是一件好事。
可在Java,Scala,Python和R中使用。
高质量算法,比MapReduce快100倍。
Spark擅长于迭代计算,从而使MLlib快速运行。同时,我们关心算法性能:MLlib包含利用迭代的高质量算法,并且比有时在MapReduce上使用的单遍逼近可以产生更好的结果。
Spark可针对各种数据源在Hadoop,ApacheMesos,Kubernetes上独立运行或在云中运行。
您可以在EC2,HadoopYARN,Mesos或Kubernetes上使用其独立集群模式运行Spark。访问HDFS,ApacheCassandra,ApacheHBase,ApacheHive以及数百种其他数据源中的数据。
Weka的全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledgeAnalysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine)的,基于JAVA环境下开源的机器学习(machinelearning)以及数据挖掘(datamining)软件。它被广泛用于教学,研究和工业应用,包含用于标准机器学习任务的大量内置工具,并且可以透明地访问scikit-learn,R和Deeplearning4j等知名工具箱。它和它的源代码可在其官方网站下载。有趣的是,该软件的缩写WEKA也是新西兰独有的一种鸟名(新西兰秧鸡),而Weka的主要开发者同时恰好来自新西兰的怀卡托大学(TheUniversityofWaikato)。
WEKA可以与最流行的数据科学工具集成。
通过使用R的RWeka软件包,可以在R中使用,构建和评估Weka模型;相反,可以使用Weka的RPlugin软件包从Weka调用R算法和可视化工具。
可以使用PythonWekaWrapper从Python访问Weka的功能。相反,可以从Weka使用scikit-learn之类的Python工具包。
为了在真正的大型数据集上运行基于Weka的算法,可以使用分布式的WekaforSpark软件包。例如,它可以训练Spark中的任何Weka分类器。
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来新西兰奥克兰大学的RobertGentleman和RossIhaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。R可以看作贝尔实验室(AT&TBellLaboratories)的RickBecker,JohnChambers和AllanWilks开发的S语言的一种实现。当然,S语言也是S-Plus的基础。所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。
R软件包自2014年以来逐渐成为数据分析者的首选工具。有分析认为,全球有超过百万的分析师(包括最终用户)寻找容易使用的大数据分析工具,R软件包有可能替代商用的SAS及SPSS分析软件,成为人们的最佳选择口
TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。
TensorFlow提供多个抽象级别,因此您可以根据自己的需求选择合适的级别。您可以使用高阶KerasAPI构建和训练模型,该API让您能够轻松地开始使用TensorFlow和机器学习。
如果您需要更高的灵活性,则可以借助即刻执行环境进行快速迭代和直观的调试。对于大型机器学习训练任务,您可以使用DistributionStrategyAPI在不同的硬件配置上进行分布式训练,而无需更改模型定义。
TensorFlow始终提供直接的生产途径。不管是在服务器、边缘设备还是网络上,TensorFlow都可以助您轻松地训练和部署模型,无论您使用何种语言或平台。
如果您需要完整的生产型机器学习流水线,请使用TensorFlowExtended(TFX)。要在移动设备和边缘设备上进行推断,请使用TensorFlowLite。请使用TensorFlow.js在JavaScript环境中训练和部署模型。
TensorFlow还支持强大的附加库和模型生态系统以供您开展实验,包括RaggedTensors、TensorFlowProbability、Tensor2Tensor和BERT。