《数据科学概论》的学习路线图(Learning Road Map)

2022-03-25 Revision

本文档同时在如下网址提供:

http://xiongpai.gitee.io/datascience/(请使用PC浏览器打开)

https://datascience.neocities.org/(请使用PC浏览器打开)

https://blog.csdn.net/xiongpai1971/article/details/89364071(请使用PC浏览器打开)

《数据科学概论》第2版的内容体系更加完善,重点更加突出,学习路线图更加明确。

        覃雄派, 陈跃国, 杜小勇. 数据科学概论(2). 中国人民大学出版社, 2022.

 

前言

《数据科学概论》第1版出版以后,引起了大量关注。任课老师纷纷表示,愿意使用该教材开设《数据科学概论》课程。

在和一些老师的沟通和交流中,了解到他们面临的主要问题是,本书内容稍微有点多,全部讲下来不容易;如果要全部讲下来,容易面面俱到没有重点,也讲得不深入,讲得不清楚。

中国人民大学老校长成仿吾教授提出的教学三原则,仍然值得我们学习和借鉴,理论联系实际,内容少而精,教与学相一致

在教学中,应该对内容有所挑选。给使用本书的老师和同学一个学习路线图,并且详细说明本书内容是如何支撑这个学习路线图的。

为此,本书作者梳理了数据科学概论课程的目标。对本书内容进行了仔细分析,按照数据科学概论课程目标的要求,把内容划分为必学内容和选学内容,并且给出如下的教学大纲。

 

1.教材承担内容体系:培养宽广的视野

在《数据科学概论》第2版本中,我们对部分内容进行了删减,对部分内容进行了修正和丰富,体现了数据科学应有的知识体系、以及知识点之间的联系,有利于学生展开宽广的视野。

我们认为在内容体系方面,数据科学概论由理论部分和应用部分构成。形成两条线索,两个T型,如图1所示。

 

数据科学概论

OLTP与数据服务

OLAP与结构化数据化分析

数据清洗与数据集成

统计分析、数据挖掘与机器学习

云计算平台、Hadoop & Spark大数据处理平台、Python语言与统计分析/数据挖掘/机器学习工具库

 

 

数据科学在各个领域的应用

政府、

金融、

电商、

互联网……

 

其它数据处理模式:流数据处理

其它数据类型的处理:文本、社交网络、轨迹数据、时序数据……

 

1. 《数据科学概论》内容体系

理论部分,先由浅入深,再宽度展开,旨在培养学生宽广的视野,形成完整的知识体系。应用(实践)部分,先宽度展开,再深入某个应用领域(政府、金融、电商、互联网……),旨在培养学生的动手能力和浓厚兴趣。

理论部分解决所以然的问题,而应用部分解决的问题。我们既要知其然,也要知其所以然。

 

2.教学大纲给出有重点的学习路线图:有重点、有路线

与此同时,如下的教学大纲,将对内容有所选择,做减法,突出重点。有利于老师把相关内容讲的更加深入、细致、清楚,同学们理解得更加透彻,并且有充分的动手实践的时间,通过一系列示例、小练习、大作业,切实培养数据的感觉,实现教学目标。没有在课程中讲授的内容,学生可以自行选择学习。

 

3.课程定位与教学目标

数据科学家是大数据时代最急需的人才,他们应具有宽广的视野,同时具有扎实的理论和技术功底。数据科学专业的整个课程体系,涵盖一系列基础课程包括数学课程、计算机课程,以及一系列专业课程,为培养能够解决复杂业务问题的、合格的数据科学家服务。

在整个课程体系中,数据科学概论课程的定位是一门入门和统领式的课程,它把学生引进数据科学的大门。对数据分析的基本原理和关键技术有一个初步了解,培养以数据为中心的问题求解的思想方法和初步能力。

它的目标有两个,一个是展开宽广的视野,培养浓厚的兴趣;另外一个是打下坚实的基础。该课程的学习,有利于学生学习后续课程,有利于培养新一代数据科学家。

该课程一般在大学二年级下学期开设。在这个时间点,学生已经学习了必备的数学知识和编程语言,可以开始该课程的学习。而学完这门课,则为大学三年级的其它专业课学习,打下必要的基础。

在教学目标方面,突出两个方面,一个是掌握数据分析的基本思路、基本理论与基本方法,一个是实践应用能力培养,即面向具体行业的实际需求,能够给出数据解决方案,并最终实现它。

内容选择方面,不要求面面俱到,而是精选部分算法,细致讲解算法的数学基础和推导过程。难度方面,该门课程定位为入门的课程,目的是培养学生浓厚的兴趣,难度上要适中。加强实践环节,要求同学们熟练掌握相关工具,完成数据管理和分析全流程的实践,切实培养学生的动手(编程)能力。

 

4.教学内容和教学计划

教学计划,对教师而言就是教学的行动指南;对学生而言,则是学习的路线图。

4.1教学内容模块化

数据科学概论是一门入门性质的课程,内容安排时需要注意取舍,达到广度和深度的平衡。既要避免泛泛而谈、没有重点,也要避免只及一点、不及其余。

从广度上来讲,要帮助学生构建起一个完整的知识体系。在理论部分,包括数据科学的基本概念、技术和方法,数据的不同类型,数据的生命周期和数据处理的流程,数据处理的不同模式,数据分析的主要方法等。其中数据的类型是丰富多样的,包括文本、社交网络、时间序列、轨迹数据、音频/图像和视频等。在应用(实践)部分,包括成功案例的介绍,以及熟悉数据处理的基础设施、平台和各种工具以及编程语言。

内容如此繁多,在深度上,选择几个专题进行深入地介绍。在介绍完数据科学的基本概念、技术和方法、以及主要的数据类型及其分析方法之后,选择某几种具体的数据类型,进行深入的介绍。在内容方面删繁就简,突出结构化数据分析、文本分析、和图数据(社交网络)分析三大块。

在实践部分,给出一系列示例,设计一系列小练习、以及一两次大作业。大作业要求学生结合实际数据,基于数据分析,完成业务目标。大作业的选题来自各个大赛赛题或者企业应用,发挥学生的能动性,解决实际问题。

为此,教学内容分为如下几大模块,各个模块的规模不尽相同,各个模块及时间分配建议如图2所示。

 

 

 

 

Relational(3)

 

 

概论(1)

>> 

Python(2)

>> 

Machine learning(3)

>> 

Platform(1)

 

 

 

 

Text(3)

 

 

 

 

 

 

Graph(3)

 

 

2. 数据科学概论课程教学内容的各个模块

概论(1)主要介绍数据科学的基本概念、()数据及其价值、数据的生命周期和数据处理的流程,包括数据的采集和获取、数据预处理/清洗和集成(Preprocessing)、数据管理(Management)、数据分析(Analysis)、数据可视化(Visualization)和解释等,以及数据处理的不同模式。

Python(2)Python语言部分,包括Python语言基础,以及Python的几个重要的库的介绍。重点介绍数据预处理库Pandas、数组和计算库Numpy

本课程的主要的目的是把同学们引进数据科学的大门,培养数据的感觉和兴趣,基础理论精选精讲,然后通过工具的使用和编程开发,让学生迅速获得数据处理分析和数据价值的感觉。

Relational模块(3)基于关系数据库管理系统(MySQL)SQL on Hadoop系统等工具(平台),实现数据从生产系统向分析系统的抽取、转换和装载,以及后续的多维分析(OLAP)。这个模块的目的,是使得同学们熟悉关系模型和SQL语言。作为数据科学家,熟悉SQL语言是必备的基本技能。

在中国人民大学信息学院,由于学生后续有《数据库系统概论》专业课专门讲授关系数据库管理系统和SQL语言,所以Relational模块删除掉,把时间充实到其它模块。

Machine Learning模块(3)介绍数据模型和通用的数据分析方法、数据可视化等。有些老师更习惯在介绍各个模块比如文本处理的时候,适时地介绍一些机器学习方法。但是笔者更加倾向于专门安排时间,统一介绍这些数据分析方法。比如SVM方法,可以用于文本处理,也可以用于图像处理,单独介绍是合适的。重点对分类(KNNDecision Tree, SVMNaïve Bayes)、聚类(K-MeansGMM)、回归(线性回归、多项式回归)、和降维(SVDPCA)等不同类别的主流方法给予介绍。同时介绍Python的机器学习库scikit learn和可视化库matplotlib/seaborn

Text模块(3)基于分布式的大数据处理平台(Hadoop/Spark/Lucene)和各种工具,包括Scrapy爬虫、Jieba分词、NLTK库、scikit learn库等,对文本进行分词、索引与检索、实体识别、情感分析、话题发现、可视化等。重点讲解文本爬取、文本表示、文本分类、以及文本检索。进行文本检索试验时,由于Lucene的安装配置比较复杂,可以选用Elastic Search代替。

Graph模块(3)基于Python NetworkX库、或者Neo4J数据库(如果时间有限,可以仅仅限于NetworkX的介绍),对图数据进行创建、查询、CentralityPage Rank计算、路径分析、社区检测、影响力分析等一系列分析。重点讲解图的表示、中心度和PageRank、社区检测和Louvain算法、IC模型和影响力最大化等。

Relational模块、Text模块、Graph模块都带有很强的实践性,除了理论介绍之外,还要介绍主流工具的使用,并且给出若干示例,以便加深学生的理解。

老师在讲解原理、方法、工具的基础上,布置一系列小练习。要求学生熟练使用上述平台和工具,对数据集进行处理、分析和可视化,并且解释结果,体现数据的价值。

Platform模块(1)介绍云计算平台,大数据处理工具Hadoop/Spark,以及流数据处理的基本原理。使得学生对分布式计算与大数据平台(Hadoop & Spark)、数据处理的不同模式(批处理和流式处理)有所了解。由于平台部分的内容相当丰富,此处仅做一般了解。

    数据科学不能归结于、或者等同于大数据。用大数据的几个V(Volume, Velocity, Variety, Veracity)来划分和把握数据科学的内容,或者用几个V来构造数据科学的内容体系,是很成问题的。首先,数据科学是关于数据的科学,不管是大数据、中数据、还是小数据,都是它研究的对象。另外,大数据的大(大数据还有其它特点)是一个相对的概念,今年的大不一定是明年的大。现在已经大得不得了的数据,复杂得不得了的数据,过几年随着计算机存储和计算能力的提升,变得如此普通平常。当我们有办法应对大数据的几个V的挑战,我们无需再强调大数据的所谓大,而是强调数据和数据的价值,强调挖掘数据价值的方法。

但是,数据科学应该包含大数据的相关内容,我们应该对相关的技术有一个基本了解。对于大数据工具Hadoop/Spark,以及流数据处理的基本原理的更为深入的掌握,数据科学概论课程不应承担,应该放在专门的专业课或者选修课里面。

4.2 实践环节——示例(综合案例)、小练习、大作业

《数据科学概论》强调实践性,学生需要通过一系列实际操练,才能深刻理解所学的内容。在实践方面,包括三个方面,分别是示例、小练习、大作业。

我们提供一系列示例,涵盖某个或者某些知识点。这些示例从数据和代码量来讲,规模一般很小,容易运行,很快看到结果,还可以改改,看看其不同效果,有利于学生深入理解和掌握各个知识点。如果示例的规模太大,代码很长,学生不容易运行起来,结果遥遥无期,挫折紧跟着挫折,不利于学生迅速获得成就感。

光有这些示例是不够的,我们培养数据科学家目的,是让他们能够综合运用所学知识,解决实际业务中更复杂的问题。综合案例把数据的采集和准备、数据的清洗和集成(包括多源异构集成、多模态数据融合)、数据的探索、数据的建模、模型的训练与运用、以及分析结果的可视化和解释等完整的流程勾连起来,培养学生全流程的能力。

从学生的角度,需要完成一系列小练习,巩固对各个知识点的掌握。此外,完成1-2次大作业,大作业最大的特点是综合性。学生要发挥其主动性和能动性,创造性地运用所学的各个知识点,形成技术方案,分析数据解决问题,完成既定的业务目标。使得学生学会使用工具,并且结合具体业务问题,培养初步的工程经验。

4.3教学计划

1展示了一个教学计划,对上述设想进行了细致安排,给出了必备教学辅助材料,请读者参考。

1. 教学计划

* 请用PC浏览器打开本网页

* 微云下载:使用手机微信扫描网页二维码登录下载

* 飞书下载:在网页上注册并且登录飞书账号下载

周次

内容(每周3个课时或者4个课时)

示例(见压缩包)

小练习(见压缩包)

大作业、补充材料、备注

1

0101-概论(链接)(链接2)

0102-Python(链接) (链接2)

 

0.运行、掌握提供之示例

 

2

0103-pandas(链接) (链接2)

0103-numpy(链接) (链接2)

 

1.pandas示例

2.numpy示例

0.运行、掌握提供之示例;在EDA练习中灵活运用numpypandas

 

3

0104-数据模型、数据探索与数据预处理(链接) (链接2)

 

1. EDA示例:分类

2. EDA示例:回归

3. EDA示例:聚类

0.运行、掌握提供之示例

1. penguin/ IRIS EDA

2.Oil well EDA

3.customer churn EDA

 

4

0201-OLTP与数据服务(链接) (链接2)

0202-OLTP实例(链接) (链接2)

0203-OLAP与结构化数据分析(链接) (链接2)

0204-OLAP实例(链接) (链接2)

 

1.S-SC-C学生选课示例/银行核心系统示例

2.销售数据OLAP示例

0.运行、掌握提供之示例

1.SSB-1GB数据集OLAP练习

2. IMDB Top250 OLAP练习

如果课时较少,可以删除OLTP以及OLAP部分;从第4周开始机器学习内容

5

4

0301-分类:KNN、决策树、分类算法的评价(链接) (链接2)

0302-分类:Pre+梯度下降算法入门(链接) (链接2)

0302-分类:Pre+矩阵求导(链接) (链接2)

0302-分类:Pre感知机(链接) (链接2)这部分可选

0302-分类:SVM(硬间隔、软间隔、梯度下降算法)(链接) (链接2)

0302-分类:SVM(原问题加上核函数技巧与梯度下降算法)(链接) (链接2)

0303+分类:(附加)+AdaBoost(链接) (链接2)这部分可选

0303+分类:(附加)逻辑斯蒂回归(链接) (链接2)这部分可选

0303+分类:(附加)逻辑斯蒂回归(核函数)(链接) (链接2)这部分可选

0304-回归:一元线性回归(解析解与梯度下降算法)(链接) (链接2)

0305-回归:多元线性回归(解析解与梯度下降算法)(链接) (链接2)

0305-回归:多元线性回归(正则化+核函数)(链接) (链接2)这部分可选

0306-聚类:k-meansGMM(链接) (链接2)

0307-神经网络入门、反向传播算法(基于一个简单的神经网络)(链接) (链接2)

0308-神经网络MLP二值分类、多类别分类、回归(不同损失函数,反向传播算法)(链接) (链接2)

0309-特征工程(链接) (链接2)这部分可选

 

1.KNN/决策树示例

2.SVM示例

3.一元线性回归示例

4.多元线性回归示例

5.k-means示例

6.GMM示例

7.神经网络二值分类示例

8. 神经网络多类别分类示例

9. 神经网络回归示例

0.运行、掌握提供之示例

1.信息增益计算、决策树代码分析与运行效果

2.SVM梯度下降算法公式推导、SVM self-implement代码分析与运行效果、self-implement vs. scikit learn

3.线性回归梯度下降算法的公式推导、线性回归self-implement代码分析与运行效果、self-implementation vs. scikit learn

4.GMM极大似然估计公式推导、1/2GMM self-implement代码分析与运行效果、K-Means vs. GMM比较

5.MLP神经网络的正向传导和反向传播公式推导、self-implement代码分析与运行效果

 

大作业1:量化交易(提供股票价格数据,划分训练集和测试集,同学们基于数据分析,进行交易决策,完成买卖交易,交易策略可以打榜)

(链接) (链接2)

(1)进入机器学习模块即布置该大作业

(2)平时上机除了完成小练习,开始逐步完成大作业

5

6

7

8

9

0401-文本入门、regex与文本数据采集(链接) (链接2)regex与文本数据采集可选

0402-文本分词(HMM)、词云(链接) (链接2)

0403-文本表示1TF-IDFSVD(链接) (链接2)

0403-文本表示1(附加)NMF(链接) (链接2)这部分可选

0404-文本表示2 Word2Vector(链接) (链接2)这部分可选

0405-文本分类与朴素贝叶斯(链接) (链接2)

0406-文本检索、文本排序、与评价:夹角余弦相似度、BM25(链接) (链接2)

0407-PLSA模型(链接) (链接2)这部分可选

1.采集示例(可选)

2.分词示例

3.文本表示TF-IDF/SVD示例

4.文本表示Word2Vector示例

5.文本分类示例

6.倒排索引、文本检索示例

0.运行、掌握提供之示例

1.政府工作报告分词与词云

2.TF-IDF

3.SVD vs. NMF

4.文本分类

5. 逐步完成大作业

大作业2:文本分析,可以选择如下不同数据集(可以事先准备好数据集,无需自行采集)

(1)垃圾短信的分词、词云、分类、检索等;(2)餐馆点评的采集(可选)、分词、词云、情感分析、可视化、检索等;(3)电影评论的采集(可选)、分词、词云、情感分析、可视化、检索等(链接) (链接2)

10

11

12

13

0501-图数据入门、中心度(链接) (链接2)

0502-Page rank(链接) (链接2)

0503-Hub & authority(链接) (链接2)这部分可选

0504-图的社区检测:Louvain算法&标签传播(LPA)(链接) (链接2)

0505-影响力最大化1degree discount(链接) (链接2)

0506-影响力最大化2:基于最优路径(链接) (链接2)

0507-(附加)图卷积神经网络(链接) (链接2)这部分可选

 

1.中心度示例

2.Page rank示例

3.Hub & authority示例

4.Louvain&LPA示例

5.GCN示例

0.运行、掌握提供之示例

1.Page rank 算法公式推导、Page rank self-implement与试验

2.Louvain模块度变化公式推导、Louvain算法实验(不同dataset)

 

继续完成前述大作业

14

15

16

17

0601-HadoopSpark入门(链接) (链接2)这部分可选

复习与答疑

1.pagerank on spark实验(small dataset示例)这部分可选

1.pagerank on spark实验(larger dataset练习)这部分可选

 

18

期末考试

 

 

 

备注:大作业的选题来源,包括Kaggle大赛题目、国内大数据大赛赛题、企业应用等;主题可选结构化数据分析、文本分析、社交网络分析。

 

5.实验环境介绍

本机实验环境:学生可以在自己的笔记本电脑上安装和配置python编程环境、MySQL数据库、Neo4J桌面版等,相关实验包括OLTP/OLAPTextSocial Network以及大作业,都可以在本机开展。

云平台实验环境:在Hadoop/Spark上完成大数据实验,比如SQL on Hadoop上的OLAP。由于HadoopSpark实验环境的建立相当复杂,需要耗费大量的时间。由助教(每个教学班配备2位助教)把实验环境预先建立好,无需同学们自行安装配置;只需要按照试验指导完成试验即可。

当数据集比较小,可以通过单机进行处理。如果数据集比较大,可以使用HadoopSpark平台进行处理。比如同样是OLAP实验,可以在单机上通过MySQL完成处理,也可以在Spark平台上通过Spark SQL完成处理。通过HadoopSpark平台处理大数据,正如前文所述,作为可选内容,不做强制要求。

 

6.考核办法

2. 考核办法和比例

总评成绩100%

期末考试成绩40%

平时成绩60%

 

 

考勤和课堂表现10%

历次练习和两次大作业90%,包括EDA+ML练习、Text练习、Graph练习、大作业1、大作业2

总评成绩由期末考试成绩和平时成绩构成,期末考试成绩占40%,平时成绩占60%;平时成绩由历次练习和两次大作业、以及考勤和课堂表现构成,历次练习和两次大作业占平时成绩的90%,考勤和课堂表现占平时成绩的10%;任课老师还可以根据具体情况调整。

 

7. 致谢

本文是在和陈跃国、范举、徐君、李翠平、柴云鹏、窦志成、文继荣、杜小勇、王珊等老师讨论的基础上,进一步思考、整理、和丰富形成的,在此对各位老师表示感谢。

 

8. 后记

任课老师可以根据授课的课时数,对内容进行选择,对计划进行进一步的调整。

比如,在中国人民大学信息学院,由于学生后续有《数据库系统概论》专业课专门讲授关系数据库管理系统和SQL语言,所以Relational模块删除掉,把时间充实到其它模块。

 

9. 任课老师申请教材

任课老师可以下载如下申请表(链接) (链接2),填写相关信息后,向中国人民大学出版社申请教材。