数据科学融合了多门学科并且建立在这些学科的理论和技术之上,包括数学、概率模型、统计学、机器学习、数据仓库、可视化等。在实际应用中,数据科学包括数据的收集、清洗、分析、可视化以及数据应用整个迭代过程,最终帮助组织制定正确的发展决策数据科学的从业者称为数据科学家。数据科学家有其独特的基本思路与常用工具,本文全面梳理数据分析师和数据科学家使用的工具包,包括开源的技术平台相关工具、挖掘分析处理工具、其它常见工具等几百种,几十个大类,部分网址!
数据科学家是有着开阔视野的复合型人才,他们既有坚实的数据科学基础,如数学、统计学、计算机学等,又具备广泛的业务知识和经验数据科学家通过精深的技术和专业知识在某些科学学科领域解决复杂的数据问题,从而制定出适合不同决策人员的大数据计划和策略。数据分析师和数据科学家使用的工具在网上的MOOC有提供,比如2016年2月1日约翰-霍普金斯大学Coursera数据科学专业化课程等网络课程。数据科学家的常用工具与基本思路,并对数据、相关问题和数据分析师和数据科学家使用的工具做了综合概述。
数据科学家和大数据技术人员的工具包:A.大数据技术平台相关2015最佳工具,B.开源大数据处理工具汇总,C.常见的数据挖掘分析处理工具。
C.常见的数据挖掘分析处理工具
1、Dynelle Abeyta整理的数据科学家5种工具(2015-09-29):
dedup——dedup是一个Python库,使用机器学习快速的对结构化数据进行重复数据删除和实体解析。数据科学家发现他们经常需要使用SELECT DISTINCT * FROM my_messy_dataset;不幸的是,现实世界中的数据集往往更加复杂。无论你是去对多个数据源进行汇总,还是简单的数据收集,开始你都需要对重复数据的删除做一个有意义的分析。如你所想,有取之不尽的方法可以用来合并数据和用之不竭的规则来定义你数据的等价意义。有相同地址的两家餐馆是属于一个公司么?名和姓都相同的两条记录就是同一个人么?你很幸运,dedup可以让你转危为安!基于创新的计算机科学研究,dedup使用机器学习(更确切地说,应该是主动学习)去学习,通过合并人类的反馈对两个可能的模棱两可的记录进行研究,并寻找究竟是什么构成了两者的“相似”。更方便的是,它有一个图形用户界面(GUI),任何人都可以使用它。
Theano——Theano是一个Python库,你可以有效地定义、优化以及评估包含多维数组的数学表达式。Theano的特点:
· 和Numpy紧密结合——在Theano编译的函数中使用numpy.ndaaray。
· GPU的透明使用——在执行密集型数据计算时,相比于CPU,速度提升了140倍。(使用float32进行测试)
· 速度和稳定性优化——对log(1+x)得到正确的答案,即使x真的很小。
· C语言代码动态生成——加速评估表达式。
· 广泛的单元测试和自我验证——发现和诊断不同种类的错误。
StarCluster——StarCluster已经开始在Amazon的EC2云服务器中设计虚拟机创建、配置和管理集群的自动和简化程序。StarCluster允许所有人在面向分布式和并行计算的应用和系统的云服务器中轻松的创建一个集群计算环境。这允许你在无限制的数据上做交互程序。(贡献者Alessandro Gagliardi,Galvanize数据科学指导者。)
graph-tool——在python网络和图形分析库与日俱增的情况下,图形工具给了不少希望。尽管像NetworkX和Gephi这样的工具在不断成长的工具中仍然还有它们的一席之地,但是对于那些想要做大图像高级分析的人来说——无论是社会网络、道路网络、还是生物网络——这两者往往会显得力不从心。NetworkX一直是用于网络分析的最流行的Python工具,因为它有着丰富的API并且使用的门槛很低,但是一旦你开始处理更大的图形,纯python实现的弊端才真正开始凸显。而Gephi是一个极好的交互式可视化和开发新图像的图形化工具,但是有一个麻烦的脚本接口,使得它很难使用编程方式去控制。图形工具尝试从它前辈中吸取经验教训并给数据科学家最好的结果。它使用C++实现(可并行执行)并用Python来武装,绑定了一个易于使用的API,同时获得了超快的速度,而且不影响使用性。
Plotly——Plotly是一个面向R,Python,MATLAB,JavaScript和Excel的交互式图形库。Plotly也是一个用于分析和分享数据和图像的平台。Plotly是如何与众不同的呢?与Google Docs和GitHub一样,你可以协调和控制你的数据;可以将文件设置成公有的、私有的、秘密文件或是分享的。如果你使用plotly的免费公共云,脱机Plotly,或是现场部署,下面的选项很多都是可以获得的。在你的工作流中可以使用Plotly,这里有三种可用方式:
为数据科学家整合其它工具。Plotly的R,Python和MATLAB的API可以让你做交互、更新仪表面板和图像。Plotly整合了IPython Notebooks,NetworkX,Shiny,ggplot2,matplotlib,pandas,reporting tools和数据库。例如,下面的图是使用ggplot2制作的,然后嵌入到这个博客中。将鼠标悬停后看看数据变化,然后单击拖动放大。
创建交互式地图。Plotly的图形库建立在D3.js之上。对于地理数据,Plotly支持分级统计图、散点图、气泡图、分块图和线图。你可以制作类似下面这样的地图,像R和Python一样把它们嵌入到博客,应用程序和仪表板。
建立全方位的可视化。你可以为使用Plotly满足任意的可视化需求:地图、2D、3D以及流图。点击并移动你的鼠标来旋转这个图,悬停并观察数据变化,或切换放大。
2、6种开源数据挖掘工具:百分之八十的数据是非结构化的,需要一个程序和方法来从中提取有用信息,并且将其转换为可理解、可用的结构化形式。数据挖掘过程中有大量的工具可供使用,比如采用人工智能、机器学习,以及其他技术等来提取数据。以下为您推荐六款开源大数据挖掘工具:
1)WEKA——WEKA原生的非Java版本主要是为了分析农业领域数据而开发的。该工具基于Java版本,是非常复杂的,并且应用在许多不同的应用中,包括数据分析以及预测建模的可视化和算法。与 RapidMiner 相比优势在于,它在 GNU 通用公共许可证下是免费的,因为用户可以按照自己的喜好选择自定义。WEKA 支持多种标准数据挖掘任务,包括数据预处理、收集、分类、回归分析、可视化和特征选取。添加序列建模后,WEKA 将会变得更强大,但目前不包括在内。
2)RapidMiner——该工具是用Java语言编写的,通过基于模板的框架提供先进的分析技术。该款工具最大的好处就是,用户无需写任何代码。它是作为一个服务提供,而不是一款本地软件。值得一提的是,该工具在数据挖掘工具榜上位列榜首。另外,除了数据挖掘,RapidMiner 还提供如数据预处理和可视化、预测分析和统计建模、评估和部署等功能。更厉害的是它还提供来自WEKA(一种智能分析环境)和R脚本的学习方案、模型和算法。RapidMiner分布在AGPL开源许可下,可以从 SourceForge上下载。SourceForge是一个开发者进行开发管理的集中式场所,大量开源项目在此落户,其中就包括维基百科使用的 MediaWiki。
3)NLTK——当涉及到语言处理任务,没有什么可以打败NLTK。NLTK提供了一个语言处理工具,包括数据挖掘、机器学习、数据抓取、情感分析等各种语言处理任务。而您需要做的只是安装NLTK,然后将一个包拖拽到您最喜爱的任务中,您就可以去做其他事了。因为它是用Python语言编写的,你可以在上面建立应用,还可以自定义它的小任务。
4)Orange——Python之所以受欢迎,是因为它简单易学并且功能强大。如果你是一个Python开发者,当涉及到需要找一个工作用的工具时,那么没有比Orange更合适的了。它是一个基于Python语言,功能强大的开源工具,并且对初学者和专家级的大神均适用。此外,你肯定会爱上这个工具的可视化编程和 Python 脚本。它不仅有机器学习的组件,还附加有生物信息和文本挖掘,可以说是充满了数据分析的各种功能。
5)KNIME——数据处理主要有三个部分:提取、转换和加载。而这三者KNIME都可以做到。KNIME为您提供了一个图形化的用户界面,以便对数据节点进行处理。它是一个开源的数据分析、报告和综合平台,同时还通过其模块化数据的流水型概念,集成了各种机器学习的组件和数据挖掘,并引起了商业智能和财务数据分析的注意。KNIME是基于Eclipse,用Java编写的,并且易于扩展和补充插件。其附加功能可随时添加,并且其大量的数据集成模块已包含在核心版本中。
6)R-Programming——如果我告诉你R项目,一个GNU项目,是由R(R-programming简称,以下统称R)自身编写的,你会怎么想?它主要是由C语言和FORTRAN语言编写的,并且很多模块都是由R编写的,这是一款针对编程语言和软件环境进行统计计算和制图的免费软件。R语言被广泛应用于数据挖掘,以及开发统计软件和数据分析中。近年来,易用性和可扩展性也大大提高了 R 的知名度。除了数据,它还提供统计和制图技术,包括线性和非线性建模,经典的统计测试,时间序列分析、分类、收集等等。
3、数据分析语言3种工具:随着数据科学分析工具的发展,一方面成功解决了数据科学中的算法失效、超大规模数据可视化等一系列挑战;另一方面各具特点和优缺点。例如Mahout具有优秀的大数据处理能力,不仅处理数据量大且速度快,但可视化能力差。接下来选取R语言、RapidMiner、Mahout三种主流的数据科学分析工具,对其概述并以表格的形式对三者的主要特点进行了比较分析,工具基本情况如下。
1)R语言用于统计计算和作图的编程语言和环境,采用命令行工作方式,在GNU协议下免费发行,其源代码可供自由下载和使用。R网站CRAN上提供了大量的第三方程序包,内容涵盖了经济学、社会学、统计学、生物信息学等诸多方面,这也是为什么越来越多的各行各业的人员喜爱R的一个重要原因。针对传统分析软件的扩展性差以及Hadoop的分析功能薄弱的弱势,研究人员致力于将R语言和Hadoop的集成。R作为开源的统计分析软件,通过R与Hadoop的深度集成,把数据计算推向并行处理,使Hadoop获得强大的深度分析能力。
2)RapidMiner原名Yale,是一种用于数据挖掘、机器学习以及商业预测分析的开源计算环境。其既可以使用简单的脚本语言进行大规模进程操作,也可以通过JavaAPI或GUI模式进行操作。因为其具备GUI特性,所以对于数据挖掘的初学者比较容易入门。RapidMiner6具有友好而强大的工具箱,提供快而稳定的分析,可以在短时间内设计好一个原型,使得数据挖掘过程中的关键决策尽可能早地实现。帮助减少客户流失、进行情感分析、预测性维护以及市场直销等。
3)ApacheMahout起源于2008年,其主要目标是构建一个可伸缩的机器学习算法的资源库,它提供了一些经典的机器学习算法,旨在帮助开发人员更加方便快捷地创建智能应用程序。目前,Mahout的项目包括频繁子项挖掘、分类、聚类、推荐引擎(协同过滤)。
4、数据挖掘5种工具分别为:Intelligent Miner、SAS Enterpreise Miner 、SPSS Clementine、马克威分析系统、GDM,下面将作部分介绍。
1)Intelligent Miner综述:IBM的Exterprise Miner简单易用,是理解数据挖掘的好的开始。能处理大。数据量的挖掘,功能一般,可能仅满足要求.没有数据探索功能。与其他软件接口差,只能用DB2,连接DB2以外的数据库时,如Oracle, SAS, SPSS需 要安装DataJoiner作为中间软件。难以发布。结果美观,但同样不好理解。
2)SAS Enterprise Miner综述:SAS完仝以统计理论为基础,功能强大,有完备的数据探索功能。但难以掌握,要求是高级统计分析专业人员.结果难以理解。价格也极其昂贵,而且是租赁模式。基本内容:支持SAS统计模块,使之具有杰出的力量和影响,它还通过大量数据挖掘算法增强了那些模块。SAS使用它的SEMMA方法学以提供一个能支持包括关联、聚类、决策树、神经元网络和统计回归在内的广阔范围的模型数据挖掘工具。
3)SPSS(Statistical Product and Service Solutions)综述:“统计产品与服务解决方案”软件。最初软件全称为“社会科学统计软件包”。但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为“统计产品与服务解决方案”。用作多个领域和行业,是世界上应用最广泛的专业统计软件。
推荐阅读
年薪40+W的大数据开发【教程】,都在这儿!
大数据技术盘点
程序员大数据培训分享Shell中数组讲解
大数据教程:SparkShell和IDEA中编写Spark程序
大数据零基础快速入门教程
Java基础教程
web前端开发基础教程
linux基础入门教程学习