对于数据科学领域的初学者和职场小白来说,理想往往很美好,现实却很骨感。理想的数据科学世界与现实中遇到的问题之间往往存在着鸿沟。
许多数据分析课程都旨在教授学生编程、统计学、数据整理等方面的基础知识。然而却极少涉及在实际的数据科学工作中会遇到的挑战。
数据分析课程提供了数据和工具,并要求你得到预期的结果。而在实际工作中可能不会给你提供数据,也不会提供适当的工具,甚至不知道预期结果是什么。此外,公司通常有严格的截止日期,而且提出分析要求的人对统计的理解也是有限的。
为了让你掌握完成数据分析任务的技能,大学的数据科学课程有意降低了当中的障碍,从而让你专注于核心的数据科学部分。随着课程的内容不断丰富,介绍了统计分布,假设检验,分类器和各种工具,比如R,SPSS,Python和RapidMiner。最后,在掌握了基本知识之后,你会得到一个非常干净的数据集,并被要求对随机森林和其他类型的分类器进行对比。
当然,这种类型的学习能够为你以后的职业生涯打下基础,和任何书本知识的作用一样。但是这些理想化的项目与现实的工作相比,需要经过一个漫长而痛苦,并且需要不断调整的过程。
对于数据科学领域的新手来说,以下数据科学的十大常见误区每一条都是血与泪的教训。
1.数据是存在的
首先对特定的分析任务,假设存在可用的数据是这项工作的前提。似乎这是最基本的假设,但是很多情况下会发现,被要求分析的某些数据集并不存在,无法访问,缺少通常的标识符等等。
在开始任何任务之前第一个问题就是,基础数据是否存在。如果盲目地开始,并接受截止日期是很不明智的。最糟糕的情况下,你会孤立无援,手上没有任何数据,并被要求完成不可能实现的分析任务。
在这种情况下,你恨不得用任何与数据有关的东西来交差,但这将不可避免地导致错误的结论和工作上的指责。如果数据是完全缺失的,请提前说出来。如果数据不完整,也请提出来。但不要把这个当做万能的借口来罢工,毕竟不可能有人帮你把数据集整理好并交到你的手上。
2.数据是可访问的
很好,你已经确认所需要的数据集实际存在于某个地方,而且据说基本上是完整的。现在,下一个障碍是这个数据是否能在一定的时间内提供给你。由于法律,合同或财务等方面的原因,提供免费而简单的访问渠道并不符合数据所有者的最佳利益。即使在个别公司内部,获得数据也不是那么简单的,可能会遭到拒绝。一旦涉及到资金问题,特别是在数据管道中有外部参与者的情况下,有时你会发现一行SQL查询都会被当作一个大项目,同时也是一笔巨大的账单。
因此,每个精明的数据科学家的目标都是成为自己数据管道的共同管理者,从而在获得数据方面会轻松一些。
3.数据是一致的
出于明智的考虑,最好找到一个一致的数据集,结构良好,前后一致并且格式定义明确。发现一个数据文件突然从19列变成20列,或者相同数据不同版本中列的顺序发生变化,这别提有多闹心了。
就像所有不受欢迎的意外一样,一些错误通常会在最后一刻出现。当你在R Studio中调用read.csv()函数来查看数据时,当看到即使数据看起来是一致的,当看到讨厌的UTF-8字符,或者一个文件中看到日期格式从 YYYYMMDD变成MM-DD-YY之类的,此刻内心一定是崩溃的。
要记住,尤其是当依赖传统系统的数据管道时,除非数据源是由数据科学家或数据工程师设计的,否则它可能会根据不同的操作出现各种错误。
4.数据是相关的
初露头角的数据科学家可能会发现,他们期待已久的数据集既不是最新的,也不是分析所需的级别。
Google Analytics可以说是分析Web用户行为中使用最广泛的来源,但有进行详细分析时存在一些问题。首先,它很难识别Web用户。其次,令人不安的是GA提供的总页面浏览量是“估算值”,而不是实际的统计量。因此,由于不相关的数据,一些合理的要求变得难上加难。例如,当要求用户登录某网址的预测留存率时,GA数据几乎没有用。
5.数据是直观易懂的
很多时候我拿到数据集会发现,这个数据集就像古代文字一样很难破译。领域特定的代码,截断的文本字段,缺少的查询表,缺少或命名错误的标头字段都会导致数据的难以理解。
“垃圾进,垃圾出”(garbage in,garbage out)的做法往往会导致难以理解的数据在输出结果中被忽略。而最坏的情况下,当你在寻找所谓的HEADER_1文件时,会带来一系列的不必要问题。除非在分析中有对数据的详细描述,否则你可能不知道测量的究竟为何物。
6.数据可以被处理
有一个600MB的CSV文件,你需要在一台老旧的低配笔记本电脑上,使用Excel VLOOKUP函数与另一个600MB的CSV文件进行对比。对于数据科学家新手,尤其是那些在大型企业工作的来说,会惊讶的发现,数据科学工具被认为与IT领域的其他软件应用程序没有区别。
开源工具有时不受欢迎,没有安装权限,任何工具必须符合一些不为所知的IT安全认证。IT工作者有时需要为很完善的软件包提供详细的安全审计。还有一些功能完善、先进的软件应用因为供应商“太便宜”或者“没有指定的某某供应商”,被IT行业的老板拒绝。
除了处理大数据集的简单技术问题之外,IT行业存在一些规则,让你获得需要的工具来处理手头的任务。有人被迫使用Excel来执行V-Lookups,用来连接两个数据集,因为没有人提供更好的工具。这种短期的IT限制会导致,处理单个文件就需要好几个小时。然而若给出一些代码和并行操作,这只需几分钟就可以自动完成。
7.分析可以轻松地重新执行
“你还记得三个月前帮我做的分析吗?这是最新的市场数据,你能帮我重新运行吗?谢了!”
这类似于有人给你一块拼图,并要求你在很短的时间内重新拼好,因为你之前已经拼过了。或者类似想住到危房里,因为在过去这是很宜居的。
除非你明确地设置了分析可以重新执行,并且保持数据源是当前的状态,否则后续更新和重新导入内容去获得更新的分析是万分痛苦的。这还没考虑到使用的数据是否是静态的,或者数据库模式是否改变。
因此,如果你被要求执行一个听起来很大型的分析任务工作,设计一下bugger,从而能够很容易地重新运行,这样能够尽可能减少自己的工作量。
8.不需要加密
你已经完成了分析,编写好了报告和幻灯片,现在需要将数据发送给其他人审查。接着将所有客户资料的数据以纯文本格式粘贴到电子邮件中,那么会出现什么问题呢?如果邮件发送地址填错的话,很可能发错人,最惨地是把公司的详细的财务分析错误地发给了竞争对手!
对发送的任何数据加密是有道理的。安全是第一考虑要素,做好善后工作是第二个原因,除此之外还有很多其他原因。
在将任何东西发送给任何人之前,首先就需要对访问原始数据和分析结果进行一定程度的加密。如果你无法安装某些GPG客户端(因为这会违反安全条款),那么必须通过加密的文件格式进行加密,比如受密码保护的Excel或加密的zip。
9.分析输出很容易分享和理解
面对现实吧,大多数看到你分析结果的人几乎没有任何分析基础。他们可能会不懂装懂,要求你在分析中加上更多的功能来,声称在使用之前需要被数学验证过。有些人只寻找某些特定p值,有些人则仅凭直觉,结果是你的分析被各种质疑。
因此,你需要将结果转化为更容易被他人理解。
10.你要找的答案就在那里
有点像寻找复活节彩蛋,即暗示任何数据科学项目的预期目标都是可以实现的,只要给出一定时间和一些工具。然而,没有好心人会帮你在数据中加料,从而得出有用的结论。
想知道为什么网站的点击率在这个月下降了?想知道为什么清楚顾客更喜欢产品A而不是产品B?这些分析需求中预先带有预期结果,这往往不利于正确的科学研究。