译者注:本文是出自Springboard上面一篇文章的摘录,介绍了如果想成为一名数据科学家,需要掌握哪些技能,熟练使用哪些工具,以及如何对数据进行处理等。以下为译文。
这篇博文是Springboard上面一篇文章的摘录,文章标题是“
帮你找到一份数据科学工作的免费指南
”,最初出现在Springboard的
博客
上。
数据科学技能
大多数数据科学家每天都使用组合技能,其中一些是他们在工作当中自学的,也有可能通过其他途径学到的。他们有各自不同的背景。不是说你非要有什么学位证书才能证明你是数据科学家。
本文涉及到的所有技能都可以自学。我们已经列出了一些资源,以帮助你走上数据科学家这条路。你可以把本文的内容看作是指导你如何成为一名数据科学家。
数学
数学是数据科学的重要组成部分。从微积分到线性代数这些大学数学的基础知识,要确保你都能知道。你知道的越多,你也会越来越好。
当数据变得越来越庞大,也就意味着它越来越难处理。这时候你就必须使用数学来处理数据了。
别以为你在大学没上过这些课,你就可以不知道了。说到底你还得需要了解如何操作数据矩阵,算法数学背后的大致思路你也得知道。
参考资料:
15个数学MOOC课程
可以帮助你掌握数学技能。麻省理工学院还提供了一个开放课程,专门针对数据科学的数学。
统计学
你必须得知道从一些小的数据集里如何利用统计学从而得出同样适用于大数据的理论。这是数据科学的基本法则。统计学将为你如何成为一名数据科学家铺平道路。
你需要知道统计是基于数据的,有了数据才能进行统计。统计能够让你更好地理解从数据中观察到的模式,并提取你需要的观点来做出合理的结论。例如,理解
推论统计学
可以帮助你去证实取自于小人群中的观点放到所有人群中的每一个个体也同样适用。
要了解数据科学,你必须了解假设检验的基础知识,并设计实验以了解数据的含义和上下文。
资源:我们的博客发表了一篇关于
贝叶斯定理,概率和统计数据
相互交叉的文章。 这篇文章为理解如何成为数据科学家的统计基础打下了良好的基础。
算法
理解如何使用机器来完成工作对于处理和分析数据集来说是至关重要的,因为这些数据集已经远远超出了人类的思维能够处理的范围。
如果你想在数据科学方面做出重大的改进,那你就必须了解算法选择和优化背后的理论。你必须决定问题是否需要回归分析,还需要决定是否需要一个能够帮助你将不同数据点分类到已经定义好的类别里面去的算法。
这样以后,你自己就会主动的去了解很多不同的算法以及机器学习的基本原理。机器学习就好比是允许亚马逊根据你的购买历史从而给你推荐产品,并且不需要任何直接的人工干预。这是一套算法,它是利用机器的能力去挖掘你的思维。
为了处理这些大量的数据集,你到时候就得使用机器了,因为这样你才能扩展你的思维。
参考资料:KDNuggets的这个指南帮助解释了10个常见的且
通俗易懂
的数据科学算法。这里还有
19个免费的公共数据集
,你可以在数据上实现不同的算法。
数据可视化
完成数据分析只是这场战役的一半。 要想推动影响,你必须说服他人相信并采纳你的观点。
人类是视觉生物。 据3M和Zabisco透露,传递给大脑的几乎90%的信息本质上是视觉的,通过视觉进行处理的速度比通过文本将近快6万倍。
数据可视化是一种通过图表和其他可视化工具来呈现信息的艺术,这样观众就可以很容易地理解数据并从中获取信息。使用条形图展示什么信息最好?我们在散点图中应该展示什么类型的数据?
人类天生就会对视觉线索作出反应。你能够通过数据把你的观点表达得越好,别人就越有可能根据这些数据从而采取行动。
参考资料:我们有
31个免费的数据可视化工具
,你可以尝试使用一下。Nathan Yau的
FlowingData blog
里面充分体现了数据可视化提示和技巧,这些技巧可以提高你的水平。
商业知识
数据在没有上下文的情况下是没有意义的。你必须了解正在分析的业务。清晰度是如何成为数据科学家的核心。
大多数公司之所以依赖于他们的数据科学家,不仅仅是希望他们能够挖掘数据集,而且还希望他们能够将其结果传达给各种利益相关者,并提出可行的建议。
最好的数据科学家不仅有能力处理大型复杂的数据集,而且还能理解他们所工作的业务或组织的复杂性。
拥有一般的业务知识可以让他们提出正确的问题,并提出有见地的解决方案和建议。
参考资料:
免费商业课程
可以帮助你获得你需要的知识。我们的
商业课程数据分析
可以帮助你与导师一起学习。
专业领域
作为一名数据科学家,你应该了解你所从事的行业以及它所处的行业。
除了对所在公司需要深入了解之外,你还必须了解它在你的商业洞察力中所起的作用。来自生物学研究的数据可能与精心设计的心理学研究中收集的数据具有截然不同的背景。 你应该足够了解行业行话。
参考资料:这很大程度上依赖于行业。你必须找到自己的方法,尽可能多地了解你的行业。
数据科学工具
分析思维
在数据科学中,你需要拥有一个善于分析的思维模式。很多数据科学都要求你得具有敏锐的头脑才能解决问题。
参考资料:经常读书或者解答一些谜题可以帮助你提高思维的敏捷。像
Lumosity
这样的网站有助于你在任何时候都能保持敏捷性。
随着你使用技能越来越熟练,以后你可能需要学习如何使用现代数据科学工具。每种工具都有其优点和缺点,并且在数据科学过程中扮演着不同的角色。你可以使用其中一个,或者全部。下面是对数据科学中最流行的工具做一个广泛的概述,如果你想深入了解这些工具,那么你将需要正确地学习它们。
文件格式(File Formats)
数据能够以不同的文件格式存储。以下是一些最常见的:
CSV
:逗号分隔值。你可能已经使用Excel打开了这类文件。csv使用分隔符将数据分隔,一些标点符合就可以把不同的数据点给分隔出来。
SQL
:SQL,或者叫结构化查询语言,将数据存储在关系表中。 如果从右到左定位某一列,那你将在同一个实体上获得不同的数据点(例如,一个人在AGE,GENDER和HEIGHT类别中将有一个值)。
JSON
:JS对象标记是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 来自Web服务器的数据通常以这种格式传输。
电子文档(Excel)
Excel简介
:Excel通常是数据科学的入门工具,每个数据科学家都可以从学习excel的过程中获益。
Excel允许用户使用一款所见即所得的编辑器就可以轻松地操作数据,而且它还允许用户在数据上不用通过编码就能执行方程式。对于那些想要轻松获得结果而不会编程的数据分析师来说,这是一款非常方便的工具。
Excel入门很容易,虽然它是一个程序,但是任何人都能在分析中得到直观的理解。对于那些不会编程的人来说,用它传递数据就非常方便:他们可以基于这些数据再做相关操作。
使用人群
:倾向于使用Excel的数据分析师。
难度级别
:初学者
示例项目
:从NBA球员的统计数据中导入一个小数据集,并对联盟中得分最高的人做一个简单的图表。
SQL
SQL简介
:SQL是查找数据最流行的编程语言。
数据科学需要数据。SQL是一种专门设计用来从数据库中提取数据的编程语言。
SQL是在
数据科学家中使用最广泛的工具
。世界上的大多数数据都存储表中,如果想访问的话就需要使用SQL。用户还可以对数据进行过滤和排序。
使用人群
:数据分析师以及倾向于使用SQL的数据工程师
难度级别
:初学者
示例项目
:从Billboard 100的SQL数据库中选出最流行的10首歌曲
Python
Python的简介
:Python是一种强大的、通用的适用于数据科学的编程语言。
一旦你下载了Yhat的Python集成开发工具
Rodeo
,你就会很快意识到Python是多么的直观。作为一种多用途的编程语言,从网站开发到从web上收集数据,Python有许多代码库致力于使数据科学工作更容易。
Python是一种通用的编程语言,具有简单的语法,易于学习。
Python工程师的平均工资范围
大约是10.2万美元
。Python是
大学里
最流行的编程语言:Python程序员的社区在未来几年只会变得更大。Python社区热衷于教授Python,并构建有用的工具,可以节省用户的时间,并允许用户对数据做更多的事情。
许多数据科学家使用Python来解决他们的问题:o’reilly进行的一项权威数据科学调查中,有40%的人使用了Python,使用Excel的是36%。
使用人群
:数据工程师和使用Python来进行中型数据集的数据科学家将
难度级别
:中级
示例项目
:使用Python来收集名人的推文,然后分析应用编程规则所使用的最常用的单词
R语言
R语言的简介
:R语言是数据科学社区的主要内容,因为它是为数据科学需求而设计的。它是数据科学中最流行的编程环境,43%的数据专业人员使用它。
R是为数据分析设计的编程环境。当涉及到建立统计模型并显示结果时,R的优点就会大放异彩。
R是一个可以应用广泛的统计和图形技术的环境。
社区提供了类似于Python的包,可以扩展R代码库的核心功能,使之能够应用于具体的问题,例如度量财务指标或分析气候数据。
使用人群
:数据工程师和使用R作为中型数据集的数据科学家
难度级别
:中级
样本项目
:利用R来绘制过去5年股市走势的图表
大数据工具
大数据来自
摩尔定律
,这是一种计算能力每两年翻一番的理论。这掀起了数百万台计算机产生的大量数据集的热潮。想象一下Facebook每时每刻的数据量有多大!
根据
麦肯锡的数据
,对于像SQL和Excel这样的传统数据工具来说,过大的数据集都可以被认为是大数据。其实关于大数据最简单的定义就是不适合计算机的数据。
以下是解决这个问题的工具:
Hadoop
Hadoop简介
:通过使用Hadoop,你可以将数据存储在多个服务器中,同时可以通过一台机器控制所有的数据。
实现原理是一种称为MapReduce的技术。MapReduce是一种优雅的编程模型,它将一系列的计算机看作是一个中央服务器。这样用户就可以在多台计算机上存储数据,但是通过一台计算机就可以处理数据。
Hadoop是一个开源的工具生态系统,它允许你对你的数据进行MapReduce,并在不同的服务器上存储巨大的数据集。它允许你管理比你在一台电脑上的更多的数据。
使用人群
:数据工程师和使用Hadoop来处理大数据集的数据科学家。
难度级别
:高级
示例项目
:使用Hadoop来存储实时更新的大型数据集,比如Facebook用户生成的数量。
NoSQL
NoSQL简介
:NoSQL允许用户在不需要权重的情况下管理数据。
将所有表的所有数据放在一起会很麻烦。NoSQL包含了大量的数据存储解决方案,这些解决方案将大数据集分割成可管理的块。
NoSQL是Google为处理海量数据而开创的。web开发人员通常使用JSON格式构造数据,像MongoDB这样的解决方案创建了数据库,可以像SQL表那样被操纵,但是可以存储数据结构和密度更小的数据。
使用人群
:数据工程师和使用NoSQL来进行大数据集的数据科学家,通常是数百万用户的网站数据库。
难度级别
:高级
示例项目
:在web上部署的社交媒体应用程序的用户中存储数据。
将数据科学过程中的所有工具综合在一起
我们所描述的每一个工具都是互补的。每个工具都有自己的长处和短处,每一个又都可以被应用到数据科学过程的不同阶段。
数据收集
有时,它并不是在进行数据分析,而是在找你需要的数据。幸运的是,我们有很多资源。
你可以通过从所谓的API或
应用程序编程接口
获取数据来创建数据集,该接口允许你从某些供应商获取结构化数据。你可以在
Twitter
、
Facebook
和
Instagram
等其他网站上查询各种各样的数据。
如果你想基于公共数据集获取到一些信息,
美国政府
已经对所有人免费提供了一些数据集。
最流行的数据集
都会在Reddit上面留下踪迹。数据集搜索引擎,比如
Quandl
,可以帮助用户搜索出完美的数据集。
Springboard已经在我们的博客上收集了
19个我们最喜欢的公共数据集
,以帮助用户随时随地都可以用到质量较高的数据。
那么哪里可以找到一些有趣的数据集呢?看看Yhat的
你之前可能从来没有见过的7个数据集
,其中一个数据集是关于鸽子比赛的!
Python
支持大多数数据格式。你可以使用CSV,也可以使用来自web的JSON。你可以
直接将SQL表导入到你的代码中
。
你还可以从web创建数据集。
Python请求库
使用一行代码就可以从不同的网站抓取数据。你可以从维基百科的表格中获取数据,一旦你用
beautifulsoup
库清理了数据,你就可以对它们进行深入的分析了。
R语言可以
从Excel、CSV和文本文件中
获取数据。在Minitab或SPSS格式中构建的文件可以转换为R dataframes。
Rvest
包允许用户执行基本的web抓取,而
magrittr
将为用户清理和解析这些信息。这些包类似于Python中的请求和beautifulsoup库。
数据处理
Excel
允许用户轻松地使用菜单函数清理数据,这些函数可以清除重复的值、过滤和排序列,以及删除数据的行或列。
SQL
具有基本的过滤和排序功能,因此你可以准确地找到所需的数据。你还可以通过SQL更新表并从表里面清除某些值。
Python
使用
Pandas
库进行数据分析。与Excel相比,Python处理更大的数据集要快得多,而且拥有更多的功能。
你可以通过对Pandas的数据应用程序方法来清理数据。例如,可以将数据集中的每个错误值替换为一个默认值,比如一行代码中的零。
R
可以帮助你添加信息的列,重新塑造和转换数据本身。许多较新的R库,如reshape2,允许你使用不同的数据帧,并使它们符合你所设置的标准。
NoSQL
允许你将大数据集子集,并根据你的意愿来更改数据,你可以使用它来清理你的数据。
数据探索
Excel
可以将列添加到一起,获得平均值,并使用预先构建的函数进行基本的统计和数值分析。
Python
和Pandas可以采用复杂的规则,并将它们应用到数据中,这样你就可以轻松地发现高级趋势。
你将能够对Pandas进行深度的时间序列分析。你可以追踪股票价格变动的细节。
R
是用来对大数据集进行统计和数值分析的。你将能够构建概率分布,对你的数据应用各种统计测试,并使用标准的机器学习和数据挖掘技术。
NoSQL
和
Hadoop
都允许你在与SQL相似的级别上探索数据。
数据分析
Excel可以在高级级别分析数据。使用可以动态显示数据、
高级公式
或
宏脚本
的
主表
,这些脚本允许你以编程的方式处理数据。
Python有一个数字分析库:
Numpy
。你可以用
SciPy
进行科学计算和计算。你可以使用
scikit-learn
代码库访问许多预先构建的机器学习算法。
R有很多的包,用于特定的分析,比如Poisson的分布和概率定律的混合。
数据通信