高校学生成绩一直是直接评价学生学业水平的重要指标, 也是间接评价高校教师教学效果及高校管理水平的指标之一[1]. 随着高校学生成绩信息量的不断增加, 对学生成绩进行简单的统计、对比等信息处理方式难以满足学生和教育工作者的实际需求, 学生成绩预警研究已成为当今高校信息管理领域研究的热点[2-5].
成绩预警是指通过对学生课程成绩进行分析, 挖掘各门课之间的联系, 基于已有的成绩数据, 对学生未来的成绩走向进行预警. 挖掘课程之间的相互联系, 构建完善的预警规则库是学生成绩预警研究中的关键点[6-9]. 高校课程之间具有很强的关联性[10], 这种关联性体现在专业知识体系构建以及知识传授的前后次序. 挖掘深层次的课程关联关系, 可以为学生成绩的预警分析提供决策支持, 对高校提高教学管理水平具有重要应用价值.
关联规则挖掘[11]是数据挖掘中一种重要的数据分析方法, 这其中经典的Apriori算法[12]可有效地从某一任务的事务集中挖掘出客户感兴趣且富有价值的隐藏规则. 近年来, 将Apriori算法应用在高校成绩预警分析中成为一个研究热点, 何楚等[13]采用Apriori算法和FP-growth算法挖掘学生成绩的频繁规则并结合基于图论的谱聚类算法对规则中涉及的公共课与专业课进行分类, 提出基于课程关联分类模型的学生成绩预测, 研究方法新颖, 但仅采用支持度与置信度进行规则挖掘, 没有剔除某些有较强干扰性的规则; 郭鹏等[14]在对学生成绩进行聚类离散化后, 再引入兴趣度挖掘课程间的关联规则, 其侧重点在于不同等级成绩之间的课程规则挖掘, 而非针对不及格课程之间的规则挖掘; 王华等[15]为减少Apriori算法的I/O负载, 利用交集操作记录频繁项集从而降低时间代价, 不足点在于受限Matlab平台; 刘华婷等[16]针对Apriori算法的效率问题提出采用线性表进行数据存储, 利用Apriori算法中的超集定理判断非频繁项集, 从而在扫描速度上进行优化, 加快算法的时间效率, 遗憾的是该研究仅在单一且规模较小的数据集上进行了效率测试; 袁路妍等[17]通过减少Apriori算法中挖掘频繁项集的比较次数, 以提升算法的效率, 该法所挖掘出的规则在度量上仍只采用了支持度与置信度; 赵峰等[18]借鉴分治算法的思想, 提出将事务集中的课程进行预分类, 再得到各自类别的频繁项集进行规则挖掘, 虽避免了扫描整个事务集, 但仍无法保证规则的有效性.
综上, Apriori算法在高校成绩预警应用中的基本思想: 一是对课程或学生成绩本身进行类别处理, 再通过引入一种新的参数对挖掘出的规则进行有效性度量; 二是针对Apriori算法自身存在的运行效率缺陷提出改进, 加强Apriori算法的适用性. 对此, 本研究在传统的Apriori算法之上提出利用提升度筛选出彼此关联程度较高的课程规则, 再引入兴趣度针对预警规则库所需求的课程规则进行筛选, 最终得到兴趣度较高的关联规则构建课程预警规则库, 相比较传统Apriori算法, 本研究提出的算法能大大降低了冗余规则数量, 缩短算法运行时间, 提高规则挖掘的效率.
1 高校课程预警规则分析方法 1.1 相关定义定义1. 项.
定义集合
定义2. 候选项集.
由一或多个项组成的集合
定义3. 频繁项集Lk.
若该候选项集A的绝对支持度support(A)满足算法中预设定的最小支持度阈值supmin, 也即
定义4. 关联规则.
本算法中所有的关联规则都是由频繁
$support\left( {X \Rightarrow Y} \right) = count(X \cup Y)/count(D) = p(X \cup Y)$ | (1) |
其中,
$confidence\left( {X \Rightarrow Y} \right) = p(X \cup Y)/p(X) = p(Y|X)$ | (2) |
支持度与置信度是对规则筛选最重要的两种度量, 规则的支持度反映所发现规则的价值性及在事务集中出现的频率, 置信度则反映了规则的确定性[19].
1.2 传统的Apriori算法课程预警规则挖掘算法传统的Apriori算法课程预警关联规则挖掘利用逐层迭代的搜索方法, 即由生成的频繁
第1阶段, 算法执行后扫描事务集D, 记录每个项的频数, 并根据最小支持度阈值筛选出符合要求的候选频繁项集, 记为
第2阶段, 再次扫描所有的频繁
传统的关联规则挖掘算法使用支持度-置信度框架作为筛选依据, 但支持度-置信度框架存在一定的缺陷. 其中支持度的缺点是显而易见的, 在事务集中会有许多潜在的有意义的模式由于其频繁项集Lk支持度小而被忽略或者产生一些冗余的规则; 而置信度的缺陷却比较特殊, 它主要在于忽视了规则后件的项集在事务集中的支持度. 因此, 通过传统的Apriori算法生成的预警规则库会出现很多无用、冗余的关联规则, 对成绩预警分析产生干扰, 降低预测的准确性, 因而需要对预警关联规则作进一步地度量分析, 从而筛选出合适的预警规则. 对此, 本研究在支持度-置信度框架基础上引入提升度Lift[20]、兴趣度Interest[21]对挖掘关联规则算法进行改进.
提升度方面, 某一频繁k项集生成的某规则
$\begin{split} Lift\left( {X \Rightarrow Y} \right) &= p(X \cup Y)/p(X)p(Y) \\ & = confidence\left( {X \Rightarrow Y} \right)/support\left( Y \right) \end{split}$ | (3) |
当该条规则的Lift值小于1时表示X和Y是负相关的, 一个出现可能导致另一个不出现; 当值Lift近似等于1时表示X和Y是独立的, 彼此之间无相关性; 当Lift值大于1时表示表示X和Y是正相关的, 其中一个的出现会蕴涵另一个的出现. 提升度越高则表示由规则前件主导与规则后件共同出现的程度越高, 反之提升度越小时则二者互斥的程度越高.
兴趣度方面, 本研究引入基于差异思想的兴趣度[22,23]. 某一频繁k项集生成的某规则
区别于提升度筛选前后件关联程度较高的规则, 兴趣度可对某频繁k-项集产生的正反面规则筛选得到用户更感兴趣的规则. 如对于某一频繁2-项集A={面向对象程序设计(及格)、软件工程(及格)}, 由于前后件的不同可产生两条规则: {面向对象程序设计(及格)
在Apriori算法中, 由频繁项集
首先通过矩阵运算的方法获得频繁一项集
将事务数据库D转换为矩阵, 每一事务以矩阵的行来表示行纬度, 事务中的项用列表示列维度, 当要对数据进行挖掘时就可以直接调用转换为矩阵中的信息, 在行列指定的位置处若存在数据则为1, 否则记为0, 删除事务长度小于最小置信度的行与列, 免去了对D再次扫描的过程, 节省了I/O的开销与时间.
改进Apriori的课程预警关联规则算法伪代码如算法1.
算法1. 改进的课程预警关联规则算法
输入: 事务集D, 最小支持度,
输出: 预警规则列表
1) 扫描事务集D, 生成候选项集矩阵
2) 将候选项集
3) for(k=2; Lk−1≠
4) 剪枝并生成新的候选项集
5) 再次扫描事务集D, 计算
6) 将Ck的support与
7) 输出频繁项集列表L;
8) for(k=2; k<=len(L); k++): //遍历频繁项集列表L
9) 提取每一个
10) 计算每一个
11) 计算每一个
12) 由筛选后的
13) 输出预警规则列表R.
2 实验结果与分析 2.1 实验环境与数据来源本研究的实验硬件环境为Intel Core i7处理器、16 GB内存, 1 TB硬盘; 操作系统选用Mac OS系统; 选用Python 3.7并在Jupyter notebook开发环境上对实验进行编程实现.
实验数据来源于新疆师范大学计算机科学技术学院毕业学生的19门基础课与核心专业课的成绩, 共3000条记录, 部分原始数据如表1 所示.
2.2 数据的清洗
由于部分原始数据中出现了不同专业间相关开设的课程名称前后不一致的现象, 必须对其进行一致化处理: 如高等数学(1)与高等数学(I)统称为高等数学一、面向对象程序设计(Java)与面向对象程序设计统称为面向对象程序设计, 计算机网络与计算机网络技术统称为计算机网络.
本研究主要挖掘是专业课程的相关关系, 特别是不同学期开始的专业基础课与核心专业课程之间的联系, 可将原始数据中与专业无关的公共类、博雅类课程进行剔除, 仅选取如高等数学、数据结构、Web技术与应用等19门学科课程作为研究对象.
对于某些学生成绩大面积缺失的, 则采取舍弃该样本, 若学生出现补考成绩的需进行成绩的一致性处理. 对于某些学生出现某科科目成绩出现空值的情形, 则采用该学科的均值成绩填充.
2.3 数据的离散化课程成绩本身也就是一种离散化数据, 若将课程成绩的分值直接作为Apriori算法的事务集进行输入, 其挖掘出来的规则适用性较低且模型效率低. 由于考试方式、考试难度、评卷的标准存在差异性, 课程成绩的分布有可能相对集中在某一个小区间内, 而非在各个分值区间中呈现出相似的密度. 本研究针对事务集中550条记录, 决定采用基于单值的划分方法, 设定课程成绩区间, 划分课程成绩等级, 以便于更好的挖掘课程之间的联系. 所得的成绩等级划分表如表2.
2.4 预警规则挖掘对比实验及分析
为验证改进算法的效率, 分别采用传统Apriori算法, MIFP-Apriori[24], RCM-Apriori[25], 与本文提出的算法进行预警规则的挖掘, 对效率进行对比. 在事务集为3000的数据集上, 选用最小值支持度阈值0.1, 最小置信度阈值0.4的进提升度阈值1.4、兴趣度阈值0.1执行算法实验, 4种算法所挖掘出的无用冗余规则条数和运行时间见表3, 由表3可以看出本文提出的改进的Apriori算法可以大大降低冗余规则条数, 算法运行时间也得到缩短, 提高了预警规则的挖掘效率.
为进一步测试在不同事务集大小下的各算法执行效率, 将事务集按照500~3000进行递增, 考察不同数据规模下算法的运行时间, 实验结果如图2所示.
由图2可以看出, 当数据规模较小时, 4种算法的执行时间相差不大. 当数据规模逐渐增加时, 传统的Apriori算法斜率增加比较明显, 执行时间最长, 本文提出的算法在候选项集生成, 冗余规则筛选, 存储方式等方面进行了优化, 曲线斜率比其他3种算法小, 运行时间最短, 并且性能稳定.
本文提出的改进的Apriori算法在剔除掉无关的1324条冗余规则后, 共挖掘到有效规则430条. 部分规则如表4所示.
表4中第2条规则{页设计基础(不及格)
高校课程预警规则库可以为学生成绩预警提供决策支持, 本文对学生成绩进行预处理后, 采用Apriori算法, 重点挖掘不及格课程之间的关联关系, 构建基础预警规则库, 挖掘强关联关系的课程, 扩充基础预警规则库, 采用多种方式对冗余规则进行过滤, 确保预警规则库的有效性. 挖掘出的课程预警规则, 可为课程成绩的预测, 高校教学方案的设计提供数据支撑, 有助于提升高校的教学质量.
[1] |
陆冷飞. 高校成绩分析模型及应用研究. 中国教育信息化·高教职教, 2017, 9(5): 62-65. |
[2] |
梁啸. 基于数据挖掘的高校学生成绩预警技术的研究[博士学位论文]. 武汉: 武汉理工大学, 2014.
|
[3] |
吴文玲. 基于数据挖掘技术的课程相关性分析及其应用研究[硕士学位论文]. 成都: 四川师范大学, 2018.
|
[4] |
Wu XD, Zeng YZ. Using Apriori algorithm on students’ performance data for association rules mining. Proceedings of 2nd International Seminar on Education Research and Social Science. Kuala Lumpur, Malaysia. 2019. 403–406.
|
[5] |
吴蓓. 基于决策树算法的成绩预测模型研究及应用[硕士学位论文]. 西安: 西安理工大学, 2019.
|
[6] |
张甜, 尹长川, 潘林, 等. 基于改进的聚类和关联规则挖掘的学生成绩分析. 北京邮电大学学报(社会科学版), 2018, 20(2): 91-96. |
[7] |
都娟, 翟社平. 基于改进Apriori算法的高校学生成绩预警系统的研究. 现代信息科技, 2018, 2(2): 108-109, 112. DOI:10.3969/j.issn.2096-4706.2018.02.037 |
[8] |
许琦, 祖燕飞. 我国高校大学生学习预警援助机制的建构及其作用. 科技信息, 2009(31): 145, 189. |
[9] |
刘娜. 基于数据分析的高校教学管理决策支持方法研究[硕士学位论文]. 杭州: 浙江大学, 2019.
|
[10] |
谢雨婷. 基于学生成绩的课程关联性和学生综合素质评价研究[硕士学位论文]. 武汉: 华中师范大学, 2019.
|
[11] |
崔妍, 包志强. 关联规则挖掘综述. 计算机应用研究, 2016, 33(2): 330-334. DOI:10.3969/j.issn.1001-3695.2016.02.002 |
[12] |
陆丽娜, 陈亚萍, 魏恒义, 等. 挖掘关联规则中Apriori算法的研究. 小型微型计算机系统, 2000, 21(9): 940-943. DOI:10.3969/j.issn.1000-1220.2000.09.013 |
[13] |
何楚, 宋健, 卓桐. 基于频繁模式谱聚类的课程关联分类模型和学生成绩预测算法研究. 计算机应用研究, 2015, 32(10): 2930-2933. DOI:10.3969/j.issn.1001-3695.2015.10.011 |
[14] |
郭鹏, 蔡骋. 基于聚类和关联算法的学生成绩挖掘与分析. 计算机工程与应用, 2019, 55(17): 169-179. DOI:10.3778/j.issn.1002-8331.1902-0223 |
[15] |
王华, 刘萍. 改进的关联规则算法在学生成绩预警中的应用. 计算机工程与设计, 2015, 36(3): 679-682, 752. |
[16] |
刘华婷, 郭仁祥, 姜浩. 关联规则挖掘Apriori算法的研究与改进. 计算机应用与软件, 2009, 26(1): 146-149. DOI:10.3969/j.issn.1000-386X.2009.01.054 |
[17] |
袁路妍, 李峰. 改进的关联规则Apriori算法在课程成绩分析中的应用. 中国教育信息化·高教职教, 2017(9): 62-65. DOI:10.3969/j.issn.1673-8454.2017.09.017 |
[18] |
赵峰, 刘博妍. 基于改进Apriori算法的大学生成绩关联分析. 齐齐哈尔大学学报(自然科学版), 2018, 34(1): 11-15. |
[19] |
Han JW, Kamber M. 数据挖掘: 概念与技术. 范明, 孟小峰, 译. 北京: 机械工业出版社, 2012. 157–176.
|
[20] |
毕建欣, 张岐山. 关联规则挖掘算法综述. 中国工程科学, 2005, 7(4): 88-94. DOI:10.3969/j.issn.1009-1742.2005.04.016 |
[21] |
周欣, 沙朝锋, 朱扬勇, 等. 兴趣度—关联规则的又一个阈值. 计算机研究与发展, 2000, 37(5): 627-633. |
[22] |
张玉芳, 熊忠阳, 彭燕, 等. 基于兴趣度含正负项目的关联规则挖掘方法. 电子科技大学学报, 2010, 39(3): 407-411. DOI:10.3969/j.issn.1001-0548.2010.03.018 |
[23] |
周皓峰, 朱扬勇, 施伯乐. 一个基于兴趣度的关联规则采掘算法. 计算机研究与发展, 2002, 39(4): 450-457. |
[24] |
曾子贤, 巩青歌, 张俊. 改进的关联规则挖掘算法——MIFP-Apriori算法. 科学技术与工程, 2019, 19(16): 216-220. DOI:10.3969/j.issn.1671-1815.2019.16.033 |
[25] |
廖纪勇, 吴晟, 刘爱莲. 基于布尔矩阵约简的Apriori算法改进研究. 计算机工程与科学, 2019, 41(12): 2231-2238. DOI:10.3969/j.issn.1007-130X.2019.12.019 |