0 引 言
计算机的计算能力和存储能力不断提高,使得人们更加容易获取、存储和传输数据,数据规模越来越大,大数据时代已经到来。数据中埋藏着巨大的价值,通过数据分析,我们能够对数据所蕴含的规律性有所认识,进而帮助企业、政府、机构了解现状,预测未来,为决策提供必要的辅助信息。
在大数据时代,高效率高质量地培养一大批合格的数据科学家是一个迫切的任务。2016年,北京大学、对外经济贸易大学和中南大学3所高校获得教育部批准,先行开设“数据科学与大数据技术”本科专业。至今,全国已经有超过400所大学获得教育部批准开设该专业。近年来,这些大学如火如荼地展开专业建设工作,包括课程体系建设、教材建设、课程建设等。目前,对这个新专业的课程体系设计以及各门课程的具体建设工作进行反思,是各个高校的相关教师关注的问题[1-2]。
1 课程分析
作为数据科学与大数据技术专业的学科基础课,数据科学导论课程一般在第2学年的下学期开设。这时学生已经具备了必要的数学基础,学习了1~2门编程语言,为开始学习该课程做好了准备。学完这门课,则为大学三年级、四年级其他专业课的学习打下坚实的基础。
该课程的教学目标包括两个方面。①理论方面,要求学生掌握数据分析的基本理论、基本方法与基本思路。②实践方面,培养学生的编程能力,即要求学生面向具体行业的实际需求,能够给出基于数据分析的解决方案,并且编程实现。
2 课程建设
数据科学导论课程是数据科学课程群的第一门课程,起到统领整个课程群的作用。精炼概论、Python基础、机器学习基础、文本分析、图数据分析、大数据平台等模块,并且精选各个模块的教学内容,完成该课程的内容体系构建,以解决本课程和后续其他课程内容的切割与衔接问题,并制订详细的教学计划;在此基础上,设计一系列示例、小练习和2个大作业,以培养学生的编程能力和初步的工程经验。
3 关于数据科学导论课程建设的反思
3.1 如何做好该课程与后续课程之间的内容切割
如何做好该课程和后续课程之间的内容切割?比如,该课程涉及数据处理的若干关键技术,包括统计分析方法、机器学习算法、数据挖掘算法,介绍到什么程度?如果介绍得过多,则造成与后续课程的过多重复;介绍得太简单,则容易造成本门课程的“水课”倾向。
以“机器学习”部分为例,笔者精选决策树、KNN(K Nearest Neighbor)算法、一元线性回归和多元线性回归、支持向量机(Support Vector Machine,SVM)、K-Means聚类、混合高斯模型(Gaussian Mixture Model,GMM)等内容。这些内容涵盖了有监督学习到无监督学习、线性分类到非线性分类、分类到回归、单变量回归到多变量回归、硬聚类到软聚类等主要技术;在这些内容的介绍中,体现了模型、目标函数设定、目标函数优化(主要讲梯度下降算法)等机器学习建模的要素。
在支持向量机的介绍中,进行原问题的建模和求解,包括硬间隔、软间隔、核函数技巧的介绍,但是,没有涉及对偶问题的建模和求解,这些内容放在后续的传统机器学习课程中,由此很好地解决了本门课程和后续课程的内容切割。其他内容按照类似的办法处理,完成本门课程内容的框定以及和其他课程内容的切割;同时在本课程放置一定容量和一定难度的内容,做到内容充实,避免本门课程内容过于简单而演变成“水课”。
3.2 如何把握内容讲解的深度
在2019学年给大学二年级下学期学生首次开设数据科学导论课程时,原本只讲解基本原理,力求浅显易懂,目标是培养学生的兴趣和对数据的感觉,强调使用工具和学会编程。后来发现,这样授课的深度不够,学生即使使用某些技术完成了任务,比如使用K-Means算法完成了文本数据的聚类,对此项技术的理解也不是很深刻。
为此,笔者对内容进行精简,并对精选的内容进行深入细致的讲解,包括问题的建模、关键公式的推导、结论(包括算法的优势和劣势、适用范围等)、问题示例与求解(即给出实际数据和求解过程)、示例代码等。其中关键公式的推导重点体现讲解的深度,使学生对相关内容的理解更为深刻。比如,针对支持向量机部分,把数据集分成3种情况,分别是数据线性可分、数据基本线性可分、数据非线性可分,从向量夹角、距离等概念开始,层层递进,引出硬间隔、软间隔、核函数等问题模型及其解决策略,符合学生的认知规律。
3.3 数据科学不能等同于大数据
在本门课程的第1个学年的教学实践中,尝试用大数据的几个“V”,即大数据的数据量(Volume)、速度(Velocity)、数据多样性(Variety)、数据可信度(Veracity)等,来梳理和划分数据科学的内容,构建该课程的内容体系,然后一一进行介绍。最后发现,这样做造成了内容的割裂感。
数据科学不能等同于或者归结于大数据。首先,数据科学是关于数据的科学,不管多大规模的数据,都是它研究的对象,包括大数据、中数据、小数据。另外,大数据的“大”是一个相对的概念,目前规模很大、很复杂的数据,由于计算机的计算能力和存储能力的提升,会变得普通平常。当有办法应对大数据几个“V”的挑战时,就无须再强调大数据的“大”,而应强调数据的价值和挖掘数据价值的方法以及其中的规律性。
为此,笔者对课程内容进行梳理,包括概述、Python语言与工具、机器学习、文本数据的分析、图数据的分析、大数据实践等。在大数据实践部分,介绍大数据的特点以及当前主流的大数据处理和分析工具Hadoop/Spark,要求学生在Spark平台上完成既定的Page Rank试验。
4 教学实践
4.1 新的课程内容体系和教学计划
经过2019学年到2022学年4个学年的教学实践,对数据科学导论课程的内容进行了一系列微调,最后确定的主要模块[3-4]及教学计划如图1所示。
(1)概论(1周):概论模块介绍数据科学的基本概念、大数据的价值、数据的生命周期以及数据处理的整个流程。数据处理的整个流程包括数据的采集和获取、数据清洗和集成、数据管理、数据分析、数据可视化及结果的解释等。
(2)Python(2周):该模块介绍Python语言基础和几个重要的库,重点介绍Pandas库和NumPy库。Pandas是最常用的数据预处理库,NumPy是最常用的多维数组处理库。本模块的目的是把学生引进数据科学的大门,培养其对数据价值的认识。基础理论部分采取精选精讲的原则,然后通过工具的使用和动手编程解决问题,让学生直观感受数据处理分析的过程,体会数据价值,激发其兴趣。
(3)Relational(3周):熟练掌握和灵活运用SQL语言,是数据科学家必备的技能。该模块的目的是使学生熟悉关系数据模型和SQL查询语言,基本任务是把数据从生产系统向分析系统进行抽取、转换和装载,然后在关系数据库管理系统(MySQL)、SQL on Hadoop系统等平台上进行后续的多维数据分析(Online Analytic Processing,OLAP)。我校信息学院为大学三年级学生安排了数据库系统概论专业课,该课程讲授关系数据库管理系统以及SQL语言,所以本课程删减了Relational模块。
(4)Machine Learning(3周):该模块介绍主要的数据模型、主流的数据分析方法与数据可视化技术。有些教师倾向于在介绍具体的数据分析处理(如文本处理)时介绍相应的机器学习方法,笔者则专门安排时间集中介绍这些数据分析方法。比如支持向量机,适用于不同应用场合,包括文本处理、图像处理等,专门进行介绍是合理的。重点对分类、聚类、回归和降维等不同类别的机器学习的主流方法进行介绍,分类算法包括K最近邻算法KNN、决策树Decision Tree、朴素贝叶斯分类Naïve Bayes、支持向量机SVM等,聚类算法包括K-Means、混合高斯模型GMM等,回归算法包括线性回归、多项式回归等,降维算法包括奇异值分解(Singular Value Decomposition,SVD)、主成分分析(Principal Component Analysis,PCA)等。在介绍算法原理的同时,介绍scikit learn机器学习库和matplotlib/seaborn可视化库。
(5)Text(3周):该模块介绍文本分析和可视化,重点讲授文本的采集、表示、分类及检索。使用Scrapy爬虫库、Jieba分词库、NLTK文本分析库、scikit learn机器学习库等软件完成文本的分析处理。
(6)Graph(3周):该模块介绍如何对图数据进行处理,包括图的创建和查询、中心度(Centrality)计算和Page Rank计算、路径分析、社区检测及影响力分析等,使用的软件工具包括NetworkX库、Neo4J数据库、Gephi等。重点介绍图的表示、Degree/Closeness /Betweenness三大中心度、Page Rank算法、Louvain算法、IC(Independent Cascade Model)模型、基于Discounted Degree的影响力最大化算法等。
4.2 实践安排:示例、小练习和大作业
本课程强调实践性,学生要通过一系列实际练习深刻理解所学的内容。实践部分包括3个方面,即示例、小练习和大作业。
(1)提供一系列示例,这些示例涵盖某个或者某些知识点。这些示例从数据和代码量来看,规模一般比较小,容易运行,能很快看到结果。学生可以对代码进行修改,看到其运行的不同效果,有利于学生深入理解和掌握每个知识点。如果示例的规模太大,代码很长,学生不容易运行,不利于迅速获得成就感。
(2)除了跑通示例,学生还要完成一系列小练习,巩固对各个知识点的掌握。比如,当讲到文本的表示部分,布置TF-IDF文本表示的练习,该练习要求在小规模文本数据上通过编写代码计算文本的TF-IDF表示。
(3)设置2个大作业,分别对应机器学习模块和文本分析模块。由于图数据分析模块的讲解接近学期的结束,不利于大作业的完成,该模块只布置了小练习。
4.3 大作业特点与案例
1)大作业体现综合性。
数据科学家应该能够综合运用所学知识,解决实际业务中更复杂的问题。大作业串连了数据处理流程的所有环节,包括数据的采集和预处理、数据的清洗和集成(包括多源异构数据集成、多模态数据融合)、数据的探索、模型的构建、模型的训练与运用、分析结果的可视化及其解释和运用等,其目的是培养学生全流程的能力。
文本分析大作业体现了此特点,可以选择不同数据集,比如垃圾短信、餐馆点评、电影评论等,完成数据集的采集、分词、词云、情感分析、可视化、检索等数据分析任务。学生要发挥其主动性和创造性,运用所学的各个知识点形成技术方案,分析数据解决问题,完成既定的业务目标。大作业使学生学会使用工具,并且结合具体业务问题养成初步的工程经验。
2)大作业要引起学生的浓烈兴趣,并且容易评价。
机器学习大作业体现了此特点,该大作业要求学生完成一个量化交易策略。量化交易策略分为选股、择时、高频交易等类型,这里主要考查择时策略,在以后的教学中还可以进一步扩展。
首先,由助教准备好价格数据,涵盖若干只股票5~10年的A股每日收盘价(daily price),数据划分为训练集(train.csv)和测试集(test.csv)。训练集(train.csv)发布给学生,以便开发交易策略;测试集(test.csv)由助教保留,准备测试学生的交易策略。
开发交易策略程序,程序每次馈入(feed in)一个价格数据(price bar);交易策略不断积攒数据;运用数据预处理与分析方法预测价格变动趋势,作出交易决策,即什么时候买入,什么时候卖出;最后计算利润率、夏普指数、最大回撤等性能指标。学生完成train_strategy.py程序,运行train_strategy.py,读取训练集(train.csv)完成模型训练,保存模型到model.pkl文件中;并且完成test_strategy.py程序,该程序从model.pkl文件装载模型,在测试数据(test.csv)上运行交易策略,获得利润率、夏普指数、最大回撤等指标(如图2所示)。
设置3个排行榜对学生的交易策略进行评价,依次为利润率排行榜、夏普指数排行榜、最大回撤排行榜。在利润率排行榜上,利润率越高越好;在夏普指数排行榜上,夏普指数越高越好;在最大回撤排行榜上,最大回撤越小越好。针对这3个排行榜,按照最好到最差排序得到每位学生的利润率、夏普指数、最大回撤的分数,分别为n、n-1、……、2、1(n为全班人数);每位学生的最后分数为这3个分数的加权求和(可以简单求和);最后按照总分排序,得到每位学生交易策略的排行榜评分。“打榜”是最激动人心的,可极大地激发学生的兴趣。在此基础上,教师可以根据排行榜评分、试验报告写作和代码质量,给出大作业的最终评分。
3)大作业要避免和后续其他课程重复。
在本课程中,重点考查学生初步利用机器学习算法处理各类实际数据(包括文本数据)的能力,主要考查数据标注、特征构造、模型调参、模型评价等方面,要求学生灵活运用本课程讲授的机器学习算法,结合具体问题给出可行方案。
5 结 语
我校信息学院为了适应数据科学与大数据技术专业的人才培养要求,对课程体系进行了改革。在“数学和自然科学”与“人文社科教育”2个支撑课程群基础上,用“系统平台”“问题求解”和“数据科学”3个课程群来组织计算机专业课程,一起构成整个课程体系。“系统平台”课程群包括计算机组成原理、操作系统和编译原理等课程。“问题求解”课程群包括编程语言、数据结构和算法等课程。“数据科学”课程群涉及数据的采集、存储、管理、分析、落地应用等各个环节,涵盖云计算、大数据、AI等新兴技术。数据科学导论(也称为数据科学概论)课程作为整个课程群的第一门课,起到引领作用。
对数据科学导论课程的内容体系建设包括模块设计、每个模块的内容挑选,并制订详细的教学计划;为了培养学生的动手能力,设计了一系列示例、小练习和2个大作业,并且给出了大作业的评价方法。该课程方案的实施,使得学生对数据的价值和数据分析的基本方法有了基本的了解,通过小练习和大作业的实践,编程技能得到有效提升。笔者将继续完善数据科学导论课程的内容体系,改进编程实践环节。希望该课程建设的经验和反思,对兄弟院校的教师和学生有借鉴的作用。
参考文献:
[1] 覃雄派, 陈跃国, 李翠平, 等. “数据科学”课程群与“数据科学导论”课程建设初探[J]. 大数据, 2018, 4(6): 19-28.
[2] 覃雄派, 陈跃国, 杜小勇, 等. “数据科学概论”课程设计[J]. 大数据, 2017, 3(6): 102-111.
[3] 中国码云. 数据科学概论的学习路线图[EB/OL]. (2022-03-25)[2022-07-01]. http://xiongpai.gitee.io/datascience/.
[4] 覃雄派, 陈跃国, 杜小勇. 数据科学概论[M]. 2版. 北京: 中国人民大学出版社, 2021.
第一作者简介:覃雄派,男,中国人民大学副教授,研究方向为高性能数据库、大数据分析与信息检索,qxp1990@ruc.edu.cn。
引文格式:覃雄派,陈跃国,范举. 数据科学导论课程建设与反思 [J].计算机教育,2023(2):64-67,73.
转自:“计算机教育”微信公众号
如有侵权,请联系本站删除!