基于DNN的大学生学业成绩预测方法研究*
——以北京市某高校电子信息类专业为例

2021-03-16 03:46靳现凯
北方工业大学学报 2021年5期
关键词:决策树关联规则

靳现凯 宋 威

(北方工业大学信息学院,100144,北京)

近年来,大数据引领的风潮不断向各大领域推进,大量数据资源的背后隐藏着各种重要信息。在教育领域中,成绩是教学改进中最为显著的指标之一,如何利用科学的方法对这些成绩数据进行挖掘与分析,从而不断革新学生的学习模式、教师的教学模式以及提高学校教育教学质量,是当下广大教育工作者们重点关注的问题。

由于国家对教育信息化建设的大力支持,国内大多数高校都建立了教务管理系统,其中存储了大量的数据,包括学生个人信息、在校期间所有课程成绩、英语四六级成绩等。然而,一方面,目前大部分高校的成绩系统仍停留在查询成绩、统计各分数段学生人数、统计成绩均值、方差等,除了这些信息,还有很多不易察觉的信息被湮没在庞大的数据之中。另一方面,由于影响成绩因素众多,不仅包括课程间的关联性,还包括学生、教师自身个性化因素,致使某些高校尽管人为分析预测成绩,但准确率也不高。

1 国内外研究现状

国外对于数据挖掘的研究起步较早,大概在1960年代就开始了相关研究。本文讨论的基于数据挖掘算法的学生成绩管理这一方向也是国外研究的热点。数据挖掘中很多经典算法例如关联规则、逻辑回归和决策树算法等均已应用于国外各大高校的教学管理研究中,比如预测大学入学比例、预测学生毕业状况、学生选课推荐等。

在学生成绩分析预测的研究方向上,美国哈佛大学的研究人员Jody Clarke与Chris Daye为了评估学生学习效果,利用数据挖掘技术分析与研究了学习行为相关的海量数据。Alsalman Y S等人利用决策树和人工神经网络来预测学生的GPA[1],尽管模型表现不错,但是该算法利用的数据为调查问卷数据,具有一定的主观性。Adekitan等人构建了一个包含六种数据挖掘模型的Konstanz信息系统,系统使用五年制本科生前三年的课程成绩预测后两年的变化以及顺利毕业的可能性大小。[2]近年来,这些结合数据挖掘方法的教育数据研究的影响力在不断扩大,从中得到的结论也有助于高校完善学校的课程设置。[3]

国内方面,叶俊民等人提出了一种短文本情感增强的成绩预测方法,基于学习状态预测学习者的成绩。[4]宋丹等人利用教学过程中产生的多源数据进行采集与分析,探究学生的学习状态与学习效果,进而预测学生的课程学习状况。[5]李梦莹等人考虑学生个体的差异性,如结合学生的家庭环境、学习条件以及个人表现等多种因素,提出一种基于双路注意力机制的学生成绩预测模型。[6]陈佳明等人针对大学基础课的特点,从主客观两方面选择特征,构建加权投票集成算法对学生成绩进行预测。[7]

国内目前在学生成绩分析研究方向上的欠缺,主要是由两方面造成的。一方面,尽管国内的学生成绩应用研究也在逐渐起步,但比起国外的应用研究,国内还是更注重于理论的研究,因而尽管有大量的理论支持,实现上还是有一定的困难,但这方面的欠缺只能通过不断发展应用研究来弥补,短时间内无法攻克。另一方面,影响学生成绩的因素众多,不仅包括课程间的关联性,还包含学生、教师自身等个性化因素,因此即便某些高校采用了大数据分析方法也无法达到成绩预测应有的准确度,这方面的欠缺则可以通过融合决策树算法和关联规则算法,使用深度神经网络(DNN)构建学生成绩预测模型来实现对大学生学业指导的科学性和准确度。

2 数据集

2.1 数据来源

本文所使用的数据集来源于北京市某高校电子信息类专业学生成绩,经过清洗后,共选取2011—2015级1 542位同学的成绩数据作为数据集。该数据集由学生信息表、成绩表、课程信息表构成,其中学生信息表包含了学生的基本信息,包括姓名、性别、生源地等;成绩表即为学生在校学习期间所有课程成绩,包括课程编码、平时成绩、考试成绩和总评等;课程信息表对应了课程的细节信息,包括课程编码、课程名称和课程内容等。因此,本文所需的数据需要按照学生的学号信息从几个不同表中进行联表查询,从而得到每个学生四个学年的所有课程成绩记录。因为课程分为选修课程和必修课程,而每个学生的选修课程基本上都不一样,而该校只使用必修课程作为成绩绩点计算,所以本文只使用学生的必修课程数据。清洗过后的数据集总共包含了1 542位同学的81 726条成绩记录,数据包含信息有:学号、课程名称、课程成绩、课程学期。

2.2 数据预处理

为了提供适应该神经网络的数据集,需要精准的数据预处理步骤,本文预处理的详细流程为:

1)数据集成。数据集成是指围绕学生成绩主题,汇集来自多个不同数据源的数据。本文中的学生成绩数据由学生信息表、成绩表、课程信息表三表联合,集成能够用来进行挖掘的数据。

2)数据清洗。数据清洗是指对原始数据进行筛选检查,包括检查数据一致性,处理残缺数据、错误数据、重复数据。由于本次采集的数据来源于本校教务中心,缺失、错误和重复数据很少,因而数据清洗工作量不大。

3)数据约简。数据约简是指在不影响最终的数据挖掘结果的前提下,缩小所挖掘数据的规模。举例来说,原始数据中包括军训这一项数据,但这与学生学术成绩分析没有关联,像这种类型的数据就是数据约简的对象。

4)数据转换。本文两个模型中,第一部分中使用的Apriori算法是bool类型的算法,而学生成绩却是连续型参数,因此本文考虑将课程成绩转换为离散数据形式,即bool类型数据(0、1形式)。具体方法为,首先求出课程的平均成绩,若大于该课程平均成绩则离散化为 1,若小于该课程平均成绩则离散化为0,这种离散化的方式考虑到了各个课程评判标准不一致的问题。后面采用的C4.5算法无法处理连续型数据,而课程分数却是连续型的参数,因此本论文需要对课程分数进行一般的离散化,成绩分组分为A≥90,90>B≥80,80>C≥70,70>D≥60,E<60这五个档。在对所有数据进行转换后,本文按照绩点计算方法计算了每一个学生的平均绩点。

5)训练数据划分与处理。经过清洗的数据被按照8∶1∶1的比例随机划分为训练集、验证集和测试集,其中训练集的样本量为65 380,验证集和测试集的样本量均为8 173。训练集用于DNN模型的训练,验证集用于每次迭代后的模型泛化能力检验,起到防止过拟合的作用。构建模型前需要对数据做进一步的处理,按照上一步中将成绩分成A、B、C、D类别后,还需对其进行one-hot编码如表1,然后才能输入给神经网络。

表1 课程成绩标记分层One-Hot编码

3 基于关联规则和决策树组合算法的成绩分析模型

目前,大部分学生成绩数据挖掘的研究是基于关联规则算法和决策树算法展开的。尽管关联规则能够挖掘出课程之间的关联性,但是却没有考虑学生、教师自身等个性化因素对学生成绩造成的影响,因此关联规则得到的结果通常在个体分析时有失偏颇。而决策树算法虽然能够实现个体学生成绩的预测,但是由于没有考虑到个体学生的课程间的关联性,所以单独用决策树算法得到的预测结果准确度也相对较低。

综上,本文提出一种高效的关联规则和决策树组合算法,综合考虑学生课程间的关联性和学生、教师自身个性化因素,提高学生成绩分析结果的准确性。

3.1 算法思路概述

该组合算法设计思路是利用关联规则生成高可信度的强关联规则作为新属性,然后通过对新属性的判别后,最终得到新的属性与原有属性合并来构造决策树。其中,数据挖掘实施流程为“数据采集-数据预处理-数据挖掘-结果分析-知识使用”。本文采用关联规则的经典算法——Apriori算法和决策树算法的典型算法——C4.5算法,该算法可融合成如图1所示模型。常见决策树算法包括了ID3算法、C4.5算法、CHAID算法、CART算法等,其中CHAID算法只能处理类别型的输入变量,CART算法只能进行二部分叉,都不适合本文所需要的数据场景。C4.5算法是在ID3算法的基础上将分类标准改成信息增益率改进而成的,可以处理数据不完整和连续型属性(通过离散化)的数据集,而且建模快,分类正确率比较高,故本文采用C4.5算法。

图1 基于C4.5算法的成绩分析模型

由图1可以看出,Apriori算法得出的强关联规则只要符合规则前件课程学期小于规则后件课程学期,即可生成新属性,并与原有属性合并生成决策树。该组合算法思想如下:

1)通过Apriori算法挖掘学生成绩数据内隐藏的关联规则,再选取其中的强关联规则,即支持度、置信度都大于等于最小支持度、最小置信度的关联规则。

2)判别1得到的关联规则,将其中不合理的关联规则去除,得到新的关联规则集合。

3)将2所得的关联规则作为新的分类属性与原有属性合并,利用C4.5算法构造决策树。

3.2 Apriori算法挖掘学生成绩数据内隐藏的关联规则

此处以部分课程与毕业设计、信号与系统、通信原理等课程的关联性为例做详细阐述,在实验中可以挖掘任意多门课程之间的关联性。

令L1为课程C语言及其应用(简称C语言)中高于平均分的成绩记录的集合,L2为课程高等数学中高于平均分的成绩记录的集合,L3为课程电路分析中高于平均分的成绩记录的集合,L4为课程信号与系统中高于平均分的成绩记录的集合,L5为课程高等数学2中高于平均分的成绩记录的集合,L6为课程模拟电子技术中高于平均分的成绩记录的集合,L7为课程通信原理中高于平均分的成绩记录的集合,L8为课程线性代数中高于平均分的成绩记录的集合,L9为课程数字电子技术中高于平均分的成绩记录的集合,L10为课程复变函数与积分变换(简称复变函数)中高于平均分的成绩记录的集合,L11为课程概率论与数理统计(简称概率论)中高于平均分的成绩记录的集合,L12为课程毕业设计类中高于平均分的成绩记录的集合。最小支持度和置信度都是人为设定的,可以根据实验结果的优劣对这两个参数进行调整。本文中设置最小支持度阈值为0.1,最小置信度为0.55,这样是为了筛选出高可信度、强关联规则的课程间关系。按照预设的最小支持度和最小置信度,可以挖掘任意课程间的关系,表2列出了课程的高置信度关联规则计算结果。

表2 课程的高置信度关联规则计算结果

通过表2可以看出,对于“毕业设计”这门课而言,专业性质较强的课程与之关联性较大,比如信号与系统、C语言、通信原理;对于“信号与系统”这门课而言,数学类课程与之置信度最高,即关联性最强;对于“通信原理”而言,数学课程和专业课程对其置信度都较高,即该课程对学生的专业先修课和数学课程都有较高要求。

3.3 基于关联规则与决策树组合算法的成绩分析

3.2中Apriori算法得出的强关联规则只要符合规则前件课程学期小于规则后件课程学期,即可生成新属性,并与原有属性合并生成决策树。

在本文中,原有属性包括性别、平均绩点。关联规则生成的新属性包括C语言及其应用→毕业设计、信号与系统→毕业设计、模拟电子技术→毕业设计、通信原理→毕业设计、线性代数→毕业设计。为体现课程关联性,生成的新属性名称会变成“xx→毕业设计”,但取值其实仍是原课程成绩离散值(即A、B、C、D、E),其中为了降低决策树的复杂度,本研究将毕业设计划为优秀(总评大于80)与及格(总评大于60分)两部分(所统计的数据均为正常毕业数据,成绩均大于60)。

通过Python编写C4.5算法对预处理后的数据集进行处理并将所有路径合并后还原得到决策树如图2所示。

3.4 结果分析

针对不同的课程,可以得到不同的结论。在高可信度强关联规则的实验中,得出以下结果:

1)在所选的11门专业课程与信号与系统的关联规则中,课程复变函数与积分变换、概率论与数理统计、电路分析、高等数学、模拟电子技术对课程信号与系统的学习影响较大,同时这些课程的学习在前有利于信号与系统的学习。这说明教学计划中将这些课程安排在课程信号与系统之前是十分正确的。

图2 与毕业设计具有高可信度强关联规则的课程的决策树路径

2)在课程通信原理的关联结果中也可以得出信号与系统与其拥有最高关联度的结论,也证明该课程对于通信原理的学习至关重要。

3)课程概率论与数理统计、线性代数虽然是公共课,但是置信度却高于一些专业课程的置信度,因此说明概率论与数理统计、线性代数也是本专业的基础知识储备课程,不但要早学,还要学好,为后续课程的学习打下良好的基础。

对于关联规则与决策树组合算法的成绩分析实验结果可以得到以下结论:

1)决策树的第一个选择属性是平均绩点的分类,说明平均绩点对于毕业设计是第一个主要影响因素,这与平常经验判断所得结果是吻合的。

2)对于电子类专业来说,性别对专业课程的影响不大,可以看到无论男生女生,当模拟电子技术这门课程达到B时,专业综合设计均是合格的。

3)对于电子类专业来说,数学类的课程对专业课程影响很大,比如概率论与数理统计、线性代数和复变函数与积分变换对毕业设计的影响。也充分说明在教学计划中,数学类课程学分高是有理论依据的。

由于数据依然存在一定的噪声以及组合算法不够完善,分析结果可能会存在一定的误差,但是相较于仅基于关联规则或者决策树算法的学生成绩分析来说,本文所得出的理论结果准确度还是有一定的提高。

4 基于DNN的成绩预测方法

4.1 基于DNN的成绩预测模型

深度学习技术可以用来挖掘隐含在数据中的非线性关系,即输入数据和预测标签的非线性映射。因为在学生成绩预测任务中,低年级课程成绩和高年级课程成绩存着一定的非线性关系,不能够使用简单的线性回归来进行拟合,所以深度学习技术适用于学生成绩预测。DNN是深度学习的基础,是在神经网络的基础上发展而来,相对于神经网络的区别在于DNN拥有很多隐含层。模型由输入层、任意数量的隐藏层和输出层组成,该算法受到人类大脑神经元的启发,每一层则都是由神经元组成。

本文模型中,学生各科成绩作为数据从输入层输入,经过3个隐含层后,输出层输出预测结果。定义一个神经元如下:

y=wix+bi

其中x表示输入的成绩向量,y表示输出的预测结果向量,wi代表神经元学习到的权重,bi代表偏置。本模型中3个隐含层总共包含了300个神经元。为了提高模型的表达能力,需要增加非线性因素,所以在隐含层中,使用RuLU作为激活函数,如公式1:

(1)

为了加快模型的收敛速度,本文使用在输出层使用Sigmoid作为激活函数,使用交叉熵作为损失函数。其中Sigmoid如公式2:

(2)

交叉熵损失函数定义如公式3:

L=-[ylog+(1-y)log(1-)]

(3)

4.2 实验结果

经过50个Epoch的训练后,模型的精确度可以达到84.3%。模型的初始精度为29.8%。在第一阶段,准确率提高了20%。当目标输出与模型输出不匹配时,用代价函数softmax最大交叉熵计算误差,然后使用adam优化器函数更新神经元的权重。如图3所示,尽管本文DNN的数据集相对于其他领域来说非常有限,但其表现仍然优于其他机器学习算法。由于数据集是有限的,模型应该精确地调整,以提供更好的性能。最初在数据流图中设置了4个隐藏层,每个隐藏层包含300个神经元,但并没有的到好的效果。因为成绩数据没有太多的特征,所以不需要过多的隐含层和神经元,于是进一步减少到2个隐层,每层100个神经元。经过50个Epoch的训练,精度波动较小,停止训练。

图3 左(a)为训练时的模型精度-Epoch变化图;右(b)为训练的损失函数交叉熵-Epoch变化图

与部分学者论文中提出的三种成绩预测模型进行了比较,在其论文中,使用了决策树,朴素贝叶斯和人工神经网络三种模型,并且按照同样的编码方式对本文中的数据集进行了训练和测试[8],结果分别为:决策树(J48)的预测准确率为82.2%,人工神经网络预测准确率和朴素贝叶斯(NB)预测准确率均为80.0%,本文的DNN模型预测准确率为84.3%。由此可见,深度神经网络可以获得更高的精度,优于其他机器学习分类预测方法。为更形象地表示,本文取出某一位学生成绩用DNN模型进行预测,并和该生真实成绩进行比对,结果如表3所示。

表3 基于DNN模型的某学生课程成绩预测结果

上述实验结果表明,模型的预测具有一定的可参考性,其具体实际应用价值在于:对于刚大二结束的同学,可以通过模型预测出其未修课程的不及格风险,提前发出学业预警,进而有利于学生大三大四课程的学习。

5 总结

本文首先通过对决策树算法和关联规则算法的深入研究,提出一种将两者结合的解决方案,然后使用深度神经网络(DNN)构建学生成绩预测模型。基于关联规则和决策树组合算法的成绩分析模型,一方面可以获取学生各课程间的关联性,扩展分析预测结果的覆盖面;另一方面可以提高成绩预测的准确率,这是因为各课程间的关联度对某单科成绩必然存在某些影响。基于DNN的成绩预测模型可以用来以学生低年级(大一大二)的先修课成绩来对高年级(大三大四)的专业课成绩进行预测,实现成绩预警功能。本文的主要工作集中在以下三个方面:

1)利用关联规则算法挖掘分析课程间的关联性,并生成用于构造决策树的新属性。

2)通过信息增益率的思想将生成的新属性和原有属性构造成决策树,实现学生成绩分析预测。

3)构建基于DNN算法的成绩预测模型,实现对学生高年级专业必修课成绩的分析预测。

本文预期实现三个维度的作用:在学生维度,学生可根据自己现有的成绩预测后续课程中有不合格风险的课程,提高后续学习中的针对性;在教师维度,教师可根据学生成绩分析结果对不同学生制定合适的教学模式与方法,提高教学质量,比如说某学生的某一学科出现不合格现象,那么老师可以通过模型得出的结论,重点关注学生后续课程中与该课程关联的学科学习情况;在教务管理人员维度,教务管理人员可根据学生成绩分析结果了解课程之间的关联性,制定更合适的教学计划,从而提高学生成绩和教学质量。

猜你喜欢
决策树关联规则
撑竿跳规则的制定
简述一种基于C4.5的随机决策树集成分类算法设计
“一带一路”递进,关联民生更紧
奥斯卡的规则变了!
奇趣搭配
让规则不规则
决策树学习的剪枝方法
智趣
TPP反腐败规则对我国的启示
试论棋例裁决难点——无关联①