Skip to content
On this page

数据科学

要学好下面的那些科目必须要先学好Python的基础知识和常用的数据分析库(Numpy, Pandas, Matplotlib)。相关的资料推荐请参考“编程”章节的Python部分

数据可视化

数据可视化在数据分析、机器学习和前端开发中都有应用,数据可视化的学习包括对其基本理论的认识和可视化工具的使用。

数据可视化理论

这块我个人认为听课和看课本就已经足够了。对于有志于深入研究数据可视化的同学,可以参考这个书单,挑选你感兴趣的一两本看一看。

数据可视化工具

对于包含图形界面的可视化工具(如微软的 Power BI,Tableau 等),笔者并不是很了解,而且就我所知在国内这类工具用的并不多。

在大作业和科研项目中,大部分的可视化都是通过编程完成的,最常用的编程语言是PythonJavaScript,这两门语言都有很多优秀的数据可视化第三方库。

大部分的数据可视化库其实没有必要专门学习,只要看文档了解一下安装方法和基本用法,然后用的时候再根据需要查API就好,如果不想看文档的话,也可以直接看官网的examples示例部分。

例如想要弄一个双坐标轴的 echarts 图表又不想看干巴巴的文档的话,就找实现了这个功能的官网示例,看看它怎么实现的就可以了。

  • d3.js - 数据可视化实战:使用D3设计交互式图表

    d3.js 是一个JavaScript的可视化库,不同于 matplotlibecharts 这类图表库,d3.js 的API更加底层,所以学起来会难一点,但因为其高度的自定义能力,所以可以实现更加酷炫的可视化效果。这本书是面向零编程基础的人员的(有基础的也可以看),讲解非常详细,提供了大量代码实例,也有练习题,是入门 d3.js 非常好的选择,看完就可以做一些简单的可视化项目了。

人工智能

  • CS50’s Introduction to Artificial Intelligence with Python

    这门课是编程那边提到的 CS50 的一个衍生课程,可以说是入门人工智能的最佳课程,不需要太多基础知识就可以学习。网站上面提供了视频、代码、课件和练习题。其涵盖的内容和学院的人工智能课程基本差不多,但讲的会比较浅,适合用于预习扫盲。推荐听完这个再去学习课程里面那些深入的内容,这样会感觉更有头绪。

机器学习

  • 机器学习专项课程 - 吴恩达

    吴恩达的这门课程可以说是入门机器学习的最佳选择,课程和作业质量都非常高。唯一的缺点是需要付费注册才能访问作业,对此有两种解决办法:

    1. 申请助学金:需要写两篇150单词的小作文陈述理由,在知乎上可以搜到模版,基本上都会通过的。申请完了就可以免费学习所有内容了。(如果申请成功了就好好学完,不然会在网站上有不好的记录)
    2. 在B站看搬运的视频,在 Github 上面搜每个章节作业的代码看。 我个人感觉在 Coursera 这种学习网站上注册之后会更有学习的动力,而且它会帮你把时间和学习的顺序都规划好,大家可以自己抉择喜欢的方式。

深度学习

  • 机器学习 - 李宏毅

    这门课虽然叫机器学习,实际上讲的基本都是深度学习的内容。李老师的课程有两个优点:第一是讲课抑扬顿挫,理论和实例结合的很好,听起来特别上瘾;第二是课程的内容紧跟最新的研究趋势。另外在课程的网站上也提供了 Google Colab 作业代码,有条件访问的同学可以上去跑一跑代码。但课程中实践性的内容比较少,因此容易出现学完了还是不知道怎么弄一个深度学习项目的情况。这门课适合用来入门深度学习,建立对深度学习理论和模型的直观认知。

  • 动手学深度学习 - 李沐

    李沐老师是深度学习届的大牛人物,这个课程有视频课程、代码、在线课本,还有kaggle竞赛形式的项目,而且是免费的!深度学习只有通过大量的代码实践才能学好,因此这门课是系统学习深度学习的不二之选。

    官网上对本课程的介绍如下:本课程将从零开始教授深度学习。同学们只需要有基础的Python编程和数学基础。我们将覆盖四大类模型:多层感知机、卷积神经网络、循环神经网络、和注意力机制。在此之上,我们将介绍深度学习中的两大应用领域—计算机视觉和自然语言处理—中的典型任务。本课程的一大特点是不仅讲述模型算法,同时会将每一处细节都讲述如何用PyTorch进行实现。

自然语言处理(NLP)

  • CS 124: From Languages to Information

    这门课由斯坦福大学的教授 Dan Jurafsky 讲授,此人是自然语言处理的大牛,是著名教材Speech and Language Processing的作者。课程内容包括正则表达式、朴素贝叶斯、逻辑回归、信息检索、词嵌入向量和神经网络等,基本上涵盖了学院的自然语言处理课程的所有内容,可以用来预习和复习(偷偷说一句,老师上课的PPT都是用的这门课的)。这门课不需要机器学习基础就可以学习,只要有一定的编程基础就行。教授的讲解非常深入浅出,而且每小节课程都是十分钟左右,学习起来十分轻松愉快。

    斯坦福大学还开源了一系列 cs224 开头的深度学习相关课程,包括关于自然语言处理的cs224n,以及关于计算机视觉、图神经网络和自然语言理解的课程。需要深入学习的同学可以了解一下。

    对于一些比较Advance的模型,例如卷积神经网络、BERT等,这门课没有讲解,可以参考上面所说的李宏毅老师的深度学习课程的相关章节来学习。