数据科学该怎么学?必备技能有哪些?
最近,一份数据科学领域的学习宝典在推特上火了,吸引点赞1k+。
之所以能够引起大家的关注,是因为这份教程将数据科学广而杂的知识内容,梳理成了14个方面及各自要点,同时解答了许多学习中的常见疑问。
比如“用什么语言比较好”、“哪些工具最适合”。
这份学习宝典的作者为Matt Dancho,他是一个数据科学学习网站的创始人。
那么,具体这份干货到底讲了什么?是否真的如此神奇?
我们一起来看。
进入正题之前,我们先来浅聊一下数据科学 (Data Science)。
数据科学是指通过挖掘数据、处理数据、分析数据,从而得到有用信息的技术和研究,再将这些信息应用到不同领域的各个方面。
该学科结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算等,覆盖知识面非常广。
作者表示想要掌握这些技能,大概每周要投入10个小时来学习。
那么在开始真正学习之前,先来看一个最关键的问题——
在这里,作者认为选择R语言或者Python都可以。
如果从从业角度出发,他会考虑以下三个因素:
编程语言对数据科学的影响有多大?就业市场的需求如何?就业市场的竞争力如何?
第一方面,作者直接将二者进行了对比。
Python非常适合机器学习和深度学习。但是在市场报告方面的优势不大,能用于统计经济学等重要领域的库比较少。
R语言在业务分析、数据科学方面都拥有完善的工具支持,在深度学习方面的应用比较弱。
不过作者认为,深度学习在数据科学中的应用不多,而且在需要深度学习或者其他API时,R语言可以和Python集合。
再从就业市场角度来看。
作者统计了美国招聘市场上的数据。
结果显示,Python方面在招职位的数量,是R语言的2.4倍。
但是了解、掌握Python的人,也比掌握R语言的更多。
可能达到4-32倍。
最终作者认为,选择R语言更有优势。
那么还有一些其他基础技能呢?
比如推荐使用Excel吗?
作者认为,虽然Excel的使用人群更广、商务人士非常喜爱,但是它在处理机器学习、大数据方面都不具有优势,而且单元格中的函数也容易报错。
所以,建议大家慎重使用Excel。
而在选用什么开发工具方面,作者展开了一项小调查。
针对喜欢使用R语言的人群,RStudio是大家最喜爱的开发工具。
Python方面,Jupyter、VSCode更受人们欢迎。
在这里作者没有给出明确的推荐,大家可以按照喜好选择。
接下来,就到了正式学习的环节。
大致可以分为4个步骤:
掌握基础技能学习建模学习时间序列分析将模型集成到应用程序
所需要点亮的技能树如下所示:
看到这里,先不要头皮发麻……作者给出了一些具体的学习tips。
第一,从基础技能学起。
可能很多人一上来就想搞定机器学习,但这可能会影响学习兴趣&效率。
作者用R语言进行了示范,列举了一些基础技能:
导入数据:使用数据库,连接到SQL,readr包, readxl包;转换数据:处理异常值、缺失数据、重塑数据、聚合、过滤等;可视化数据:静态/交互式数据可视化,ggplot2以及plotly;处理文本数据、函数式编程……
如果以上这些基础技能都掌握后,接下来就可以学习机器学习了。
在这里,可能有人会疑惑,不应该先学习数学、统计和算法吗?
对此作者认为,如果从头开始学习如何编写算法,可能并不是快速上手数据分析。
所以,他更推荐从实战中学习这些技能。
简单来看可以分为三步:
把机器学习应用在实际问题上;尝试使用不同的算法;对比不同的应用结果。
在这方面需要用到哪些工具呢?
Tidymodels和H2O是作者推荐的两个软件包。
另外,Recipes中具有很多预处理工具,可以转换数据、创建数据特征。
接下来,作者推荐你开始学习时间序列分析。
因为这个技能意味着你可以对未来的一些数据进行预测,掌握这项技能也会使你成为大厂手中炙手可热的人才。
在这方面,你需要掌握的技能如下:
时间序列分析:处理日期/日期时间数据、聚合、转换、可视化时间序列、使用timetk预测:ARIMA、指数平滑、Prophet、机器学习(XGBoost、随机森林、GLMnet 等)、深度学习(GluonTS)、集成、调整超参数、扩展预测、modeltime包。
进行到这一步后,你就可以尝试去创建一个模型并投入使用了。
在这里,作者推荐了一个能够将模型集成到应用程序中的工具——Shiny。
这个程序包可以用来创建交互式Web应用程序,代码可以在本地或服务器上托管。
看完这份技能树后,也有网友提出了疑问:
为什么没有看到深度学习?
作者回复表示:针对商业应用,机器学习会更实用。
作者表示,有位小哥在他们网站选择了快速进修的课程后,得到了微软机器学习工程师的offer。
当然,这份完整的学习计划是可以白嫖的(链接请见文末)。
对于这篇分享,你怎么看?
欢迎留言讨论~
学习清单: