楼主: 时光永痕
969 0

[数据挖掘新闻] 最佳机器学习工具:专家的首选 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)三级

47%

威望
0
论坛币
26 个
通用积分
49.7576
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
316 小时
注册时间
2020-7-21
最后登录
2024-4-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最佳机器学习工具:专家的首选
训练有素的士兵无法徒手完成任务。数据科学家拥有自己的武器-机器学习(ML)软件。已经有大量文章列出了可靠的机器学习工具,并对其功能进行了深入描述。但是,我们的目标是获得行业专家的反馈。  
这就是为什么我们采访了数据的科学工作者-大师,真的 -关于他们的选择有用的工具,他们的项目。我们联系的专家具有不同的专业领域,并在Facebook和Samsung等公司工作。其中一些代表AI创业公司(Objection Co,NEAR.AI和Respeecher);有的在大学任教(哈尔科夫国立无线电电子大学)。AltexSoft数据科学团队也参加了讨论。
如果您正在寻找一种特定类型的工具,只需跳至您感兴趣的领域:
机器学习中使用的语言
数据分析和可视化工具
通用机器学习框架
神经网络建模框架
大数据工具
最受欢迎的机器学习编程语言
您在一家民族餐厅中,并且对文化不熟悉。甚至在您不知道要使用哪种餐具之前,您可能还会向服务员问一些有关菜单上的单词的问题,它们的含义。因此,在讨论数据科学家最喜欢的工具之前,让我们先弄清楚他们使用哪种编程语言。
Python:一种流行的语言,带有高质量的机器学习和数据分析库
Python是一种通用语言,以其易读性,良好的结构和相对缓和的学习曲线而倍受青睐。根据一 月份进行的Stack Overflow年度开发人员调查,Python可以称为增长最快的主要编程语言。它在最受欢迎的语言中排名第七(38.8%),现在比C#(34.4%)领先一步。
Respeecher Grant Reaber的研究负责人专门研究用于语音识别的深度学习,他将Python称为“目前几乎所有人都将其用于深度学习。Grant总结说:“ TensorFlow的Swift听起来很酷,但是我们会等到它变得更加成熟之后再考虑使用它。 ”  
NEAR.AI初创公司的共同创始人,之前曾在Google Research负责NLU的深度学习团队,他 也坚持使用Python:  “ Python一直是数据分析的语言,随着时间的流逝,它已经成为事实。深度学习语言,并为此建立了所有现代图书馆。”
Python的用例之一是模型开发,尤其是原型设计。
AltexSoft数据科学能力负责人 Alexander Konduforov 表示,他主要将其用作构建机器学习模型的语言。
三星乌克兰公司的首席工程师Vitaliy Bulygin认为Python是快速原型开发的最佳语言之一。专家解释说:“在原型制作过程中,我找到了最佳的解决方案,并用项目所需的语言(例如 C ++)重写了该解决方案。”
Facebook AI研究人员Denis Yarats 指出,这种语言为深度学习提供了一个了不起的工具集,例如PyTorch框架或NumPy库(我们将在本文稍后讨论)。
C ++:用于CUDA上并行计算的中级语言
C ++是基于C编程语言的一种灵活的,面向对象的,静态类型的语言。由于它的可靠性,性能以及它支持的大量应用程序域,该语言在开发人员中仍然很流行。C ++同时具有高级和低级语言功能,因此被认为是中级编程语言。这种语言的另一个应用是开发驱动程序和软件,这些驱动程序和软件可以在实时约束下直接与硬件进行交互。而且由于C ++足够干净,足以解释基本概念,所以它用于研究和教学。
数据科学家使用这种语言来完成各种特定的任务。哈尔科夫国立无线电大学(NURE)的高级讲师Andrii Babii使用C ++在Nvidia GPU计算平台CUDA上并行实现算法,以加快基于这些算法的应用程序。
“当我为CUDA编写自定义内核时,我需要C ++, ” Denis Yarats补充道。
R:用于统计计算和图形的语言
R是用于统计,可视化和数据分析的语言和环境,是数据科学家的首选。这是S编程语言的另一种实现。
R及其中编写的库提供了许多图形和统计技术,例如经典的统计测试,线性和非线性建模,时间序列分析,分类,聚类等。R可以通过软件包轻松扩展。该语言允许创建高质量的绘图,包括公式和数学符号。
Alexander Konduforov指出,这种语言可确保快速的数据分析和可视化。
数据分析和可视化工具
大熊猫:增强Python中的数据分析和建模
现在该谈论一些有关 熊猫的信息,熊猫是一个最可爱的免费图书馆。数据科学爱好者韦斯·麦金尼(Wes McKinney)开发了此库,以方便在Python中进行数据分析和建模。在大熊猫之前,这种编程语言仅在数据准备和处理时有效。
pandas通过将CSV,JSON和TSV数据文件或SQL数据库转换为数据框,类似于Excel的Python对象或具有行和列的SPSS表,从而简化了分析。此外,熊猫还与 IPython 工具包和其他库结合使用,以提高性能并支持协作工作。
matplotlib:一个用于质量可视化的Python库
matplotlib 是一个Python 2D绘图库。绘图是机器学习数据的可视化。matplotlib源自MATLAB:其开发人员John D. Hunter模拟了Mathworks MATLAB软件中的绘图命令。
虽然该库主要使用Python编写,但该库已使用NumPy和其他代码进行了扩展,因此即使用于大型数组,其性能也很好。  
matplotlib允许使用几行代码来生成生产质量的可视化文件。库开发人员强调 了它的使用简单性:“如果您想查看数据的直方图,则无需实例化对象,调用方法,设置属性等;它应该工作。”
matplotlib中的可视化
matplotlib可视化演示。图片来源:matplotlib样式库
该库的功能可以通过第三方可视化软件包(如seaborn,ggplot和HoloViews)进行扩展。专家还可以使用底图和Cartopy 投影和贴图工具包添加其他功能。
数据科学从业者注意到matplotlib的灵活性和集成能力。例如,Andrii Babii更喜欢将matplotlib与seaborn和ggplot2一起使用。
Denis Yarats(Facebook AI研究)表示,他之所以选择matplotlib,主要是因为它很好地集成到了Python工具集中,并且可以与NumPy库或PyTorch机器学习框架一起使用。
Alexander Konduforov和他的AltexSoft团队也使用matplotlib。除了熊猫等众多Python库以及支持R和Python的Plotly外,该团队还选择dplyr,ggplot,tidyr和Shiny  R库。“这些工具是免费使用的,但是您必须至少了解一些编程才能使用它们,有时会花费额外的时间。”
Jupyter Notebook:协作工作能力
Jupyter Notebook 是用于交互计算的免费Web应用程序。借助它,用户可以使用实时代码创建和共享文档,开发和执行代码,以及演示和讨论任务结果。可以通过Dropbox,电子邮件,GitHub和Jupyter Notebook Viewer共享文档,并且该文档可以包含图形和叙述文本。
笔记本电脑功能丰富,并提供各种使用方案。
它可以与众多工具集成,例如Apache Spark,pandas和TensorFlow。它支持40多种语言,包括R,Scala,Python和Julia。除了这些功能之外,Jupyter Notebook还支持容器平台-Docker和Kubernetes。
来自NEAR.AI的Illia Polosukhin表示,他主要将Jupyter Notebook用于自定义即席分析:“该应用程序允许快速进行任何数据或模型分析,并能够连接到远程服务器上的内核。您也可以与同事共享结果笔记本。”
Tableau:强大的数据探索功能和交互式可视化
Tableau 是用于数据科学和商业智能的数据可视化工具。许多特定功能使该软件有效地解决了各种行业和数据环境中的问题。
通过数据探索和发现,Tableau可以快速从数据中提取见解,并以可理解的格式显示它们。它不需要出色的编程技能,并且可以轻松地安装在各种设备上。虽然必须编写一些脚本,但是大多数操作都是通过拖放完成的。
Tableau拖放
Tableau拖放菜单的工作方式
Tableau支持实时分析和云集成(即与AWS,Salesforce或SAP集成),允许组合不同的数据集和集中式数据管理。
简单易用及其功能集是数据科学家选择此工具的原因。“ Tableau具有许多内置功能,不需要编码。您可以在UI中进行很多数据预处理,分析和可视化操作,从而节省了大量工作。但是,您必须购买许可证,因为它不是免费的产品。” Alexander Konduforov说。  
通用机器学习框架
NumPy:使用Python进行科学计算的扩展包
前面提到的NumPy 是用于使用Python执行数值计算的扩展包,它取代了NumArray和Numeric。它支持多维数组(表)和矩阵。ML数据以数组表示。矩阵是数字的二维数组。NumPy包含广播功能,作为集成C / C ++和Fortran代码的工具。它的功能还包括傅立叶变换,线性代数和随机数功能。
数据科学从业人员可以将NumPy用作存储多维通用数据的有效容器。通过定义任意数据类型的能力,NumPy可以轻松,快速地与多种数据库集成。
scikit-learn:适用于众多行业的易于使用的机器学习框架
scikit-learn 是基于SciPy(科学Python),NumPy和matplotlib构建的开源Python机器学习库。
scikit-learn最初由David Cournapeau于2007年作为Google Summer of Code项目启动,目前由志愿者维护。截止到今天,已有1
该库设计用于生产。简单,定性的代码,协作选项,性能以及用简单语言编写的大量文档,使其在各种专家中广受欢迎。
scikit-learn为用户提供了许多用于有监督和无监督学习的完善算法。来自Machine Learning Mastery的数据科学从业者Jason Brownlee指出 ,该库侧重于对数据建模,而不是其加载,操纵和汇总。他建议为这三个功能使用NumPy和pandas。
Denis Yarats使用NumPy,pandas和scikit-learn进行一般的机器学习:“我喜欢它们的简单性和透明性。这些工具被广泛采用并经过许多人的多年实践测试也有帮助。”
“ AltexSoft数据科学团队主要将scikit-learn和xgboost之类的Python库用于分类和回归任务,” Aleksander说道。
Andrii Babii倾向于将scikit-learn与R语言库和软件包一起使用。数据科学家解释说:“我之所以使用这种组合,是因为它是开源的,具有非常强大的功能并且可以互相补充。”
NLTK:基于Python的人类语言数据处理平台
NLTK是用于开发与人类语言配合使用的Python程序的平台。
Aleksander Konduforov在NLP任务中更喜欢使用此工具。“ NLTK几乎是Python中用于文本处理的标准库,它具有许多有用的功能。例如,不同类型的文本,句子和单词处理,语音标记的一部分,句子结构分析,命名实体识别,文本分类,情感分析等等。所有这些库都是免费的,并提供了足够的功能来解决我们的大部分任务,”专家指出。  
神经网络建模框架
TensorFlow:大规模机器学习的灵活框架
TensorFlow是一个用于机器学习和深度神经网络研究的开源软件库,由Google AI组织内的Google Brain团队于2015年开发和发布。
该库的一个重要特征是,数值计算是使用由节点和边组成的数据流图完成的。节点表示数学运算,而边沿是多维数据数组或张量,对其执行这些运算。
在TensorFlow中可视化操作之间的数据流
TensorFlow是灵活的,可在各种计算平台(CPU,GPU和TPU)和设备上使用,从台式机到服务器集群再到移动和边缘系统。它可以在Mac,Windows和Linux上运行。
该框架的另一个优点是,它既可以用于研究又可以用于重复出现的机器学习任务。
TensorFlow拥有丰富的开发工具,尤其是针对Android的开发工具。乌克兰乌克兰三星的首席工程师Vitaliy Bulygin建议:“如果需要在Android上实现某些功能,请使用TensorFlow。”
Objection Co的首席执行官Curtis Boyd是为企业提供自动不良审查删除策略的提供商,他说他的团队选择TensorFlow是因为它是开源的,并且很容易集成。
TensorBoard:用于模型训练可视化的好工具
TensorBoard 是一套工具,用于以图形表示TensorFlow中机器学习的不同方面和阶段。
TensorBoard读取TensorFlow事件文件,其中包含运行TensorFlow时生成的摘要数据(有关模型特定操作的观察结果)。
用图形显示的模型结构使研究人员可以确保模型组件位于所需的位置并正确连接。
TensorBoard图形可视化
TensorBoard中模型的图形表示
使用图形可视化工具,用户可以浏览模型抽象的不同层,放大和缩小模式的任何部分。TensorBoard可视化的另一个重要好处是,相同类型和相似结构的节点被涂上了相同的颜色。用户还可以按设备(CPU,GPU或两者的组合)查看颜色,使用“跟踪输入”功能突出显示特定节点,并一次可视化一个或多个图表。
这种可视化方法使TensorBoard成为用于模型性能评估的流行工具,尤其是对于复杂结构(如深度神经网络)的模型。
Grant Reaber指出,TensorBoard使监视模型训练变得容易。Grant和他的团队也使用此工具进行自定义可视化。
Illia Polosukhin还选择了TensorBoard。“ TensorBoard在模型开发期间显示指标,并允许做出有关模型的决策。例如,在调整模型的超参数并选择性能最佳的模型时,监视模型的性能非常舒适。
除了显示性能指标外,TensorBoard还可以向用户显示许多其他信息,例如直方图,音频,文本和图像数据,分布,嵌入和标量。
PyTorch:易于使用的研究工具
PyTorch 是用于深度神经网络的开源框架,可支持和加速GPU。该库由Facebook团队与Twitter,SalesForce,NRIA,ENS,ParisTech,Nvidia,Digital Reasoning和INRIA的工程师共同开发,于2016年10月首次发布。PyTorch建立在Torch框架之上,但与之前用Lua编写的框架不同,它支持常用的Python。
PyTorch的开发理念是提供尽可能快速,灵活的建模体验。值得一提的是PyTorch工作流程类似于一个在NumPy的, 基于Python的科学计算库。
动态计算图是使该库流行的功能之一。在TensorFlow,Theano,CNTK和Caffe等大多数框架中,模型都是以静态方式构建的。数据科学家必须改变神经网络的整体结构 -从头开始重建它- 改变其行为方式。PyTorch使它变得更容易,更快。该框架允许随意更改网络行为,而不会出现延迟或开销。   
Facebook AI Research的Denis Yarats认为,动态地(在运行时)构建模型的能力是使用PyTorch的驱动因素之一。“我使用的是PyTorch,这是最好的。过去,我尝试了许多DL框架,包括TensorFlow,Torch,Keras和Theano。这些都没有PyTorch这么简单和强大。在进行深度学习研究时,我非常重视快速修改和调试模型的能力。”  
Illia Polosukhin和Vitaliy Bulygin还强调了通过使用动态计算图实现的研究的便利性和灵活性,这就是他们选择PyTorch进行深度学习的原因。
Keras:轻巧,易于使用的库,可快速进行原型制作
Keras是一个Python深度学习库,能够在Theano,TensorFlow或CNTK之上运行。Google Brain团队成员Francois Chollet开发了它,使数据科学家能够快速运行机器学习实验。
该库可以在GPU和CPU上运行,并支持循环和卷积网络及其组合。
借助库的高级,易懂的界面,将网络划分为易于创建和添加的独立模块序列,可以实现快速原型制作。
根据数据科学家的说法,建模速度是该库的优势之一。三星的Vitaliy Bulygin指出,使用TensorFlow的Keras可以非常快速地实现神经网络。他建议,如果Keras的工具集足以完成特定任务,请坚持使用。如果没有,最好与PyTorch进行研究。
Caffe2:具有移动部署支持的深度学习库
Caffe2是 Caffe的改进版本,是Facebook构建的开放式机器学习框架,用于简化复杂模型的流线型和灵活的深度学习并支持移动部署。
用户可以使用多个选项来组织该库的计算,这些库可以在桌面,云或数据中心中安装和运行。
该库具有可交替工作的本机Python和C ++ API,使开发人员可以随时随地进行原型设计并在以后进行优化。
通过与Xcode,Visual Studio和Android Studio IDE的集成,部署的模型可以在移动设备上快速运行。该框架还允许快速放大或缩小,而无需进行设计重构。
快速原型开发,研究和开发是使用Caffe2的好处。“我之所以使用它,是因为它具有清晰的代码基础结构,并且很容易将其扩展为新方法的研究,” NURE Andrii Babii的高级讲师总结道。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 scikit-learn Apache Spark Matplotlib Alexander

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 10:56