Github标星超7k!从零开始,最简明扼要的数据科学学习路径
大数据文摘出品
作者:蒋宝尚
试图入门一个新话题时,多数人会感到不知所措?这时候,一份明确的学习路径可以帮你去除这一焦虑。
数据科学当然也有这样一套路径。
一周前在Github上出现的一份超高赞贴就总结出了这样一份“入门套路”,据这位神秘的发帖人所说,数据科学的学习不需要繁杂的准备和高深的数学知识,你只需有足够的时间、正确的学习方法、对数据分析的好奇心就足够了。
这个项目是Github上一位名为“维吉尔(Vigilio)”的开发者整理的。项目包括职业进阶路径、专业知识讲解、工具介绍等,着重强调,不走弯路,简明扼要!
Vigilio称,这篇帖子按照层次结构和复杂程度组织编写,以便让学习者对事物的运作方式有一个连贯的想法。
另外,小哥还搞了个 Facebook 群组,并不断往上面更新信息,鼓励大家一起学习,互相激励。
5天前,这份github资料被名为@jiaxianhua 的同胞翻译出了简体中文版,让不想费力读英文的同学也可以轻松上手啦。
当然,先附上网址
github地址:
http://t.cn/EJaGK3E
Facebook 群组
http://t.cn/EJaGK3u
下面文摘菌根据这份资料给大家捋一捋如何高效入门数据科学。
新接触数据科学
新接触数据科学需要什么?当然,Python这一基础的编程语言需要掌握。一些数学的基础知识当然也少不了。如果想进阶的话,当然就需要学习一些高等的数学知识和高级的Python啦。
在这份github项目里,这位外国小哥给出了基础Python教程以及数据科学 Python 教程。其他的部分,包括高级Python、高等数学以及数学科学里的数学知识,目前都还是“即将推出”的状态。
先学Python然后入门数据科学,这绝对是最高效的学习路径。
在基础Python目录下,先给出超链接让你学习基本算术运算和数据类型,然后介绍流程控制,包括if语句的使用,for循环的使用等等。
关于函数的使用,在项目中,作者也给出了一个好的经验法则是:如果一件事情要重复做3次以上,那就写一个函数吧,并根据你的需要决定调用次数。
除此之外,一些基础知识也有介绍。包括如何定义函数,如何调用等等。
总之,资料非常丰富,对于一些问题讲的不够清楚的地方也给出了超链接转到了相应的答案。
完整的学习路径
一个专业的机器学习工程师应该专注于 TensorFlow 和 Scikit-Learn。而使用Scikit-Learn主要能做的是端到端机器学习项目、线性回归、分类、训练模型、支持向量机、决策树、集成学习和随机森林以及无监督学习。
使用TensorFlow能够搭建:ANN - 人工神经网络,CNN - 卷积神经网络,RNN - 递归神经网络以及自动编码器和做强化学习相关的项目。
除了使用这两个框架之外,一些文章,网络应用程序,reddit 线程,最佳实践,项目和repo也非常值的看。
数据科学备忘单
https://github.com/FavioVazquez/ds-cheatsheets
真实数据科学/ML 项目的集合
https://docs.google.com/document/d/e/2PACX-1vRRC3ZIcvjFqEYEgnN9pptoWONr2mSGZJ4hSdL8Jpf2IpXdxjTc-d3jrpb98h59xJnZ3h1frUDydoxc/pub
TensorFlow中的教程和 ML 项目的集合
https://github.com/jtoy/awesome-tensorflow
其他 TensorFlow示例
https://github.com/aymericdamien/TensorFlow-Examples
更多需要收藏以及注意的文章,博客可以去这份资料中寻找:
地址:
https://github.com/clone95/Virgilio/tree/master/zh-CN/LearningPaths/Machine%20Learning%20Engineer%20Career%20Path
在学习机器学习时,数学知识应该掌握到什么程度?正如这份github的作者而言:
无论谁告诉你机器学习背后的数学很难...... 都没有错!但是你必须考虑到每次你要使用它时,机器都会为你处理它!因此,重要的是掌握主要概念并认识到这些概念的限制和应用。没有人会要求你手工计算梯度!注:在路径这一块,目前只有机器学习相关资料,商业智能和云计算都是待推出状态
专业化
这个类别中,目前存在的是数据预处理和有效陈述这两个项目。同样,其他的项目包括数据可视化、数据采集等都是待推出的状态。
关于数据预处理,其实是个迭代过程的收集、组合、结构化和组织数据。目的是为以后的数据可视化,分析和机器学习打下坚实的基础。
每一个数据科学家或者数据工程师都应该具有清洗和构造数据的能力。不同的数据类型,需要做出不同的数据处理。在做数据预处理的过程中最主要是有不要把数据当玩笑的心态。
首先在尝试数据准备步骤时,先不要处理 GB 级别的数据。只需使用数据的小子集 ,但子集要具有代表性)
在做数据清洗工作时候,需要注意:删除额外的空格、选择并处理所有空白单元格、转换值类型、删除重复项、将文本更改为小写 / 大写、拼写检查、处理特殊字符、规范日期、验证丰富数据、数据离散化、特征缩放等等。数据预处理是非常复杂的,你的最终目标是做到尽可能 自动化。
然后在数据分析中需要明确:你打算解决哪个业务问题 (什么是重要的,什么不是);数据是如何被收集的(有噪音,缺失值......) ;你们有多少数据在那里,我在哪里可以找到他们? (数据维度和从存储中检索)。
在学习数据预处理的过程中,你可以按顺序选择它们或选择最适合你的那个,但建议你至少要一次把它们都看完。
总体来说有两种类型的专业化:硬技能和软技能。
前者是关于技术流程,是每个处理数据的人的核心工具包。使用数据是一种艺术形式,经验法则和最佳实践将帮助你了解处理它们的方式。你需要对如何处理数据产生一种 “感觉”,这种 “感觉” 主要是由情况和经验驱动的。
后者是真正的价值促成者。如果有了软技能,你可以成为世界上最好的开发人员或工程师,但如果你无法向受众传达你的建议和发现,或者使用数据来建议企业如何做决策,那么你对公司来说就毫无用处。
在向受众传达建议和发现时,需要的框架包括:设置、故事、情绪和感觉(你需要在你的受众中重现它们)、结论的动机以及结论。
在说话时候注意使用第一个人,注意修辞问题,表达尽可能的自然,最后给出总结理由和实际建议。
工具
在学习的过程中,要熟练的使用Jupyter Notebooks、latex、Wolfram Alpha等等。
LaTeX 是一种标记语言(或者,如 官方网站 所述,“用于高质量排版的文档准备系统”) 用于创建精彩的论文和演示文稿。你在职业生涯中阅读的几乎所有论文都是使用 LaTeX 编写的。
LaTeX 有几个发行版,打开下面的链接可以看到
http://www.tug.org/interest.html#free
安装后,你需要一个编辑器来编写 LaTeX 文档。可以使用你想要的任何编辑器,包括记事本,vim,nano,gedit 等,但建议你选择免费和跨平台的 Texmaker 。
Texmaker
http://www.xm1math.net/texmaker/
另外,推荐下面这个网站,它允许用户在线编写公式,并且还有大量符号,你只需单击,生成所需的代码即可。你还可以预览公式,以便更容易确保所有内容都正确编写。
网站地址:
https://www.codecogs.com/latex/eqneditor.php
WolframAlpha (WA) 是一个计算知识引擎。其具有强大的数学能力,它可以成为一个非常强大的工具来帮助你进行计算。具体的功能包括基本计算、绘图函数、求解方程、解不等式、矩阵代数、计算级数和、求导、计算积分、求极限等等。
GeoGebra (GG) 是一个功能强大的动态数学应用程序,适用于所有级别的教育,它将几何,代数,电子表格,图示器,统计和无穷小计算结合到一个易于使用的单一软件。 GeoGebra 社区正以指数级增长,数百万用户遍布许多国家。 GeoGebra 已成为全球高等数学,科学支持,技术,工程和数学以及教学和学习创新软件的领先提供商。
下载及使用教程:
https://github.com/clone95/Virgilio/blob/master/zh-CN/Tools/GeoGebra.md
然后是正则表达式,这是一种匹配一种编写匹配字符串的模式的方法。
使用教程:
https://github.com/clone95/Virgilio/blob/master/zh-CN/Tools/Regex.ipynb
好了,到这里,这份资料讲述的学习路径差不多全部包含了,还有一个用DialogFlow 和 Flask 打造 ChatBot的主题以及读论文必用的工具—Zotero,感兴趣的读者可以自行探索。
最后,附上完整的路径图,enjoy