如何从零入门数据科学?
作者:Aparna C Shastry
翻译:文婧
本文约2000字,建议阅读5分钟。
通过本文教大家如何轻松的学习数据科学以及为入门者提供一些深入学习的指导。
我相信近日90%的LinkedIn交流都包含以下术语之一:DS,ML或DL (数据科学,机器学习和深度学习的缩写)。不过要小心这个陈词滥调,因为“80%的统计都是现场搞的”。如果你不太了解这些缩略词,也许你需要谷歌一下再继续阅读本文其他部分。本文的目标有二,一是尝试让大家轻松学习数据科学,二是为入门者提供继续深入学习的指导。
这是一张我在网上偶然看到的图片:
相当让人不知所措有木有!!!!
从哪儿开始! 如何开始?
我于2017年10月初开始数据科学之旅。我先花了15天时间试着对“什么是数据科学”这个纯粹的问题给出一个令人满意的答案。我充分浏览了互联网上的各种资源,包括Quora、Medium、Springboard博客和电子书、Udacity博客、Forbes、datascience.com,KDnuggets,datasciencecentral.com,Analytics Vidhya和其他各种网页(不充分浏览是不够的,不要怪我没有警告你)。然后我得出结论:数据科学(通俗地说)是让计算机用数据绘制出漂亮的图表,并用它讲出一个漂亮的故事来解决商业问题。是的,就这么简单。你不信?但真是这样。好吧,其实数据科学有两大派别,我这里谈论的是商业数据科学。另一个派别的最终产品不是故事,而是数据驱动的产品。我们不要深究那个派别,因为那样我们就会离题到机器学习工程里去。通常谷歌、Facebook等都有数据驱动的性质,属于第二派别。大部分学术研究也属于第二派别。
回到第一派别,我再为它下一个更深层的定义。数据科学是基于历史数据来解决商业问题的过程,这一过程包括前期对历史数据的整理和分析、继而纳入一个(或一组)机器学习模型、以达到对未来可能出现的问题进行预测并提出解决措施的目的。天啊!这简直酷毙了!圆满解答入门问题之后,我立即就它的最佳学习路径展开了思考。
学习路径?!
接下来我花了一段时间查阅这个短语,并且搜集到了无数的建议。这次我得对其中一些进行尝试了。我有电子和通信工程专业的学士和硕士学位,而且拥有十年编程经验,比如C / C ++,Octave / Matlab,Verilog / SystemVerilog,Perl等语言。我从小最喜欢数学,而硕士期间钟爱概率论。对我而言,我的优势无疑是编程经验和概率论。
我有点畏惧“机器学习”这个术语,但我是个乐于直面恐惧的人,于是我参加了吴恩达教授的Coursera课程。第一次学习就收效良好,这让我感到十分欣慰。我这人怕蛇和Python(译者注:Python单词有蟒蛇的意思),所幸吴恩达的课程练习以Octave为基础。我尝试了Coursera、Udacity、Edx和Datacamp等平台学习Python编程基础,并最终选择了Coursera和Datacamp。对于数据科学初学者而言,我认为以R入门可能收效更好。然而当时我并不确定只走数据科学这条路,Python的通用性更好一些。我便在几个平台同时学习若干课程,尝试在Udacity学习机器学习入门、统计学、CS基础知识、数据科学入门等。我并没有学习很长时间,因为我不太愿意在大脑吸收新概念时被打断。
非数据科学的其他课程
这时,我学习各种课程已经有很长时间了。我发现了一个来自UC, San DiegoCoursera的很棒的课程,名为“学习如何学习”。学习完这个课程后,我再次确信我的学习技巧没有问题。此外,它还打消了我对不再年轻是否还能接受新事物的疑虑。近期研究表明某些行为,如锻炼、冥想或者仅仅在大自然中漫步(我的必修课)会在大脑中产生新的神经元并形成新的联系。里面提到的番茄工作法对我也非常有帮助。我还以此为契机开始学印度商学院的“幸福美满的一生”课程。该课程使我心无杂念地钻研数据科学,提醒我要为单纯的学习乐趣而学习,注重过程而非最终结果。我发现它们对于进行快速有效学习很有帮助,尽管这些都是非技术的东西。
线下活动/项目:
我在10月中旬参加了一次线下活动,该活动是由当地的数据科学咨询公司组织的,该公司同时也开展相关培训,但我不太认可他们的模式。他们用你的钱训练你,如果你表现优异,再招聘你为雇员。这次线下活动让我意识到:“MOOCs无助于你的求职,而实际项目、Kaggle比赛、开设自己的博客却很有帮助。取得知名研究所的硕士学位会非常重要,但同一研究所的MOOC证书却没有价值”。
我这样认为:“重要的不是你的学习路径如何,而是你是否具备做一个真正的数据科学项目的能力”。如果你能够在面试中证明你的能力,那你怎么会找不到工作?你不需要在bootcamps上支付数千美元的费用,也无需获得MOOC证书。但你需要具备一套数据科学家的素质/才能/技能:包括充分理解高中数学概率统计学基本知识,拥有强烈的好奇心、求知欲和学习新事物的态度,熟悉编程,懂得记录和呈现,最重要的是,你必须知道你拥有这些技能。[如果你怀疑自我,那你首先要做的是排除疑虑。]之后再学习其余部分(如机器学习)。各大公司对数据科学家的需求非常多,尤其是像我所处的小城镇的公司,他们正在想方设法聘请一位优秀的数据科学家。牢牢记住,重要的是你要做一些真正的数据科学项目,并通过报告/演示或 github repo将它们展示给未来的雇主。如果你不知道如何做一个真正的项目,你可以寻求一位导师(技术专家)的帮助,而后在求职过程中寻求更高职位。
所以…
总而言之,填补关键知识缺口的最佳途径是什么?没有捷径。尝试几个平台吧,看看最适合你的是什么。你可以从MOOC入手,再不断深入。一定要好好安排并详细记录你的过程。先学习一个你不擅长的领域。例如,如果你已了解C++,那就不要立即开始学习Python,要知道你最终可以学会它。你可以尝试学习机器学习,看看你是否喜欢,因为数据科学家与数据分析师或数据工程师的区别就在于此。如果你不想自学它们中的任何一个,那么即使你参加训练营也无济于事。数据科学是一个需要每天学习的领域:新工具,新概念/算法,新业务/领域,无穷无尽,只有脚踏实地,且永不止步才能实现。