林荟 (Hui Lin)
2016-9-10
文中的代码可重复:),有任何问题联系邮箱: <longqiman>@gmail.com
我在2015年12月份北京的一次沙龙上介绍北美各种和数据分析相关职位要求的时候,从技术层面上列举了一些数据科学家需要的技能。现在进一步讨论下这个职业需要的不同方面技能。
数学、统计、计算机或其它定量分析学科(电子工程,运筹学等)的本科以上学历是必须的。根据2015年的统计数据,美国的数据科学家有48%有博士学位,44%有硕士学位,只有8%是本科。研究生博士期间的课题最好偏向机器学习,数据挖掘或预测模型。
其次需要的是数据库操作技能。在工作中通常需要用SQL从数据库读取数据。所以能熟练使用SQL是基础。对于统计或者数学专业的学生,在校期间可能不需要使用SQL,因此不太熟悉。这没有关系,我也是工作以后才开始使用SQL的。但你要确保自己至少精通一种程序语言,之后遇到需要用到的新语言可以迅速学习。在学校期间的主要目的不是学会毕业后所需的全部技能,这是不可能完成的任务。
高等教育(本科,研究生和博士)后应该具有的是基本的专业知识和自学能力。数据科学和很多其它领域一样,需要终身学习。有很多人问,要成为优秀的数据科学家是不是一定需要博士?这个问题很难用简单的是或者不是来回答。我看到的大多数优秀数据科学家确实都有博士学位,其余也都是硕士。我并不是要说高学历是成为优秀数据科学家的必要条件,其实真正重要的不是那个学历本身,而是拿到那个学历的过程,以及会选择获许这些学位的人共有的一些特质。
在美国,一般情况下,如果你拿到数理专业的博士学位,至少说明一个问题,就是你对学习的东西有兴趣。这样成天在电脑前面分析数据,编写程序的生活,对于那些对此不感兴趣的人来说必定是难以想象的痛苦。
其次是研究生期间系统的理论训练。很多人可能觉得模型背后的数理知识不重要,只要会用模型就可以。统计软件使得很多模型使用者不需要知道具体的模型原理。了解模型原理是否能够帮助你更好的使用模型?当然会有帮助。但问题是这个帮助有多大?是不是值得我们花几年时间去学习?学习很多东西的好处是很难用短期去衡量的。我没有严格的分析,只是个人觉得了解模型原理是必要的。我很喜欢一个词“匠人精神”,也很乐意将“数据科学家”称为匠人,这是一种精益求精的精神。当然这种精神和学位没有必然联系,有本科毕业而对数据科学很感兴趣,自己学习也能够对这个学科有很深的理解。但大多数对这个领域感兴趣又具有“匠人精神”的人都有相关领域的更高等学历。
最后,当然就是学习的能力。即使拿到博士学位,也不意味着学完了所有知识,而是具备进一步自学的能力,可以自己看懂数新方法的论文,也就是具备了在这个领域发展的自学能力。总的来说,这个领域的高学历现象并不能说明学历是必要条件,也不是充分条件。真正重要的是兴趣、匠人精神和自学能力。
编程能力也是数据科学家需要的基本技能。熟练使用一种编程语言是必须的,如R,Phython,C等。有人可能会问,只会SAS够不够?个人意见是:不够。这里不想对SAS过多评价。我的建议是大家至少要熟悉一门开源语言。当然,这些都只是工具,工具是解决问题的手段,而非目的。你必须要有一个能用来进行数据分析的工具,偏好因人而异,但你选择工具的时候最好考虑工具的灵活性和可扩展性。
数据科学家应该掌握高等概率统计,能够熟练进行t检验,开方检验,拟合优度检验,方差分析。能够清楚的解释Spearman秩相关和Pearson相关之间的区别。熟悉抽样,概率分布,实验设计相关概念。了解贝叶斯统计(很快就能在白板上写下贝叶斯定理)。知道什么是有监督学习,什么是无监督学习。知道重要的聚类,判别和回归方法。知道基于罚函数的模型,关联法则分析。如果从事心理相关的应用的话(如消费者认知调查),还需要知道基本的潜变量模型,如探索性因子分析,验证性因子分析,结构方程模型。这个单子还可以一直列下去。看起来是不是不只一点吓人?我说过,数据科学家不是一个低门槛的行业,之前需要接受的训练对于没有兴趣的人来说是无比痛苦的。还有,单子是动态的,因为你在工作过程中还是需要不断学习。这些技能只是让你能够很好的开始。再次强调自学能力和成为一个终生学习者是优秀的数据科学家的必要条件。
除了技术能力以外,还需要其它一些非技术的能力。这些包括将实际问题转化成数据问题的能力,这一过程需要交流,也就要求良好的交流沟通能力。关注细节,分析是一个需要细心和耐心的职业。还有就是展示结果的能力,如何让没有分析背景的客户理解模型的结果,并且最终在实践中应用模型的结论。“数据科学家技能表”中总结了数据科学家需要的各方面技能。
总而言之,关于数据科学家有三个关键词:数据,科学和艺术。数据是基础;科学是工具;艺术是纽带,最终通过艺术将数据和科学结合得出的结果转化成相关领域的可应用知识,解决问题,真正产生价值。在实际应用中,以需要解决的问题为导向的思维方式很重要,否则分析很容易沦落为手段淹没目的的过程,很多分析行业的人就会犯这个错误,一味追求高大上的模型,酷炫的可视化,而忘了分析的根本目的是为了解决问题。关于数据科学都可以解决哪些问题,可以参考这篇文章:数据科学可以解决什么问题?