APP下载

面向新工科的数据挖掘实验课程教学案例设计

2021-03-24贾媚媚刘泉马晓普兰义华李贺刘金江

现代计算机 2021年3期
关键词:数据挖掘算法案例

贾媚媚,刘泉,马晓普,兰义华,李贺,刘金江

(南阳师范学院计算机科学与技术学院,南阳473061)

0 引言

随着移动互联网、物联网、人工智能等技术的不断进步,每时每刻都在产生大量的数据。数据在爆炸式增长,数据收集与处理、数据分析与挖掘,探索其中隐含的规律,进而为经济和社会发展服务。为了顺应社会发展的需要,国内不少高校纷纷设立了大数据相关专业。自从2016 年第一批“数据科学与大数据技术”专业兴建以来,我国本科高校已经获批建设五百多个大数据相关专业。纵观众多高校的大数据专业培养方案可以发现,数据挖掘课程都在其中占据重要的位置。

数据挖掘课程涉及多个学科的知识,主要包括统计学、机器学习、数据库、数据仓库、模式识别、人工智能、决策技术、可视化技术、具体的领域知识等多个方面[1],如图1 所示,是一门典型的交叉性学科。目前,虽然已有众多国内高校开设了数据挖掘课程,但是课程的理论知识和实践教学等方面都还同社会需求具有一定的差距,比较普遍存在重理论教学、轻实践等教学现象[2]。

特别是,在新工科背景下,数据挖掘实验课程应当以解决实际问题为导向,提高学生综合运用知识的能力,以达到培养新工科人才的要求[3]。在新工科背景下,面对社会、经济、技术等发展的实际需求,需要对数据挖掘实验课程的教学方式和案例设计进行改进。本文将结合笔者近年来在数据挖掘课程中的授课经验和教训,对数据挖掘实验课程的案例设计和教学方法进行探讨。

图1 数据挖掘涉及的学科

1 数据挖掘实验课程教学现状

在2015 年,我院在计算机科学与技术专业设立了云计算与大数据方向,尝试进行大数据人才的培养,并开始设置数据挖掘技术课程。我校计算机与信息技术学院在2019 年成功申请获批数据科学与大数据技术专业,并在当年开始进行招生。

作为数据科学与大数据技术专业的专业必修课,数据挖掘课程通常在本科高年级开设,我校将该课程开设在大三下学期,共开设48 学时,其中理论教学32学时,实践教学16 学时。数据挖掘课程的先修课程包括数据库原理、程序设计和数据结构等[4]。授课内容包括数据的基本统计、相似性度量、数据预处理、分类、关联分析、聚类、离群点检测等基本知识,要求学生具有数据处理、熟练应用各种数据挖掘经典算法等基本能力[4]。

目前数据挖掘课程实验教学中还存在以下的问题[5]:

(1)实验教学环节设置不合理。目前,实践教学还主要是通过“边讲边学”的模式来进行数据挖掘方法实践教学[4]。从具体的教学实际效果发现,让学生使用C++等语言直接编程实现具体的数据挖掘经典算法,对学生来说,还具有一定的难度。

(2)目前,在数据挖掘课程的实验教学案例,还主要是针对单个经典算法的实现,解决实际问题相关的实验相对较为缺乏[5]。教学案例脱离生活实际,也会较为枯燥和晦涩,学生难以理解。

(3)单纯的上机操作,实现单个的经典算法,已经很难满足对学生数据分析能力的培养,难以提高学生的综合解决问题和运用知识的能力,也不符合新工科人才的培养目标。

2 数据挖掘实验课程的探索

通过总结近年来数据挖掘课程的在本科生中的教学经验,我们针对实验课程进行了一些调整,其立足点为利用数据挖掘技术解决实际问题。通过贴近实际生活案例和企业案例的引入,提升学生的数据思维能力,提高学生学习数据挖掘课程的自信心[6],增加学生的学习兴趣。

在实验课程上课过程中,我们进行了如下的探索:

(1)将使用流行的数据挖掘软件或软件包同自己编写算法代码相结合。具体的实施方法上,建议学生首先使用SPSS 等软件或者Python 语言调用第三方库[6],来实现具体的算法,得到结果,让学生首先能够看到算法的结果,提高学生的自信心。在此基础上,建议学生使用Java、C++等编程语言,自己编程逐步事先具体的算法,加深对算法步骤的理解,并对算法的缺陷有一点的了解,尽可能地提出改进的思路。

(2)从竞赛中选取贴近实际问题的数据。近年来,大数据竞赛平台逐渐增多,例如国外的Kaggle 竞赛网站,国内的数据城堡竞赛平台、天池大数据竞赛平台等[7]。在这些平台上,有很多从企业实际问题出发,延伸而来的数据挖掘赛事。这些赛事目的明确,数据集规范且可得,可以根据赛事的难易程度,选取一些赛事案例作为数据挖掘实验课程的教学案例来源。同时,采取学生自主参加、教师辅导的方式,鼓励参与各级各类数据挖掘竞赛,提高学生解决实际问题的能力[7]。对于在竞赛中取得较好名次的学生,采取奖励实验课程成绩的方式,激发学生的参赛兴趣。

(3)在数据挖掘的案例教学过程中,应当以完成应用问题或项目为核心,通过实施数据挖掘项目的整个流程,发现问题、解决问题,以技术应用深化理论知识的理解。鼓励学生自己从实际问题出发,寻找自己感兴趣的课题,同时教师稍作引导,把所学知识运用到实际之中,促使学生自己发现问题、分析问题、解决问题。通过寻找课题、解决实际问题的过程,加强学生对理论知识的理解,以及综合运用。

3 实验课程教学案例设计

3.1 案例与知识点关系

实验案例选取上,需要注意知识点的完备性,在难度上需要循序渐进,同时还需要有一定的挑战性和区分度[8]。在实际的教学过程中,实验课共设计了四个教学案例:春晚数据分析、城镇居民生活消费规律、泰坦尼克号生还预测、基于校园卡数据的学生期末成绩预测。针对实验教学案例设计细节,选取其中较为典型的春晚数据分析、泰坦尼克号船员获救预测两个案例在3.2 小节中进行详细介绍。

表1 实验教学案例及涉及知识点

3.2 具体实验案例设计

实验案例一:春晚数据分析

我校数据挖掘课程开设在春期。同学们刚刚过完春节回校,大多数同学都在家看过春晚节目,对春晚的余热犹存,所以第一个试验案例安排为春晚数据进行分析,可以提高学生的学习积极性。

试验目的为掌握基本的数据统计分析方法。笔者使用Python 语言,编写爬虫程序,爬取了历届春晚的导演、主持人、节目、演员的等数据信息。数据集包含两个文件:导演主持人数据文件、节目单数据文件。在导演主持人数据文件中包含年份、导演、主持人三列数据,共含1983 至2020 年的所有数据。在节目单数据文件中包含年份、节目类型、节目名称、节目参演演员四列数据,共含1983 至2020 年的所有数据。

实验内容包含:①请列出前十名主持人的名字及主持的次数;②列出前十位参加春晚次数最多的演员名字及参演次数;③节目类型比例分析。将节目分为歌曲、舞蹈、相声、小品、其他,共五类(除歌曲、舞蹈、相声、小品外的类型均归类为其他)。

试验案例二:泰坦尼克号船员获救预测

该数据集来自Kaggle 竞赛网站,是一个入门项目。项目目的是预测哪些人群更容易生还。数据集包含训练集和测试集两个部分。训练集中包含乘客姓名、性别、年龄、舱位等级、票价等船员基本特征,以及最后的获救情况,共有891 条数据。测试集只包含基本特征,不包含获救情况,需要训练模型来预测获救情况。实验内容包括:①缺失值处理;②特征选择;③模型训练;④模型评估。

数据集中具有缺失值,例如年龄字段列在训练集中有些取值为空,共有714 个有效值,需要对缺失值进行预处理。此外,某些列的数据类型变换,例如字符串转数字。

数据挖掘中特征选择是非常重要的步骤,对各个特征的分析研究,对于最后的预测结果起到至关重要的作用,因此该步骤需要花费一定的时间和精力。需要计算各属性数据和Survived 标签的相关系数。常用的三大相关系数是pearson 相关系数、kendall 相关系数和spearman 相关系数。根据不同的数据特点,选择合适的相关系数计算方法。使用相关系数,作为特征和结果关系的参考,进而选择合适的特征。

然后,用训练数据和具体的学习算法得到训练模型。可以使用线性回归、决策树、支持向量机、随机森林等训练预测模型。在具体的实现方法上,建议使用Python 语言,直接调用sklearn 中的模型。sklearn 里面封装了绝大多数的机器学习算法模型,直接调用,使用起来简单方便。

根据训练模型,用测试数据评估模型,来评估模型的准确率。如果模型准确率较低,可以调整模型参数,或者更换算法,来提高模型的准确率。

4 结语

随着信息技术的不断发展,掌握数据挖掘技术已成为大数据专业学生需要掌握的必备技能。在新工科背景下,人才培养更应注意提高学生解决实际问题的能力、综合运用知识的能力。面对社会、经济、技术等发展的实际需求,需要对数据挖掘实验课程的教学方式和案例设计进行改进。笔者结合近年来在数据挖掘课程中的授课经验,对数据挖掘实验课程教学给出了一些具体的解决方案,为数据挖掘课程的相关教学改革提供一些有益的借鉴。目前,虽取得一定成效,后续将在以下几个方面继续改进:建立合理的评估机制,进行代码重复率检测等;针对学生学习能力的不同,设置个性化的实验案例,同一个实验案例设置必做部分、选做部分。

猜你喜欢

数据挖掘算法案例
基于数据挖掘探讨慢性肾衰竭处方规律
基于数据挖掘和海流要素的船舶导航改进研究
样板案例
Travellng thg World Full—time for Rree
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
软件工程领域中的异常数据挖掘算法
基于R的医学大数据挖掘系统研究
随机变量分布及统计案例拔稿卷