【看中国2017年7月2日讯】数据科学技能
大多数数据科学家每天都使用组合技能,其中一些是他们在工作当中自学的,也有可能通过其他途径学到的。他们有各自不同的背景。不是说你非要有什么学位证书才能证明你是数据科学家。
本文涉及到的所有技能都可以自学。我们已经列出了一些资源,以帮助你走上数据科学家这条路。你可以把本文的内容看作是指导你如何成为一名数据科学家。
数学是数据科学的重要组成部分。从微积分到线性代数这些大学数学的基础知识,要确保你都能知道。你知道的越多,你也会越来越好。
当数据变得越来越庞大,也就意味着它越来越难处理。这时候你就必须使用数学来处理数据了。
别以为你在大学没上过这些课,你就可以不知道了。说到底你还得需要了解如何操作数据矩阵,算法数学背后的大致思路你也得知道。
参考资料: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的分布和概率定律的混合。
数据通信
Excel有基本的图表和绘图功能。你可以轻松地构建仪表板和动态图表,只要有人更改了底层数据,就可以更新这些图表。
Python有许多强大的选项来可视化数据。你可以使用Matplotlib库来从你的Python中嵌入的数据生成基本的图形和图表。如果你想要一些更高级的东西,你可以试试绘图。ly和它的Python API。
你还可以使用nbconvert函数将你的Python笔记本转换成HTML文档。这可以帮助你将代码片段嵌入到交互式网站或你的在线投资组合中。许多人使用这个函数创建了在线教程,学习如何学习Python。
R是用来做统计分析并演示结果的。它是一个强大的环境,适合于科学可视化,有许多专门用于图形显示结果的包。基本图形模块允许你从数据矩阵中生成所有基本的图表和图。然后,你可以将这些文件保存为jpg格式的图像格式。或者你可以将它们保存为独立的pdf文件。你可以使用ggplot2来获得更高级的情节,例如使用回归线的复杂散点图。
开始找工作吧
既然你已经掌握了数据科学的技能和工具,以及了解如何成为一名数据科学家,现在就该把这个理论应用到数据科学工作的实践中去了。
构建数据科学组合和简历
想要进入到数据科学行业,那么你必须得给面试官留下深刻的第一印象。这需要从你的个人资料和简历开始。许多数据科学家都有自己的网站,这既是他们工作的储存库,也是他们思想的博客。
这使他们能够展示他们的经验和在数据科学社区中创造的价值。为了让你的个人资料有同样的效果,它必须具备以下特征:
你的资料应该突出你最好的项目。相比于展示太多没有价值的项目,重点突出那些值得纪念的项目会更好。
必须是精心设计的,并且讲述一个引人入胜的故事,能让别人知道你是谁,而不是你的工作。
你应该通过突出你的工作所带来的影响来为你的访客建立价值。也许你建立了一个对每个人都有用的工具?也许你有教程?展示在这里。
应该很容易找到你的联系方式。
看看我们的导师Sundeep Pattem的个人资料是如何展示的,比如他所参与的项目。
他研究的是在现实世界中引起共鸣的复杂数据问题。他有5个项目,涉及医疗成本、劳动力市场、能源可持续性、在线教育和世界经济,这些领域有大量的数据问题需要解决。
这些项目独立于任何工作场所。他们表明,Sundeep天生喜欢用数据科学来解决复杂的问题。
如果你缺乏项目创意,你可以参加数据科学竞赛。像Kaggle、Datakind和Datakind这样的平台让你可以处理真正的公司或社会问题。通过使用你的数据科学技能,你可以展示你的能力,并创造出最强大的投资组合资产:表现出对行动的偏见。
在哪里找工作
Kaggle提供了一个专门针对数据科学家的工作委员会。
你可以在工作搜索引擎Indeed上面找到一份公开的数据科学家的工作。
Datajobs上面有很多数据科学家的工作。这是一个了解如何成为数据科学家的好地方。
你也可以通过网络和找导师来寻找机会。我们需要继续强调的是最好的工作职位通常是通过与数据科学社区的人交谈来发现的。这就是你成为数据科学家的方式。
你也可以在创业论坛上找到工作的机会。Hacker News有一个专门为Y Combinator孵化的创业公司(也许是世界上最有声望的创业加速器)。Angellist是一家寻求融资的创业公司的数据库,它有一个就业部门。
数据科学面试
我们完全可以将面试写成一本书,事实上,我们也真的这么做了!
如果你接受了面试,你接下来会做什么?在数据科学的面试中,有很多问题都是被问到的:你的背景,编码问题,以及应用机器学习的问题。在任何数据科学的采访中,你都应该预见到技术和非技术问题的混合。确保你对你的编程和数据进行科学研究,并试着将它与你的个人故事交织在一起。
你也经常被要求分析数据集。你可能会被问到文化契合度和统计问题。为了准备编码问题,你必须把对数据科学的采访部分看作是软件工程的练习。你应该复习一下所有的编程面试资源,其中很多都是在线的。下面是一些你可能会遇到的数据科学问题。在这些问题中,你会看到一些常见的问题:
在这些问题中,你会看到一些常见的问题:
Python vs R:你更喜欢哪种语言?
什么是k-均值(一种特定类型的数据科学算法)?描述你什么时候使用它。
请告诉我一些你工作的最后一个数据科学项目。
你对我们业务的主要增长驱动力有什么了解?
第一类问题测试你的编程知识。第二种类型的问题测试你对数据科学算法的了解,并让你与他们分享你真实的生活经历。第三个问题是深入研究你以前对数据科学所做的工作。最后,第四种类型的问题将测试你对你所面试的企业的了解程度。
如果你能证明你的数据科学是如何帮助你的潜在雇主的,你就会给他们留下深刻印象。他们会知道,他们有足够的人关心他们的工作,而且他们对这个行业了解得足够多,他们不需要教给你很多东西。这就是成为数据科学家的方法。