王熙,朱亭瑶,李惠
(中央财经大学 信息学院,北京)
随着人工智能时代的悄然走近,数据类课程作为高等教育中各专业学生的热门进修课程,已经逐渐受到越来越多的关注。《数据挖掘》课程设置从数据的预处理入手,讨论数据驱动相关的分析和挖掘算法,并通过真实数据集进行挖掘分析,培养学生通过实践解决实际问题的能力。但是本课程知识点相对较多,内容复杂抽象,章节之间独立性较强[1],学生较难将所有知识点融会贯通应用在一个课程实践项目中。另外,由于与学生社会经历不足,往往与课程设置中讲述的一些经典商业决策案例存在知识结构上的脱节,学生参与程度不高。鉴于此,本课程组在近一年的课程建设中充分考虑学生能力及高校学生愿意关注的数据驱动相关社会问题,对《数据挖掘》课程实践环节做出改革,增强学生知识运用的能力,提高学生获得感。
在数据驱动生活的大时代背景下,提高学生通过人工智能手段理解数据、分析数据、运用数据、从而进行决策的能力有着重要社会意义。《数据挖掘》本身作为一门交叉学科课程,在培养学生的数理统计能力、编程逻辑能力和数据库运用能力的同时,也需要学生对于其他学科,例如管理学、社会学等的基础知识理论有一定的了解。学生通过2~3学分对应学时的学习,能够掌握数据分析与处理的基本方法。现实的教学过程中,对于各种数据挖掘方式,教师都应给出合理的案例以加深学生对于相关概念的理解;同时在学生动手实践的环节,学生可以在自选的数据集上实践相应的数据挖掘算法。 然而经过几年的教学时间,笔者发现这种案例实践的数据资源选取方式存在一些问题。
(一) 数据源陈旧,学生缺乏兴趣
《数据挖掘》课程相关教材的数据资源多为公共数据资源,例如基于Kaggle数据竞赛的数据[2],UCI机器学习资料库①等。这些数据集相对陈旧、数据量小,很多数据集不但已经过预处理,也被全世界的初学者们反复使用过多次,完整的挖掘方法和对应答案随处可见,不利于培养学生独立思考和动手实践的能力。另外,数据库本身与学生的关注点脱节严重。例如财经类院校的学生往往更加关注金融、会计类主题相关的数据挖掘,一些简单的IRIS②、Wine Quality③或泰坦尼克生存预测案例④尽管能够很好地给予学生对于分类预测问题的理解,却难以引起学生真正的兴趣。究其原因,“预测鸢尾花的分类”“预测红酒的品质得分”以及“预测船上乘客的生存概率”等并不是学生自己提出的研究问题。由于缺乏兴趣,学生对挖掘结果缺少深层次的思考,也进而会导致学生很快遗忘所学知识。
(二) 数据源分散,数据挖掘缺乏连贯
《数据挖掘》中各知识模块间存在较强的独立性,很难启用一个数据集贯穿始终。例如,在分类问题中,教师常采用“房价”或“用户忠诚度”的预测来解释相关理论;在聚类分析问题时,“信用卡欺诈检测”“学生一卡通消费”等案例又是首选;关联分析则主要注重于商场订单的分析,“牛奶咖啡可乐的购买”,万变不离其宗。笔者在近几年的教学过程中发现,尽管学生对于每一个数据集所要处理的问题都很了解,但在解决现实问题时应该使用哪一种挖掘方法出现区分困难的现象,因为不知道自己手中的数据源和学知识时用到的数据集哪个最贴近。南京大学周志华教授的《机器学习》一书(网称“西瓜书”)[3]很好地解决了数据源分散的问题——用区分“好瓜”和“坏瓜”的需求,完成多种挖掘算法的计算。但是,该数据集相对简单,学生学习之后较难将数据挖掘的过程复制到其他实际应用分析中。
(三) 数据源单一,交叉学科思维培养不到位
《数据挖掘》课程作为一个教程学科课程,希望培养学生能够从数据中提取有隐含的、未知的、有价值的潜在信息,常常用于商业决策的制定。尤其财经类院校中,《数据挖掘》课程中涉及到的数据源多与企业发展息息相关,例如根据企业信息及经营状态等,预测股票价格。但是现实世界中的数据往往丰富多样:无论文本数据还是多媒体数据、无论单纯的数值型数据还是类别型数据、无论是社会学科还是自然学科的数据,都可以作为学生数据挖掘实践的对象。采用单一类型的数据源容易导致学生思维固化,无法达到培养交叉学科思维的目的。
笔者自2020年秋季学期起,连续尝试在2个研究生教学班及2个本科生教学班中实施现实社会事件背景下的数据挖掘教学改革,让学生自己找寻感兴趣的研究问题,结合多数据源,展开多维度、多层次的数据挖掘。下面具体说明如何实现课程目标的制定、落实与考核。
(一) 课程目标的设立
课程初期教师向学生明确课程时间线及内容安排,让学生对课程内容有充分的认知。在学期的第一节课中,笔者会向学生介绍数据挖掘的基本概念,以及需要完成的数据挖掘任务。课程要求学生自愿组成小组,对网络上公开的数据集或是自己感兴趣爬取到的数据集进行实际应用分析,学生通过人工智能的手段和机器学习的方法,简单地实施一个现实社会事件背景下的知识发现或商业决策过程,以获得初步解决问题的能力。学生可形成2~4人小组,小组人数与选取的数据集数量直接相关:即2个学生一组,必须要找寻至少2个感兴趣的数据源进行结合,3个学生一组则必须要寻找至少3个感兴趣的数据源进行结合,以此类推。学生需要经过一个学期的学习,对整合后的数据集进行合理的关联规则挖掘、聚类分析和分类预测,同时要包含多种算法运行结果的对比及基于政府政策、客观事实或客观理论对于结果的解释说明。另外,课程对于研究生层次的学生文献阅读能力有明显更高级别的要求——与本科生相比,要求他们在阅读10~15篇文献的基础之上总结科学问题,然后再寻找合适数据集。这样设置课程的目的主要在于可以让学生找到他们自己真正感兴趣的实验数据集及研究问题,激发学生自己的求知欲,同时也可以避免学生为了完成作业互相抄袭或从网络上寻找已有的基于公开数据集挖掘的结果。
(二) 教学手段的改进
本课程的教学改进主要涉及两个方面,一是特色教学案例的建设,二是网络多媒体教学资源的引入。首先,示例教学的导入能够提高学生对知识的兴趣和渴望程度,因此在知识模块讲授时,需要从贴合学生知识背景的示例出发提出数据挖掘的需求并逐步解决研究问题。举例来说,当今大学生都有刷知乎看微博热搜的习惯,那么可以向他们提出的问题是,“给你一组论坛或微博的数据,你能做些什么分析呢?” 笔者基于自己博士期间研究项目的经历,用自己爬取的社区论坛和微博数据作为切入点,构造课程专属讲解案例[4-5],向学生解释一个基于文本的数据挖掘过程:首先要对网络数据进行爬取和预处理;然后可以对用户生成内容进行文本分类,预测某一条帖子是否包含我们关注的信息,或对用户生成内容进行主题聚类,探寻用户所讨论的话题,或是对用户行为进行分类或聚类,辨识用户的忠诚度或用户的群体行为模式。由于数据的出处和学生每天接触的互联网信息十分相近,学生不会产生疏远感,也因此更容易接受和掌握示例分析时所采用的挖掘方法。
其次,深度学习在数据挖掘中的地位近年来明显提升,为了让学生更好地与最先进的知识和实际应用技术接轨,笔者也会引入一些深度学习知识的讲解。学生可以根据自己的兴趣在原有的数据集上实现深度学习的算法,以比较深度学习和传统的机器学习的区别和优势(例如用循环神经网络进行文本分析),也可以尝试引入其他类型数据,例如图片等,进行更多维度的分析(例如用卷积神经网络进行图像识别)。但是深度学习的内容本身涵盖面非常广,完全可以独立成为一门高学分课程。在不需要要求初学者掌握所有算法内部运行细节的数据挖掘课程中,网络中的多媒体资源(例如哔哩哔哩)是很好地向学生介绍相关知识点的教学材料。学生通过视频、动画以及相关应用案例的观看,能够很好地了解算法间的大致区别和不同应用场景。笔者在网络资源的弹幕和评论区发现很多在校学生选择摒弃老师课堂面授知识,而依赖于网络资源。因此,若能很好地利用网络资源,与课堂所讲授知识相结合,往往能够达到事半功倍的效果。
(三) 考核评价的设置
在数据挖掘的过程中,往往没有完全准确的挖掘结果,对于实验设置的合理性、挖掘结果的解释性通常需要探讨而确定。在本课程的设计中,考核方式采用同行评议原则:每位同学都需要为其他组贡献有价值的修改建议或评论。同学的分数由三部分组成:同行评议得分、为他人提供建议得分以及教师评分。同学们在开学初进行小组演讲,提出问题,同时对相关问题在学术界及工业界的解决方式进行全方位总结,进而从其他小组获得后续工作建议;学期末课程将再次使学生回归到其开始提出的问题中,通过课程的学习使其对现有学术及工业界的解决方案的优劣结合自己的认识加以阐述,并可以提出新的解决方案,对于之前被其他同学提出的修改意见可以考虑采纳(改进数据挖掘过程)并进行展示,或坚持己见并给出合理原因,以说服曾经对他的工作提出问题的同学。这种演示、讨论、同行评议的机制,可以有效激发学生学习兴趣,提高学生参与度。
通过一年的教学改革和探索,学生的课堂主动参与度有了明显提高。笔者将一年时间内讲授的4个教学班(2个本科生班,2个研究生班)共52组学生选题进行归纳和总结,对教学效果和教学感受进行如下三方面的总结:
(一)学生对于数据挖掘过程兴趣浓厚,但对于数据挖掘结果的合理解读仍存在一定的欠缺。首先,在教学过程中,笔者发现学生很容易确定好自己感兴趣的方向,很多同学会把日常生活所接触的数据作为研究对象,例如微博数据、B 站数据、评论数据,等等。尽管很多小组同学设置研究问题的出发点是合理的,但是由于缺乏相关的理论知识和实验经验等,往往在分析过程中会出现牵强地将不同数据源的数据结合在一起的情况。有些同学为解决类似问题,在后期转变自己的研究问题或补充更多的相关数据集。另外,学生对于挖掘结果的解读往往不够充分,很多情况下学生发现了有趣的挖掘结果,但不知道其出现的具体原因。由于缺乏“用户行为理论”“信息传播理论”等知识,学生对于挖掘结果的合理解读尚存缺陷。笔者后期得到学生的反馈:“我们一直在想,还能用些什么算法提高这个数据分析的准确率或是再补充点什么数据能够完全回答我们学期初提出的研究问题?”由此可见,课程的设置方式的确激发了学生的创新性思维,学生乐于主动思考如何解决生活中相关的数据挖掘问题,但交叉学科特性决定了学生在其他相关学科背景的知识理论厚度有待加强。
(二) 学生乐于学习并且使用更复杂的研究算法,追求实践中的挑战往往比完成作业更得学生们的青睐。课程中,笔者要求学生实施聚类算法,简单的K-means或层次聚类方法即可。但基于学生的学习结果来看,学生大多不拘泥于简单的基于距离的聚类方法,很多人选择实施主体聚类模型以处理文本数据,并根据聚类结果进行分析。另外,笔者在讲授神经网络时也介绍了卷积神经网络和循环神经网络的原理及应用,结合视频网站的视频为学生介绍其在现实生活中的应用,但并未要求学生进行图像处理任务。然而有很多组同学在分类任务中用到循环神经网络,有的组直接选择实施基于卷积神经网络的佩戴口罩的图像识别。学生多希望能够在同行评议里获得更高的分数,内部高度竞争的机制激励他们更加用心地完成数据挖掘实践,解决现实问题,同时也向授课老师提出了新的要求——《数据挖掘》课程不能是纸上谈兵,不能拘泥于教材上的知识,要更多地吸取学界及业界流行的知识及相关应用,立足于解决现实问题,才能让学生更好地吸收知识及思考问题。
(三)学生对时政热点和民生问题具有高度的研究兴趣,教学过程中应着力发挥课堂育人主渠道作用,推进课程思政建设实效。根据52组学生选取的研究主题和呈现的挖掘结果,笔者发现学生乐于探索和思考,受现实社会事件影响下,国内和国际政治、经济、文化和民生领域面临的新问题和未来发展趋势,通过对相关数据的挖掘和分析,尝试解释某些现象或问题的产生原因并为现实问题提供解决方案。教师应当积极把握教育教学规律,围绕学生的兴趣方向和发展需求,在教学过程中将时事热点问题与专业知识技能有机融合,回应学生的关切和诉求。例如在本课程教学中,一部分学生以国内数据为研究对象,一部分学生选取了美国等西方国家数据作为研究对象,教师可以启发和引导学生在学习过程中正确理解中国特色和国际比较,全面客观地认识当代中国、看待外部世界。在数据挖掘知识传授和能力培养的同时,引导学生树立正确的世界观和价值观,在具体问题分析思考中增强中国特色社会主义道路自信、理论自信、制度自信和文化自信。
综上所述,《数据挖掘》课程中的教学案例和学生实践数据仍有很大的改进空间。作为人工智能时代学生必须掌握的基本知识和专业技能,学生需要在有求知兴趣的前提下理解并掌握相关理论和算法,能够根据挖掘技术的不同之处,合理将其利用在各个领域进行知识发现。教师在课程设计时应当充分考虑时下学界和业界的关注点、学生的兴趣点及课程思政的注入点。数据挖掘的结果可以很好地解决现实世界的问题,同时,恰逢数据挖掘课程能够激发学生学习的自觉性和思考的主动性,教师更要把握好思政元素融入的节点和时机,实现数据挖掘知识技能传授与学生理想信念教育的内在融合。
注释
① https://archive.ics.uci.edu/ml/index.php.
② https://archive.ics.uci.edu/ml/datasets/Iris.
③ https://archive.ics.uci.edu/ml/datasets/Wine+Quality.
④ https://www.kaggle.com/c/titanic.