APP下载

基于Sklearn和PyTorch的数据挖掘课程教学设计研究

2024-07-09周峰章荪

电脑知识与技术 2024年15期
关键词:课程设计数据挖掘深度学习

周峰 章荪

关键词:数据挖掘;课程设计;Sklearn;PyTorch;深度学习

0引言

随着科学技术的发展,人类社会已经步入信息时代。日常生活中,人们大量地使用智能手机、电脑、平板电脑等信息化产品进行购物、社交、娱乐等活动,从而产生了大量的数据。据不完全统计,仅经过11年,全球数据量已由2009年的0.8ZB增长到2020年的60ZB。得益于互联网、云计算等技术的快速发展,这个数据量还在以指数级增长,预计2035年的全球数据量可达到2142ZB[1]。近期兴起的数据分析等科学方法,使得能够精准分析这些大数据,这对于改善人们生活、生产具有重要的意义。

大数据具有体量大、表现形式多样、价值高等特点。虽然大数据能够提供有价值的信息,但是体量大、表现形式多样的特点也导致提取该信息的难度较高。此时,数据挖掘技术应运而生,它旨在利用统计学、模式识别、数据库技术、高性能计算等学科知识对大数据进行分析,提取有价值的信息。该技术已经被广泛应用于医学、军事、管理等多种领域[2]。因此,各行各业对能够熟练掌握数据挖掘技术的人才需求越来越大。为了适应社会生产、发展的需要,国内各高校的计算机类专业都为本科生开设了数据挖掘课程,让学生能够拥有分析大数据的能力。

1数据挖掘课程难点分析

数据挖掘是信息时代下的产物,为人们分析和利用大数据提供了技术支持。高校的多数专业,包括计算机类和非计算机类(例如经济类)为本科生开设了数据挖掘课程。但是由于该课程交叉了大量不同学科的内容,增加了教学难度[3]。具体而言,目前存在的教学难题如下。

1.1课程的基础知识要求高

如上所述,数据挖掘课程涉及统计学、机器学习、数据库等多个学科的知识,因此要求学生在学习该课程前已经掌握这些基础知识。不仅如此,学生还需要能够在学习过程中灵活地综合运用这些知识。但是目前的教学体系还不够完善,这些前置课程和数据挖掘课程无法很好地衔接。与此同时,通过实际教学发现学生对这些前置课程掌握程度不一,导致如何针对不同基础的学生设计合理的数据挖掘课程教学过程存在难度[4]。例如,支持向量机算法中需要经常用到拉格朗日算子,这要求学生能熟练运用高数知识;程序设计的掌握程度好坏也会直接影响学生在数据挖掘算法编程过程中的进度。

1.2课程与社会实际需求脱节

数据挖掘课程包含的诸如决策树、支持向量机、k均值聚类等传统算法,已经无法应对当今复杂的数据环境。近期涌现的大量深度学习方法,已经在数据挖掘算法中占据了主导地位。但是目前高校开设的数据挖掘课程大多数没有囊括最新的深度学习方法。此外,互联网公司在招聘时,会倾向于录用掌握最新深度学习方法的毕业生,这使得只掌握传统数据挖掘算法的学生竞争力不足。除了教授的数据挖掘算法本身,与社会需求脱节的还有课程中所使用的数据。课程教材中提供的数据大多不包含任何噪声且特征维度较小,这与实际社会生产时处理的数据大相径庭。真实世界中的数据大都包含多种形式的噪声且特征维度高,这使得只接受了课本知识教育的学生在应对真实数据时手足无措。

1.3课程的实践内容不足

通过实际教学发现,大部分教材没有包含实践部分,只有理论知识。有一些基于Python编程语言的数据挖掘教材,也很难把算法的完整过程讲清楚。数据挖掘课程的本质是教学生在面对不同的数据时,如何选择合适的算法提取有用的信息。因此,该课程的核心应该是实践部分,理论只作为实践的支撑。尤其是计算机类专业的本科生,他们更应该具备较强的实践动手能力。正如上一节所述,目前数据挖掘教材中的算法过于陈旧,且使用的数据比较干净。所以,即使这些教材有实验内容,也很难培养学生的实践能力。

1.4课程思政融入生硬

在新工科背景下,如何保证学生在掌握专业知识的同时,能够具有较高的思想政治素质,坚定准确的政治立场,具备使命责任感,是教师完成立德树人任务的重要体现。但是,很多工科专业课程在实现课程思政的时候出现“边缘化”问题。很多教师认为工科专业与文科专业不同,很难找到合适的切入点,只能对思政内容生搬硬套,导致学生很难意识到课程思政的重要性。

1.5课程考核方式单一

目前数据挖掘课程的考核方式仍然以闭卷考试为主,单一地将闭卷考试成绩作为学生的最终课程成绩。这种方式很难考查学生的学习过程以及实践能力。经过实际教学发现,不同学生的学习情况差异较大,一部分学生擅长理论考试,而另一部分学生对实现数据挖掘算法较为得心应手。所以只使用闭卷考试作为考查手段,对学生来说是不公平的。教师应该充分考虑学生在理论和实践两方面的掌握差异,综合设计考核方式。

2数据挖掘课程设计研究

针对数据挖掘课程教学中存在的难题,可以对传统的教学模式进行改进,提出更加专业的课堂教学。具体而言,可以研究如何使用开源的机器学习和深度学习开发工具Sklearn和PyTorch进行课程设计。

2.1开源框架Sklearn和PyTorch

Sklearn是一个基于Python语言的机器学习开发工具,全称为Scikit-learn。该工具的基础为同样基于Python语言的四种开源库Numpy、Scipy、Pandas以及Matplotlib。这个库包含了数据预处理、分类、聚类、回归等算法的实现。仅使用Sklearn,就可以完成几乎整个数据挖掘过程。Sklearn可以直接从官网https://scikit-learn.org/stable/免费下载,并安装在个人计算机上。

PyTorch框架是由知名的互联网公司Facebook研发的一款基于Python的开源深度学习工具。该工具相关的论文发表在2019年的国际顶级人工智能会议AdvancesInNeuralInformationProcessingSystems上。PyTorch有着很强的兼容性,目前支持Mac、Linux以及Windows三种操作系统。相比其他深度学习框架,例如TensorFlow、MXNet以及Caffe、PyTorch的函数封装程度高,代码易于理解,入门较快。学生只需要掌握基本的深度学习知识,就可以熟练地使用PyTorch进行编程。

2.2降低课程门槛

由于前面提到的数据挖掘课程涵盖的学科内容较广,所以必须设计难度适中的教学内容,才能让学生接受。要做到这点,必须从课前、课中、课后三个方面入手。在开始课程前,教师要明确课程的核心内容,即数据挖掘算法的实践。数据挖掘实际包含数据收集、数据处理、数据挖掘等多个步骤,囊括了从数据源开始的一系列挖掘信息的过程。但对于学生来说,更重要的应该是掌握多种数据挖掘算法。所以,在整个教学过程中,可以简化其他步骤的讲授。在实验环节,可以使用Sklearn的函数直接对原始数据进行简单的加工处理,得到需要的数据形式。如果是图片类型的数据,可以使用PyTorch的图像预处理函数进行加工。与此同时,由于上课时间有限,教师不应该利用太多时间复习前置课程知识。教师应该在课前将本节课会涉及到的基础知识告知学生,让学生能够提前对这些内容进行回顾。例如,课程实验过程中需要经常用到Sklearn和PyTorch这两个库,可以找一些Py?thon基础语法讲解的资料发给学生。此外,教师也需要将本节课要介绍的数据挖掘算法的产生背景、算法思想以及在生活中的应用等内容以PPT的形式发放给学生,让学生能够对上课内容有一个初步的了解,避免课上跟不上教师的节奏。最后,应该让学生在课前将本节课可能产生的疑难问题整理好,统一告知教师。

在课堂上,教师应该首先对课前学生的疑难问题进行汇总和解答,不能让学生带着疑惑上课。讲授数据挖掘算法时,应该以解释思路为主,而不是注重公式的每一步推导。课件应该以动画或者图片形式为主,取代传统的公式和文字,这样可以调动学生的学习热情和兴趣[5]。课中还应该注意和学生的互动交流,必须时刻了解学生的需求和困难。通过课堂提问,侧面了解教师在讲课时的一些问题,可以将没有讲透彻的地方重新带着学生梳理一遍。除了课堂提问,还可以让学生组成小组,对课堂上介绍的特定数据挖掘算法如何应用于生活中进行讨论,让学生能够将课本上的知识转换到生活实践中去。

在课后,教师可以布置一些大作业,比如如何使用数据挖掘算法对课堂学生积极性进行定量的监测。让学生组成小组,一起查找资料、提出解决方案以及编程实践,最终以PPT的形式展示小组提出的方案。教师可以另找时间,让小组进行汇报。汇报主要以讲解思路为主,教师也可以对学生的解决方案中存在的问题和不足提出建议。这样的课后作业形式,可以让学生更深入地理解数据挖掘算法,教师也可以对学生进行打分评价,计入最后的总评成绩。

2.3引入最新的深度学习方法

目前,深度学习方法已经从传统的数据挖掘算法中脱颖而出。得益于它出色的性能和简单的实现过程,现在已经被广泛用于各行各业,例如精准农业、军事、城市规划以及环境监测等。在今后的就业环境中,各大互联网企业会希望应聘的毕业生能够掌握深度学习方法,而不是仅仅了解一些诸如支持向量机的传统数据挖掘算法。为了提升学生毕业后的就业竞争力,教师应该与时俱进,不能局限于教材中的算法,应当适时地引入最新的深度学习方法。同时,教师可以不用讲授过于陈旧的数据挖掘算法。经过教学发现,数据挖掘教材中大都包含关联分析、分类、聚类三种数据挖掘算法。深度学习方法在实际应用中可能更多地关注分类,所以教师可以适当地增加分类算法在整个课程中的比重,减少其他章节的内容。

教师更应该将科研与教学结合,把与数据挖掘领域相关的最新中英文论文讲解给学生听,让学生了解前沿的科学方法。学生在了解了这些世界前沿技术可以为生活带来的好处后,也能调动学习积极性,培养兴趣。教师可以在课后让学生分组,每个小组分配一篇论文,要求小组成员阅读并尝试理解论文中的方法,并在下次课上以PPT的形式,讲解给全班同学听。

2.4加强实践环节

大部分数据挖掘课程的核心都是介绍课本上的数据挖掘算法,实验内容缺失。即使有些课本里面有基于Python的数据挖掘算法,但是大都代码过长且可读性较差,学生很难对这样的代码感兴趣。所以,在增加实验内容的同时,必须保证新增的编程不能过于复杂。因此,教师可以选择使用上面介绍的Sklearn和PyTorch两个公开库进行实验课的教授。Sklearn极大地简化了构建数据挖掘算法的过程,通常只需要一到两行代码就可以构建一个算法模型。在使用Python编写k均值分类器算法时,需要多次计算两点之间距离,且算法是否收敛需要人为设置判断条件,这都为实现算法带来难度。而Sklearn只需要使用一行代码就可以构建一个将数据划分为k个簇的k均值分类器,如表1所示。剩下的诸如支持向量机等复杂算法都可以只用一行代码实现,具体见表1。Sklearn主要用于实现数据预处理和传统的数据挖掘算法,无法实现复杂的深度学习方法。PyTorch的引入可以解决这个问题。一个完整的深度学习方法,包括数据的加载、模型的定义、模型参数的优化规则、模型训练过程、模型验证过程。如果这些步骤都使用Python编写,将会耗费大量的时间和精力,而且以本科的知识基础是无法用Python直接编写出一些复杂的优化规则的。PyTorch与Sklearn相似,将深度学习过程中的数据加载、模型参数优化规则、训练和验证过程都进行了简化,只用简单的几行代码就可以实现。Py?Torch的重点集中在如何搭建深度学习模型,而这部分也被简化成积木形式的搭建。例如,深度学习模型中常用的卷积操作、池化操作、激活函数等都被简化成了一个函数,如表2所示。

除了使用开源工具简化数据挖掘算法的实验过程,还可以从以下方面加强课程的实践环节。由于数据挖掘课程涵盖的知识面范围较广,与目前许多学科和技能竞赛有一定的交叉,所以教师可以指导学生积极参加类似软件杯、计算机设计大赛等竞赛。

2.5课程内容导向的课程思政

任何专业课程都应该包括德育教育,也就是课程思政。学生不仅需要通过专业课了解专业知识,还应该能够通过课程学习提高自己的思政素质。但是,由于数据挖掘课程的特殊性,很多教师在教学过程中只是将思政内容生搬硬套,强行加到课程中。这种课程思政模式很难让学生接受,甚至会影响到学生对整个课程的态度,对专业知识也产生排斥。

事实上,任何一门学科的发展过程,都必然能和传统的中华优秀传统文化以及马克思主义基本原理产生联系,正确的课程思政能够让学生同时加深对专业知识以及德育教育的理解[6]。从课程内容出发,例如对数据挖掘课程做出突出贡献的科学家轶事,天然就是课程自身包含的思政内容。此外,还有其他角度可以从课程内容出发延伸至思政内容,以下案例可以为教师提供参考。首先,数据挖掘是利用各种算法从数据中挖掘出有价值的信息,这种数据驱动的信息挖掘体现了唯物主义精神,一切从物质本身出发,而不是凭空出现。其次,深度学习方法虽然现在大受称赞并被广泛使用,但是它被提出的时候并不被人看好,很多科学家都不相信这类方法。深度学习总共经历了3次高潮和2次低谷。从深度学习的历史来看,很多事物的发展都不是一帆风顺,只有不放弃,保持初心,才能大放光彩。此外,数据挖掘算法容易将训练样本上得到的经验直接套用到测试样本上,得到错误的结果,即过拟合问题。过拟合问题反映了经验主义的错误性,对于任何事物,不能一成不变地照搬以往的经验,一定要与时俱进。

2.6多元化考核形式

学生的学习能力和学习基础存在差异,只以期末考试的成绩来评定学生一学期的学习效果是不合适的。此外,由于数据挖掘课程是理论和实践结合的课程,大部分学生都会倾向于擅长理论或者实践中的一种,所以只以闭卷考试的分数作为总评成绩更显得不合理。为了不以期末考试成绩单一地评价学生的学习效果,教师应当引入过程性评价,构建多元化的考核体系[7]。首先,总评成绩的20%为平时成绩。具体而言,这部分是由学生签到、课堂提问、实验报告、平时作业构成。针对学生签到,教师应当充分利用现代化技术,例如超星学习通的扫码签到,解决学生代签的问题。平时分充分体现了学生的整个学习过程,使整个评价体系更加合理、完整。剩下的80%分别由理论分和实践分构成。理论分是由期末的闭卷考试分数决定,这一部分主要考查学生对数据挖掘算法理论知识的掌握程度,课堂中涉及到思政内容也会出现在试卷的案例分析题中。实践分是通过对学生的实践大作业打分获得。这部分主要考查学生是否能够将所学的数据挖掘算法用于解决现实生活中的难题。为了突出理论和实践同等的重要性,这两部分各占总分的40%。构建这样多元化的考核形式,既能对教学过程进行监督和评价,也能让学生体验到完整、多样化的数据挖掘课程。

3结束语

信息时代背景下,互联网每天都在产生大量的数据,这些数据包含了宝贵的信息。但是,如果这些数据不加以正确使用,就会变成垃圾数据,也会造成个人信息的泄漏。因此,数据挖掘技术应运而生,用于挖掘大数据中有价值的信息。数据挖掘课程目前已经成为计算机类和非计算机类本科专业的必修课程。但是,在实际教学过程中,该课程还存在以下问题:课程入门门槛较高,涉及多门基础学科;课程内容陈旧,无法跟上快速发展的社会需求;课程讲授大都停留在理论层面,实践内容较少,很难锻炼学生的实践动手能力;课程思政切入点生硬;考核形式单一,无法全面地评价学生的学习效果。本文针对这些问题,对数据挖掘课程设计进行研究,提出针对课前、课中、课后三阶段降低课程门槛的教学方法;引入最新的深度学习方法,充实课本内容;适当地增加实践内容的比重,让学生掌握数据挖掘算法编程能力;创新了课程思政的切入点,能够让学生更好地理解思政的重要性;提出将平时成绩、理论分以及实践分融合,形成多元化的评价方式。

猜你喜欢

课程设计数据挖掘深度学习
探讨人工智能与数据挖掘发展趋势
龙凤元素系列课程设计
基于并行计算的大数据挖掘在电网中的应用
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于Articulate Storyline的微课程设计与开发
一种基于Hadoop的大数据挖掘云服务及应用
基于自动化系统的PLC课程设计