基于CDIO理念的数据挖掘课程教学探索*

2021-12-31 15:47黄发良钟世华何万莉
关键词:数据挖掘算法实验

黄发良,钟世华,何万莉

(1.南宁师范大学 a.计算机与信息工程学院;b.新闻与传播学院;c.马克思主义学院,广西 南宁 530001)

0 引言

大数据时代的来临对人们的现实生活、企业的运营管理模式提出新的挑战,也带来新的市场机会。在大数据时代,无处不在的智能终端、互动频繁的社交网络和超大容量的数字化存储,大数据已经渗透到各个行业,已成为一种生产要素并逐渐发挥着重要作用,拥有大数据系统技术将成为未来竞争的制高点。如何从动态高速、多模异质与价值比低的海量数据中发现潜在有价值的规律与知识,并应用于经济生产、行业管理和社会服务,是一个关系着国计民生的重大课题。在这样的背景下,数据挖掘已经成为学术界与工业界的研究热点和焦点,数据挖掘课程在数据科学与工程的人才培养中扮演日益重要的角色[1-5]。

尽管数据挖掘课程在高等教育普及度在逐步增长,但在教学内容、教学方法和实验教学模式等方面存在诸多不足,比如培养目标模糊、创新意识薄弱、实验模式陈旧等等。本研究笔者结合大数据特性与数据分析理论,对数据挖掘理课程的理论教学与实践教学进行了思考与探究,实现了教学水平和教学质量的提升,培养出更多的能适应大数据时代的数据挖掘优秀人才。

1 课程特点

数据挖掘课程作为一门理论与实践紧密结合的交叉学科,具有如下的自身特点:

(1)学科交融性。从技术上讲,数据挖掘是一个知识发现的过程,就是从具有模糊随机、异构低质等不同特性的大量实际应用数据中提取人们事先未知却又潜在实用的隐含信息和规律的过程。数据挖掘挖掘任务往往是一个涉及信息收集、数据集成、数据规约、数据清理、数据变换、模式推导、模式评估与知识表示等不同子任务的迭代过程。从其定义与实施可知,数据挖掘是一个与机器学习、数据仓库,统计学,智能决策等多个学科紧密交融的交叉性学科。例如,统计机器学习是非结构化的文本数据挖掘中重要方法之一。

(2)理论复杂性。各种数据挖掘任务往往可以形式化为不同性质的数学问题,研究求解这些数学问题的算法或理解相关数学问题都需要不同领域的复杂数学理论。例如,理解数据降维算法主成分分析PCA就需要以研究函数和变换为重点的代数理论,理解数据分类算法决策树的信息熵需要具备以统计模型和样本分布为重点的统计学理论,研究数据预测模型神经网络中的权重梯度下降算法就需要应用连续度量空间中的微分理论,优化数据分类模型支持向量机SVM需要泛函分析理论以理解从有限维空间拓展到无限维空间的映射。

(3)技术前瞻性。信息技术的快速发展已经极大地促进海洋、环境、太空、能源等不同领域学科的数据急剧增长,这些来自不同应用领域、类型丰富的海量数据不断提出新的数据挖掘挑战,为了更好地满足各种新兴挖掘需求,研究人员提出了各种新的挖掘模型与算法,数据挖掘项目实施者需要跟踪理解各种新模型与新算法。比如,微博微信、Twitter、Facebook等社交用户产生了包含视频、图像、文本与链接等不同模态的海量数据,使得传统挖掘算法难以有效发现隐藏其中的规律与知识,海量数据的易获性与算力资源的廉价性促使以神经网络为基本组成单元的深度神经模型备受关注,并在社交媒体数据挖掘任务上取得了极大的成功。

2 CDIO理念

CDIO(Conceive,Design,Implement,Operate)工程教育模式是近年来国际工程教育改革的最新成果,其提出者是麻省理工学院和瑞典皇家工学院等大学组成的跨国研究组织。CDIO的核心思想是促使学生以主动实践与课程交融的学习方法学习产品生命周期内的工程理论、工程技术与工程经验。具体而言,C(Conceive)就是通过工程实践让学生掌握专业知识的基本原理以确定其发展方向,D(Design)是围绕产品设计与规划来解决具体问题,I (Implement)就是以制造为核心,组织一体化的课程实践以提升学生的理论知识储备与实践能力,O(Operate)是产品应用的各个环节[6-7]。

当前,应用型创新人才培养已经引起国家的高度重视,“工程教育认证”和“执业资格认证”的火热推广便是明证。极具特色的CDIO教育理念越来越受到教育工作者的重视。史晓楠[8]以校级软件创新班为例,基于CDIO理念对软件类创新型人才培养模式进行了研究,设计出一套完整的人才培养模式体系。宫唤春[9]探讨了基于CBE和CDIO理念的智能运输系统实验教学改革,强调以学生为中心,以职业岗位职责能力为导向,并基于校企联合开发的智能交通实践教学平台,对智能运输系统实验教学进行了项目化设计。张丽娟等[10]探索了“3+1”“2+1+1”人才培养模式,形成了基于OBE-CDIO的教学体系,与企业联合构建了“协同创新”“联合研发”“合作办学”“校中工厂”4种协同育人模式。曾华鹏等[11]以项目为载体,采取分组分岗的形式,在CDIO的产品全生命周期中培养学生综合运用技能解决实际问题的工程能力。卢爱臣等[12]根据《计算机程序设计》理论性和实践性强的学科特点,提出了一种构建以项目为牵引的CDIO开放式“创客”课堂及实践教学体系,为《计算机程序设计》提供STEMX教育模式参考。刘敬等[13]反向设计各实践教学环节,依托CDIO项目式教学,借助设计单元、专项设计和科研项目,构建递进式实践教学模式,循序渐进培养学生各项实践能力。

3 教改探索

3.1 数据思维驱动的教学目标更新

随着大数据和人工智能的发展,数据思维能力对数据挖掘人才的重要性日益凸显。为了适应新的人才需求,笔者根据新的学生培养目标与培养方案,对数据挖掘课程的教学目标进行了适当更新,以提升学生的数据抽象概括、数据领域变换、分析工具制作等计算思维能力及综合运用的能力。具体表现如下几个方面:

(1)培养学生的数据概括能力和数据抽象思维,以能够从整体上理解数据和把握数据。大数据时代的到来,数据数量级一般都是GB级甚至TB级,大数据的海量性使得数据挖掘教学过程中的“小数据讲大故事”传统教学思维难以凑效,由于小数据与大数据在性质与处理方式上差异显著。比如,大数据往往难以满足小数据分析的“独立同分布”假设,基于内存的小数据处理方式难以满足大数据处理需求。习惯小数据思维的学生在面对体量巨大的大数据时容易出现害怕心理甚至作出放弃的行为。因而,很有必要加强数据抽样、数据摘要等理论与技能的教学,提升学生的数据概括能力。

(2)培养学生动手制造与正确选择挖掘任务计算工具的数据思维能力。面对一个数据挖掘任务,学生容易走向两个极端方向。其一是,自己动手编程实现一个从输入到输出的全过程数据分析工具,其二是,完全放弃自己制造的路线,利用现有的开源或商业软件来完成数据挖掘任务中的每个子任务。显然,这两个极端情况都不利于数据挖掘工作的顺利开展,也不利于真实应用需求的有效解决。因此,需要培养学生的数据思维能力,根据数据挖掘任务的实际情况,将自力更生与拿来主义有效结合,实现数据挖掘任务效率和效能的最大化。

(3)树立学生的数据即知识与数据即财富的观念。在大数据背景下,若拥有足够强大的算法与足够规模的数据,就有可能从中获得无法凭直觉或经验能获取的知识,这些知识可能带来巨大的财富。帮助学生形成数据数据即知识与数据即财富的观念,有助于培养学生克服数据挖掘难题的信心与韧性。

3.2 面向理论创新的教学内容改革

围绕制定的教学目标,在数据挖掘课程教学过程中,笔者从基础理论与高级应用两个层面对教学内容进行设定。

基础理论部分教学内容主要依据数据挖掘的基本流程来确定。具体内容包括:

(1)数据预处理:数据缺失填补、噪声数据光滑与异常数据删除等数据清洗理论与方法,实现多源数据集成实体识别、冗余检测等理论与方法,基于pearson相关系数、卡方检验与Gini指数的属性度测定,基于主成分分析与奇异值分解的数据线性转换理论,基于min-max与Z-Score的数据归一化处理方法。

(2)数据关联分析:关联规则挖掘中的支持度、可信度、效用度等基本概念,经典Apriori算法的基本思想与计算步骤,分析其空间复杂度等方面的不足,基于频繁模式树FP-tree的频繁模式发现算法FP-growth。

(3)数据聚类分析:聚类分析的哲学原理,欧氏距离、海明距离、明氏距离等不同测度方法,聚类有效性测度指标,层次聚类、划分聚类与密度聚类的基本思想,KMeans算法的核心步骤与复杂度分析。

(4)数据分类分析:有监督学习的基本原理,分类器训练过程的欠学习与过学习,基于条件独立性假设的朴素贝叶斯算法及其优缺点,基于统计学习理论的支持向量机及其优缺点,基于多数投票原则的最近邻算法及其优缺点。

(5)数据预测分析:数据预测与分类的区别与联系,基于神经网络模型的非线性预测算法及其优缺点,基于移动算术平均与移动指数平均的外推型预测方法及其优缺点,基于线性回归模型与动态回归模型的因果分析预测方法及其优缺点。

高级应用部分的教学内容主要是根据当前流行的信息技术应用场景选择不同类型的数据,讲授如何将基础理论知识与具体应用问题相结合,培养学生独立完成数据挖掘实际应用项目的能力。具体内容包括:(1)文本数据挖掘:理解文本数据的非结构化与序列性等特点,掌握文本表示的向量空间模型与TFIDF加权模式,了解基于特征项频率的文本特征过滤技术,应用支持向量机与朴素贝叶斯进行文本分类。(2)图像数据挖掘:理解图像数据的灰度、通道、纹理、边缘与区域等概念,应用KMeans方法完成图像分割的数据挖掘任务。(3)流数据挖掘:以传感数据、金融数据等为应用场景实现流数据的动态变化、快速到达、体量巨大等特点,应用基于BP神经网络模型完成传感时间序列预测,应用滑动平均等外推型方法实现金融时间序列的预测。(4)交易数据挖掘:理解购物篮等超市交易数据的离散特征,应用Apriori与FP-growth算法进行交易数据的关联规则挖掘,比较不同挖掘算法的效果以深度认知不同算法的优缺点。

在上述教学内容的具体实施过程中,始终坚持数据思维导向,突出数据科学的理论性,通过分析各种算法的优缺点与各类数据类型的本质特性,引导学生从算法设计、模型改进、框架重构等不同方面进行理论创新。比如,在教学内容文本数据挖掘的讲授过程中,一方面让学生感受到当前的向量空间模型难以捕捉到文本语义与情感,现有基于浅层表示模型的算法很难有效提升文本分类的性能,另一方面从文本数据的序列特性出发,引导学生尝试引入LSTM、GRU等深度递归神经网络模型,构建新的基于深度学习的文本分布式表示机制,实现基于数据思维的理论创新。

3.3 理论结合实践的教学方法创新

在上述教学目标的驱动下,笔者在进行数据挖掘课程的教学过程中,根据教学内容提出了一系列的教改措施,主要包括理论教学、实验教学与考核方式三个方面的教学方法创新。

3.3.1 理论教学创新

(1)重视新篇章导入课的设计。若导入课设计不当则可能导致学生无法理解待讲授的教学内容的价值及其与已学知识之间的关系,从而导致学习目标不清晰、方向不明确的不良情形。笔者在设计每个教学章节的导入课时,都是在数据思维培养目标指引下,以具体应用场景中的数据挖掘需求为课堂导入点,用具体案例唤起学生的兴趣与热情。比如,在导入数据关联分析理论时,首先引导学生观测到超市的牙膏紧邻牙刷、沐浴露紧邻洗发水等商品陈列现象,然后提问这种商品摆放背后的原因,学生立即热情高涨地探索超市是如何发现这种巧妙的盈利模式,最后展示超市交易数据,进一步激发学生学习关联分析的兴趣。

(2)提高课堂教学师生互动的多样性。数据挖掘算法的理论性比较强,涉及数学、统计学与控制学等不同学科的知识,若只是采用传统的教师单方面讲授方式则可能增加学生接受知识的难度,也容易导致学生学习挫败感的产生。在概念理解、公式推导与定理证明的过程中灵活采用启发式、讨论式和交互式等多种方式教学,教师在课堂上穿针引线般地评述一些重点、难点的知识,学生进行分组讨论,迭代实现相关理论的理解。譬如, 在讲授朴素贝叶斯算法时,笔者首先带领学生回顾概率论中的条件概率、独立同分布等基本知识,然后简述先验概率与后验概率的计算方法,最后学生分组讨论最大后验的数学意义与物理意义及基于最大后验概率的朴素贝叶斯分类器的训练过程。

(3)加强算法流程的样例讲解,以具体的简单数据样例来讲解算法运行过程中的关键步骤。数据挖掘算法相对比较复杂,若只是进行文字讲解,学生难以把握其中的关键环节,这会制造学生深度理解算法思想的障碍,不利于后续的实验教学。譬如,在讲解关联规则挖掘算法Apriori的流程时,以具体交易数据来说明候选项集的产生过程与基于支持度的频繁项集生成过程,辅助学生理解造成Apriori算法空间度过高的原因,有助于学生形成新的改进思路。通过这些教改措施,提升了学生对数据挖掘课程的兴趣度,夯实了学生理解与改进现有算法所必需的数学基础。

3.3.2 小结

笔者依托北京航空航天大学研发的信息类专业教学云平台CourseGrading(www.educg.net.cn)与weka(www.cs.waikato.ac.nz/ml/weka)等开源数据挖掘软件,提出了线下编程和线上操作相互结合、理论算法实现与商业应用实践相互印证的实验教学方法,根据实验内容将实验任务划分为验证性实验、实操性实验与应用性实验三个层次,对不同层次的实验项目实施教学方法。(1)验证性实验项目主要包括主成分分析法PCA、关联规则挖掘算法Apriori、分类算法KNN与聚类算法kmeans。利用weka软件自带的数据集体验算法的计算机制,通过调整算法参数体验算法对参数的敏感性,通过在同一算法参数配置下计算不同规模数据集的计算结果以使学生体会算法复杂度的意义,进而加深算法优缺点的理解,为后续的应用性实验打下良好的基础。(2)操作性实验项目主要是在云平台CourseGrading上以线上方式进行实战环境训练,学生自己根据实验项目的输入要求从UCI数据集市中选择合适的实验数据集,或者通过一些数据预处理方法对所选取得数据执行转换、规约、降维等操作,以完成实验数据的准备工作,然后要求学生利用数据进行模型训练与评估,以此加深训练集、验证集与测试集等概念的理解,体验交叉验证与模型选择的价值,培养学生基于拿来主义的算法选型能力。(3)应用性实验是以培养学生发现问题、分析问题与解决问题的综合能力,应用性数据挖掘任务的工作量往往比较大,一般单个学生难以独立完成,笔者根据学生自愿组合的方式将实验班级分成若干个4人小组,在完成相关应用性数据挖掘项目时实行小组组长负责制下的组内成员协作管理方式,这一方面培养学生个体独立专研的能力,另一方面培养学生的团队协作能力。以社交媒体情感分析为例,来说明应用性实验的教学方法。首先引导学生利用现有的爬虫工具或者自编网络爬虫程序来完成数据采集工作,寻找合适情感词典,然后指导学生借助TFIDF模型获得文本的浅层表示,鼓励有专研能力的学生学习GRU、LSTM、Text-CNN等适用于序列表示学习的深度模型,在情感分析上,提供适用于文本情感分析的有监督学习、无监督学习与半监督学习等不同思路,学生根据自己对问题的认识作出选择,最后鼓励学生寻找相关可视化开源库对小组的情感分析结果进行展示。通过上述三个层次的实验教学,学生不但可以理解数据挖掘算法的具体原理,而且通过在云平台上的实际操作练习更加深刻地体会到数据挖掘技术实践应用的魅力。

3.3.3 考核方式创新

课程考核成绩主要由理论考核与实验考核两部分组成,分别占总成绩的50%。理论考核是通过开卷或闭卷形式的考试来完成。实验考核是由指导教师评价与小组成员互评二部分构成。小组成员根据本组每位成员在实验过程中的分工情况与对实验内容完成的贡献度进行成绩评价,占实验成绩的30%。教师通过每个学生提交的实验总结书面报告进行成绩评价,占实验成绩的70%。

4 结论

随着人工智能和大数据技术的发展和应用,数据挖掘人才的需求持续高涨。现有的数据挖掘课程教学方法难以适应高等教育内涵发展的新要求。本研究借助CDIO 理念,从教学目标、教学内容与教学方法三个方面入手,围绕新时代人才培养目标,在数据挖掘理论知识传授与实验教学模式设计分别进行探索,理论与实践紧密结合,推动课程建设和课程教学改革。教学实践证明了所提出的教改措施是行之有效的。

猜你喜欢
数据挖掘算法实验
记一次有趣的实验
改进支持向量机在特征数据挖掘中的智能应用
哪种算法简便
探讨人工智能与数据挖掘发展趋势
基于事故数据挖掘的AEB路口测试场景
Travellng thg World Full—time for Rree
进位加法的两种算法
根据问题 确定算法
软件工程领域中的异常数据挖掘算法
NO与NO2相互转化实验的改进