企业数据的数量和复杂性不断增加,同时数据在业务决策和战略规划中发挥着核心作用,正在推动组织投资于人员、流程和技术,以帮助他们了解并从他们的数据资产中获得洞察力。这包括数据科学应用程序中常用的各种工具。市场研究公司IDC估计,2020年,超过64泽字节(相当于640亿太字节)的数据被创建、捕获、复制和使用,由于疫情的影响,更多的远程工作和在线流媒体加速了数据使用。然而,数据分析计划也发挥着重要作用。当IDC最初预测2020年5月为59ZB时,该公司全球数据领域预测高级副总裁DavidReinsel表示,持续的数据增长“更多地是由我们使用和分析的数据驱动的,而不是我们创建的数据。””在构建技术支持的产品组合时,数据科学团队可以从各种工具和平台中进行选择。这里有15种可能在分析过程中为您提供帮助的顶级数据科学工具,按字母顺序列出,我们详细介绍了它们的功能和特性——以及潜在的局限性。1.ApacheSparkApacheSpark是一个开源数据处理和分析引擎,可以处理大量数据——超过几PB。自2009年创建以来,Spark快速处理数据的能力带动了平台的快速发展,使Spark项目成为大数据技术领域最大的开源社区之一。由于其速度,Spark非常适合持续智能应用程序——由近乎实时的流数据处理提供支持。然而,作为通用的分布式处理引擎,Spark同样适用于提取、转换和加载目的,以及其他SQL批处理作业。事实上,Spark最初被吹捧为MapReduce引擎的更快替代品,用于Hadoop集群中的批处理。Spark仍然经常与Hadoop一起使用,但也可以独立运行用于其他文件系统和数据存储。其广泛的开发人员库和API(包括机器学习库和对关键编程语言的支持)使数据科学家能够更轻松地快速使用该平台。2.D3.js另一个开源工具D3.js是一个JavaScript库,用于在Web浏览器中创建自定义数据可视化。通常称为D3,代表数据驱动文档,它使用HTML、可缩放矢量图形和CSS等Web标准,而不是它自己的图形词汇表。D3的开发人员将其描述为一种动态且灵活的工具,可以轻松生成数据的可视化表示。D3.js使可视化设计人员能够通过文档对象模型将数据绑定到文档,然后使用DOM操作方法对文档执行数据驱动的转换。2011年首次发布,可用于设计各类数据可视化,支持交互、动画、标注、量化分析等功能。然而,D3有超过30个模块和1,000种可视化方法,使学习变得复杂。此外,许多数据科学家不具备JavaScript技能。因此,他们可能更喜欢Tableau等业务可视化工具,这使得D3的主要用户是数据可视化开发人员和专家(也属于数据科学团队)。3.IBMSPSSIBMSPSS是一系列用于管理和分析复杂统计数据的软件。它由两个主要产品组成:SPSSStatistics——统计分析、数据可视化和报告工具,以及SPSSModeler——具有拖放式UI和机器学习功能的数据科学和预测分析平台。SPSSStatistics涵盖分析过程的每一步,从规划到模型部署,使用户能够阐明变量之间的关系、创建数据点集群、识别趋势并进行预测以及其他功能。它提供对常见结构化数据类型的访问,并提供菜单驱动的UI、它自己的命令语法和集成的R和Python扩展,以及用于自动化流程和将关系导入/导出到SPSSModeler的功能。该软件由SPSSInc.于1968年创建,最初被称为SocialSciencesforSocialSciences,是IBM于2009年收购的统计分析软件,以及之前被SPSS收购的预测建模平台。尽管该产品线的正式名称为IBMSPSS,但该软件通常简称为SPSS。4.JuliaJulia是一种开源编程语言,用于数值计算、机器学习和其他类型的数据科学应用。在2012年推出Julia的博客文章中,它的四位创建者表示他们正在设计一种能够满足他们所有需求的语言。这里的重要目标是避免用一种语言编写程序,然后将其转换为以另一种语言执行。为此,Julia结合了高级动态语言的便利性和可与C和Java等静态类型语言相媲美的性能。用户不必在他们的程序中定义数据类型,尽管他们可以选择这样做。在运行时使用多分派方法也有助于提高执行速度。Julia1.0于2018年上线,即该语言发布九年后。最新版本是1.6,于2021年3月发布。Julia的文档指出,新用户“一开始可能会发现Julia的性能不直观”,因为它的编译器不同于Python和R等数据科学语言中的解释器。然而,它声称:“一旦你理解了Julia的工作原理,你就会发现编写代码很容易,和C一样快。”5.JupyterNotebook,用于数学家、研究人员和其他用户之间的互动协作。它是一种计算笔记本工具,可用于创建、编辑和共享代码以及解释性文本、图像和其他信息。例如,Jupyter用户可以将软件代码、计算、注释、数据可视化和计算结果的富媒体表示添加到单个文档(称为笔记本)中,然后可以与同事共享和修改。因此,根据JupyterNotebook文档,笔记本“可以作为数据科学团队成员之间交互会话的完整计算记录”。Notebook文档是具有版本控制的JSON文件。此外,NotebookViewer服务使它们能够呈现为静态网页,供系统上未安装Jupyter的用户查看。JupyterNotebook起源于Python编程语言——它最初是IPythonInteractiveToolkit开源项目的一部分,然后于2014年脱离。除了支持这三种语言外,Jupyter还为其他几十种语言提供模块化内核。6.KerasKeras是一种编程接口,可以让数据科学家更轻松地访问和使用TensorFlow机器学习平台。这是一个用Python编写的开源深度学习API和框架,运行在TensorFlow上,现已集成到平台中。Keras之前支持多个后端,但从2020年6月的2.4.0版本开始,它只与TensorFlow绑定。作为高级API,Keras旨在推动简单快速的实验,与其他深度学习选项相比,需要更少的编码。正如Keras文档所述,其目标是通过具有“高迭代速度”的开发过程来加速机器学习模型的部署,尤其是深度学习神经网络。Keras框架包括用于创建具有输入和输出的相对简单的线性层堆栈的顺序接口,以及用于构建更复杂的层图或从头开始编写深度学习模型的函数式API。Keras模型可以在CPU或GPU上运行,并且可以跨多个平台部署,包括Web浏览器以及Android和iOS移动设备。7.Matlab自1984年以来由软件供应商MathWorks开发和销售,Matlab是一种用于数值计算、数学建模和数据可视化的高级编程语言和分析环境。通常由传统工程师和科学家用来分析数据、设计算法和开发嵌入式系统——用于无线通信、工业控制、信号处理和其他应用,通常与提供基于模型的设计和仿真功能的Simulink工具结合使用.尽管Matlab在数据科学应用中的应用不如Python、R和Julia等语言广泛,但它确实支持机器学习和深度学习、预测建模、大数据分析、计算机视觉以及数据科学家所做的其他工作。该平台内置的数据类型和高级功能旨在加速分析应用程序中的探索性数据分析和数据准备。Matlab被认为相对容易学习和使用,它代表矩阵实验室,包括预构建的应用程序并使用户能够构建自己的应用程序。它还具有额外的工具箱库(包含特定学科的软件)和数百个内置函数,包括在2D和3D图形中可视化数据的能力。8.MatplotlibMatplotlib是一个开源的Python绘图库,用于在分析应用程序中读取、输入和可视化数据。数据科学家和其他用户可以使用Matplotlib创建静态、动画和交互式数据可视化,在Python脚本、Python和IPythonshell、Jupyter笔记本、Web应用程序服务器和各种GUI工具包中使用它。该库的大型代码库可能难以导航,但它的结构采用层次结构,旨在使用户能够构建可视化效果——主要使用高级命令。此层次结构中最重要的组件是pyplot,它是一个提供“状态机环境”并提供一组简单绘图函数的模块,类似于Matlab中的函数。Matplotlib于2003年首次发布,还包括一个面向对象的接口,可以与pyplot一起使用或单独使用。它支持用于绘制更复杂数据的低级命令。该库主要专注于创建2D可视化,但提供了一个具有3D绘图功能的附加工具包。9.PythonPython是数据科学和机器学习中使用最广泛的编程语言,也是最流行的语言之一。Python开源项目的网站将其描述为“一种具有动态语义的解释型、面向对象的高级编程语言”,以及内置数据结构和动态类型和绑定功能。该网站还吹捧Python的简单语法,称它易于学习,而且它对可读性的强调降低了程序维护成本。通用语言可用于各种任务,包括数据分析、数据可视化、人工智能、自然语言处理和机器人过程自动化。开发人员还可以使用Python创建Web、移动和桌面应用程序。除了面向对象编程,它还支持进程、函数和其他类型,以及用C或C++编写的扩展。Python不仅被数据科学家、程序员和网络工程师使用,而且还被计算专业人员使用,从会计师到数学家和科学家,他们经常被它的用户友好性所吸引。Python2.x和3.x都是该语言的生产就绪版本,尽管对2.x系列的支持已于2020年结束。10.PyTorchPyTorch是一个开源框架,用于构建和训练基于神经网络的深度学习模型网络,支持者表示支持快速灵活的实验以及向生产部署的无缝过渡。Python库旨在比Torch更易于使用,Torch是基于Lua编程语言的前身机器学习框架。根据其创建者的说法,PyTorch还提供了比Torch更大的灵活性和速度。PyTorch于2017年首次公开发布,使用类似数组的张量对模型的输入、输出和参数进行编码。它的张量类似于另一个用于科学计算的Python库NumPy支持的多维数组,但PyTorch添加了对在GPU上运行模型的内置支持。NumPy数组可以转换为张量以在PyTorch中进行处理,反之亦然。该库包含各种功能和技术,包括名为torch.autograd的自动微分包和用于构建神经网络的模块,以及用于部署PyTorch模型的TorchServe工具,还提供对iOS和Android设备的部署支持。除了主要的PythonAPI之外,PyTorch还提供了一个C++,可用作单独的前端接口或创建Python应用程序的扩展。11.RR编程语言是为统计计算和图形应用以及数据处理、分析和可视化而设计的开源代码环境。许多数据科学家、学术研究人员和统计学家使用R来检索、清理、分析和呈现数据,使其成为数据科学和高级分析领域最流行的语言之一。这个开源项目得到RFoundation的支持,提供了数以千计的用户创建的包,其中包含增强R功能的代码库——例如,ggplot2,一个用于创建图形的著名包,它是tidyverse的一部分,一个R-基于数据科学的工具。此外,一些供应商为R提供集成开发环境和商业代码库。R是一种类似于Python的解释型语言,以相对直观而著称。它创建于1990年代,作为S的替代版本,S是1970年代开发的一种统计编程语言;R是它的两个创造者的姓名首字母。12.SASSAS是一个用于统计分析、高级分析、BI和数据管理的集成软件套件。该平台由软件供应商SASInstituteInc.开发和销售,使用户能够集成、清理、准备和处理数据,然后可以使用不同的统计和数据科学技术对其进行分析。SAS可用于各种任务,从基本的BI和数据可视化到风险管理、运营分析、数据挖掘、预测分析和机器学习。1966年北卡罗来纳州立大学开始开发SAS。该技术的使用在1970年代初期开始增加,SASInstitute于1976年作为一家独立公司成立。该软件最初是供统计学家使用的——SAS的全称是StatisticsAnalysisSystem(统计分析系统)。然而,随着时间的推移,它被扩展到包括广泛的功能,并成为商业企业和学术界使用最广泛的分析套件之一。开发和营销工作现在集中在SASViya上,这是该平台的云版本,于2016年推出,并于2020年重新设计为云原生。13.scikit-learnScikit-learn是一个开源的Python机器学习库,它基于SciPy和NumPy科学计算库和Matplotlib来绘制数据。它支持监督和非监督机器学习,并包括许多算法和模型,在scikit-learn术语中称为估计器。此外,它还提供了模型拟合、选择与评价、数据预处理与转换等功能。该库最初称为scikits.learn,于2007年作为GoogleSummerofCode项目开始,并于2010年首次公开发布。其名称的第一部分是SciPyToolbox的缩写,其他SciPy附加组件也使用它。Scikit-learn主要处理存储在NumPy数组或SciPy稀疏矩阵中的数值数据。该库的工具套件还支持各种其他任务,例如数据集加载和工作流管道创建——结合数据转换器对象和估算器。但由于设计的限制,scikit-learn也有局限性。例如,它不支持深度学习、强化学习或GPU,该图书馆的网站称其开发人员“只考虑纳入完善的算法”。14.TensorFlowTensorFlow是谷歌开发的开源机器学习平台,人们特别喜欢用它来部署深度学习神经网络方面。该平台以张量形式获取输入,类似于NumPy多维数组,然后使用图形结构对开发人员指定的数据执行一系列计算操作。它还提供了一个eagerexecution编程环境,可以在不使用图形的情况下独立运行操作,这为研究和调试机器学习模型提供了更大的灵活性。谷歌在2015年开源了TensorFlow,并于2017年发布了1.0.0版本。TensorFlow使用Python作为其核心编程语言,现在结合了Keras高级API来构建和训练模型。此外,TensorFlow.js库支持使用JavaScript开发模型,并且可以使用C++构建自定义操作(简称ops)。该平台还包括用于端到端部署生产机器学习管道的TensorFlow扩展,以及用于移动和物联网设备的TensorFlowLite。TensorFlow模型可以在CPU、GPU和Google专用的张量处理单元上训练和运行。15.WekaWeka是一个开源工作台,它提供了一组可用于数据挖掘任务的机器学习算法。Weka的算法称为分类器,可以直接应用于数据集,无需通过GUI或命令行界面进行任何编程,以提供额外的功能;它们也可以通过JavaAPI进行部署。该工作台可用于分类、聚类、回归和关联规则挖掘应用,还包括一组数据预处理和可视化工具。此外,Weka支持与R、Python、Spark和其他库(如scikit-learn)的集成。出于深度学习的目的,一个附加包将其与EclipseDeeplearning4j库结合在一起。Weka是根据GNU通用公共许可证获得许可的免费软件。该软件于1992年由新西兰怀卡托大学开发;原始版本用Java重写以创建当前的工作台,该工作台于1999年首次发布。Weka代表怀卡托知识分析环境,也是一种原产于新西兰的不会飞的鸟的名称,该技术的开发人员称这种鸟具有“好奇的本性”。数据科学和机器学习平台许多软件供应商还提供商业许可平台,这些平台集成了机器学习、人工智能和其他数据科学应用程序的功能。这些产品多种多样——它们包括机器学习运营中心、自动化机器学习平台和功能齐全的分析套件,其中一些结合了这些功能。许多平台都包含上面列出的数据科学工具。Matlab和SAS也可以算作数据科学平台。数据科学团队需要考虑的其他重要平台选项包括:Alteryx分析过程自动化平台AmazonSageMakerAzure机器学习DatabricksLakehouse平台DataikuDataRobotDomino数据科学平台GoogleCloudAI平台H2OAI混合云IBMWatsonStudioKnimeRapidMinerTibco数据科学一些平台免费还提供开源或社区版本-例如Dataiku和H2O。Knime将开源分析平台与支持基于团队的协作和工作流自动化、部署和管理的商业KnimeServer包相结合。
