mahout(mahout是什么意思)

 2021-11-19 15:56    77  

首先,我们要思考Hadoop为什么会流行起来mahout?Hadoop之所以流行是因为它解决了互联网,移动互联网快速数据积累与原有传统数据分析方案无法适应的痛点。

我在《领域修炼方法-论软件架构设计的思想及其适应性》一文中曾论述过mahout,随着信息技术的不断发展,很多解决软件架构设计的具体技术已经过时或者消亡,但是,软件架构设计的模式、思想是不会过时的。Hadoop作为解决大数据分析痛点的一种具体技术同样逃脱不了这一命运。Hadoop什么时候出现的?时间要追溯到2016年1月。Spark什么时候出现的?时间是2009年。显而易见,Spark是建立在Hadoop这一巨人的肩膀之上的开拓创新,其在解决Hadoop能够解决的问题同时,肯定还能够弥补Hadoop的不足。因此,从这一点上来说,Hadoop相比于Spark不存在优势。

Hadoop与Spark相比完全没有任何优势了吗?答案是否定的。这是由于互联网特别是移动互联网mahout、物联网快速发展起来以后,数据规模成几何级的增长而且这一趋势还在持续,这一现实需求使得大数据分析仍处于上升期,因此Hadoop的发展同样处于上升期。既然Hadoop和Spark同处于上升期,那么作为首先出现的Hadoop就具有先发优势,其实际行业应用更广,体系发展的更快更完善,不足之处不断的有新的补充方案加入进来。这一点从Apache的顶级项目就可以看出来,Hadoop生态体系相关的顶级项目有近20个,而Spark相关的只有三四个。

企业的技术选型是以解决当前的业务痛点为前提的,因此,选择一个成熟完善的体系解决当前业务痛点,还是选择一个相对不够完善的方案,投入更多的资源?答案显而易见,这就是Hadoop相比于Spark的优势。

至于这一优势能否弥补Saprk架构能够解决更多数据分析场景的优势,在于企业当前端所面临的实际需求。其实大多数时候,两者相互配合是一种更完善的方案。

如何进行机器学习框架选择?

下面列举了十一种常用的机器学习框架。用框架能够减少模型定义的复杂度,提高开发效率,更好地以问题为导向。具体如何选择要考虑几个方面,首先是深度学习还是传统机器学习,如果是深度学习,则tensorflow是主流,图像这块可以考虑caffe.如果传统的用mahout即可。第二,要考虑架构,如果涉及到hadoop,可用sparkmlib,第三,看您熟悉哪种语言,不过主要还是推荐python.有些框架可以共用的,以服务形式对外输出。我在项目中就是tensonflow和pytorch共用于遥感图像识别。

1.TensorFlow是Google开发的一款开源软件库,专为深度学习或人工神经网络而设计。TensorFlow允许你可以使用流程图创建神经网络和计算模型。它是可用于深度学习的最好维护和最为流行的开源库之一。TensorFlow框架可以使用C++也可以使用Python。其他类似的基于Python的深度学习框架包括Theano,Torch,Lasagne,Blocks,MXNet,PyTorch和Caffe。你可以使用TensorBoard进行简单的可视化并查看计算流水线。其灵活的架构允许你轻松部署在不同类型的设备上。不利的一面是,TensorFlow没有符号循环,不支持分布式学习。此外,它还不支持Windows。

2. Theano

Theano是一个专为深度学习而设计的Python库。你可以使用该工具定义和评估数学表达式,包括多维数组。针对GPU进行了优化,该工具具有与NumPy集成,动态C代码生成和符号区分等功能。但是,为了获得高度的抽象,该工具必须与Keras,Lasagne和Blocks等其他库一起使用。Theano支持Linux,Mac

OS X和Windows等平台。

3.Torch

Torch是一款针对ML算法且又简单易用的开源计算框架。该工具提供了高效的GPU支持,N维数组,数值优化例程,线性代数例程以及用于索引、切片和置换的例程。基于Lua的脚本语言,该工具带有大量预先训练好的模型。这款灵活高效的ML研究工具支持诸如Linux,Android,Mac OS X,iOS和Windows等主流平台。

4.Caffe

Caffe是一款深受欢迎的用于构建应用程序的深度学习工具。该工具是贾扬清在加州大学伯克利分校读博士期间为他的一个项目而创建的,具有良好的Matlab

/ C ++ / Python界面。该工具允许你在不编写代码的情况下使用文本快速将神经网络应用于问题。Caffe不完全地支持多GPU训练。该工具支持Ubuntu,Mac OS X和Windows等操作系统。

5.Microsoft CNTK

Microsoft Cognitive Toolkit是具有C#/C++/Python接口支持的最快的深度学习框架之一。此款开源框架带有强大的C++

API,比TensorFlow更快、更准确。该工具还支持内置数据读取器的分布式学习。它支持诸如前馈,CNN,RNN,LSTM和序列到序列等算法。该工具支持Windows和Linux。

6.Keras

用Python编写的Keras是一个开源库,旨在简化新DL模型的创建。这种高级神经网络API可以在TensorFlow,Microsoft CNTK等深度学习框架之上运行。该工具以其用户友好性和模块化而闻名,因而非常适合快速原型开发。该工具针对CPU和GPU进行了优化。

7. scikit-learn

scikit-learn是一个开源的Python库,专为机器学习而设计。基于诸如NumPy,SciPy和matplotlib等库的scikit-learn可用于数据挖掘和数据分析。scikit-learn配备了各种ML模型,包括线性和逻辑回归器、SVM分类器和随机森林。该工具可用于多个ML任务,如分类,回归和聚类。scikit-learn支持Windows和Linux等操作系统。缺点是,GPU的效率不高。

8.

Accord.NET是用C#编写的ML框架,专为构建生产级计算机视觉、计算机试听、信号处理和统计应用程序而设计。它是一个文档记录良好的ML框架,可以轻松实现音频和图像处理。Accord.NET可用于数值优化、人工神经网络和可视化。它支持Windows。

9. Spark MLlib

Apache Spark的MLIib是一个ML库,可用于Java,Scala,Python和R语言。因为是专为处理大规模数据而设计的,所以此强大的库具有许多算法和实用工具,如分类、回归和聚类。该工具在Python和R库中与NumPy交互操作。它可以轻松插入到Hadoop工作流程中。

10. Azure ML Studio

Azure ML Studio是面向数据科学家的现代云平台。它可以用于在云中开发ML模型。 借助广泛的建模选项和算法,Azure非常适合构建较大的ML模型。此服务为每个帐户提供10GB的存储空间。它可以与R和Python程序一起使用。

11.Amazon Machine Learning

Amazon Machine Learning (AML) 是一个ML服务,提供用于创建ML模型的工具和向导。借助可视化辅助功能和易用的分析功能,AML旨在让开发人员更方便地使用ML。AML可以连接到存储在Amazon S3、Redshift或RDS中的数据。

本文标签:进行框架机器

原文链接:https://www.xgfox.com/alpx/34699.html

本文版权:如无特别标注,本站文章均为原创。