基于Apriori算法的学生课程关联性研究
2020-12-17迟耀丹吴博琦刘安琪
陈 颖,迟耀丹,吴博琦,刘安琪
吉林建筑大学 电气与计算机学院,长春 130118
0 引言
在社会多样性发展和人口素质需要提高的双重环境压力下,我国大学进行了全方位扩招.然而,随着学生的人数增多,使之对应的的相关数据量也变大.为了使得学生能有更为广阔的就业领域,在大学不停地引进新课程同时,还要保证学生能够按时完成学业、保证教学质量.因此,通过数据挖掘技术探寻成绩与课程之间的隐藏信息和潜在关联,提高学生课程的通过率和教学质量,成为大学针对性教学的一个重要研究方向.
目前,多数学校还停留在对成绩数据进行登记、备份和查询阶段,并未对成绩数据背后隐藏的信息有其他的分析挖掘.本文利用数据挖掘关联规则中的Apriori算法,计算成绩与课程之间的支持度和置信度[1],根据计算结果,找到成绩与课程之间的潜在关联,为学生推荐更适合本人的课程.
1 智慧校园成绩分析系统
在“智慧校园”这一概念出现之前,美国克莱蒙特大学教授凯尼斯格林在20世纪90年代初“信息化校园计划”大型科研项目中提出了“数字化校园”[2].“数字化校园”即是“智慧校园”的前身.“智慧校园”从数字化设备普及到智慧教育一共经历了5个阶段[3],如图1所示.
在智慧校园教育平台中,课程和成绩是老师和学生重视的内容之一.为了方便老师对学生进行针对性教学和提高学生课程成绩,本文提出一个学生成绩分析系统,用于分析学生各门课程的考试成绩.通过分析结果,找到各门课程之间的潜在关联,为针对性教学和教学质量提高提供依据.
该系统是以Hadoop平台为基础框架,使用Hive作为数据仓库[4],利用Apriori算法对学生成绩数据进行分析挖掘.系统主要框架图如图2所示.
图1 智慧校园发展的5个阶段Fig.1 Five stages of smart campus development
图2 系统主要框架图Fig.2 Main frame diagram of the system
2 关联规则Apriori算法
数据挖掘[5]以挖掘有趣、有用、隐含的信息为目的,以找到人可以接受的模式来描述数据、使用一些变量去预测未知的或者其他变量未来的值为任务,从大量、多样、繁杂的数据中找到能用的知识.常把数据挖掘分为分类问题、聚类问题和关联规则问题[6].
大量的数据冗杂、繁复,不使用技术手段便得不到有用的信息,此时需要用数据挖掘技术来挖掘有益的数据.发现关联规则[7],即是把相关联的有规律的数据挖掘出来.
2.1 关联规则
关联规则[7]是发现事物间相互关联性的规则,通常用支持度(Support)和置信度(Confidence)两个标准评估事物之间的相互依赖性或相互关联性.
假设有一个数据库D,A,B均为D中的项集[8].
支持度SA表示数据库D中项集A所占的比例,即:
(1)
其中,SA为项集A在数据库D中的支持度;PA为项集A在数据库D中所占的比例.
数据库D中既包含项集A又同时包含项集B的百分比称为关联规则中的支持度(Support),即:
(2)
其中,S为项集A,B同时在数据库D、中的支持度.
数据库D中已经包含项集A的前提下,还包含项集B的百分比称为关联规则中的置信度(Confidence),即:
(3)
其中,P(A|B)为数据库D中包含项集A的情况下,包含项集B的概率.
使关联规则的分析结果有价值的前提是:计算值满足最小支持度阈值(min-s)和最小置信度阈值(min-c)[9],这些阈值根据想要从数据挖掘中得到何种潜在信息来进行设定.
2.2 Apriori算法
一般情况下,关联规则运算采用FP增长与Apriori这两种算法,FP增长算法[10]是利用一种压缩的表达方式FP树,采用递归与分而治之的方法来学习频繁项集;而Apriori算法[11]隶属于频繁项集算法,用来降低运算的复杂程度.其主要过程为:多次扫描数据库D,挖掘频繁项集L1;运用函数apriori_c,完成连接和剪枝步骤,使频繁项集L1生成候选项集C2,而后挖掘频繁项集L2;循环往复以上步骤,一直计算到没有频繁项集Lk,运算截止.
Function apriori_c(Lk)
for each 项集L1∈Lk
for each 项集L2∈Lk
if(L1[1]=L2[1])∧(L1[2]=L2[2])∧…∧(L1[k]=L2[k])
then
{c=L1∞L2; //连接:产生候选
if is_infrequent_subset(c,L)
then
deletec; // 剪枝:删除非频繁的候选
Prevention countermeasures for geohazard of Sichuan Tibetan area expressway YUAN Fei-yun LI Yong-lin ZHENG Bin(23)
else
addctoCk;}
本文即是利用Apriori算法,挖掘学生成绩中隐藏的信息,找出成绩与课程之间的潜在关联,为教师针对性教学和学生成绩管理提供依据.
3 学生成绩分析
基于Apriori算法分析学生成绩,假设一个班级学生的成绩数据库D,取10个学生5门课程的成绩,分别用T 1,T 2,T 3,T 4,T 5来表示.表1的内容表示10个学生不及格的课程,通过分析支持度S和置信度C来找出不及格课程之间的联系[12-13].
表1 成绩数据库DTable 1 Grade database D
假定min-s=20 %,根据式(2),则Apriori算法的运行过程如下:
(1) 扫描数据库D,找到候选项集C1,如表2所示,在C1中得到不满足最小支持度阈值min-s=20 %的频繁选集L1,如表3所示.
表2 C1Table 2 C1
表3 L1Table 3 L1
(2) 通过连接运算,得到候选项集C2,如表4所示,再次扫描数据库D,在不满足最小支持度阈值min-s=20 %的前提下,从候选项集C2中得到的频繁选集L2,如表5所示.
表4 C2Table 4 C2
表5 L2Table 5 L2
(3) 通过连接运算,得到候选项集{T 1 T 2 T 5},{T 3 T 4 T 5},根据Apriori算法的性质:频繁项集的任一子集必须是频繁项集.所以只有{T 1 T 2 T 5}符合要求,得到新的候选项集C3,如表6所示,在候选项集C3中得到不满足最小支持度阈值min-s=20 %的频繁选集L3,如表7所示.
表6 C3Table 6 C3
表7 L3Table 7 L3
(4) 由(3)可得C4=ø,算法运行结束.
(5) 产生关联规则:以表6、表7中的{T 1 T 2 T 5}为例,根据式(3)计算置信度Confidence.
Confidence({T1})=>{T2T5}=2/7=29 %
Confidence({T2})=>{T1T5}=2/5=40 %
Confidence({T5})=>{T1T2}=2/6=33 %
Confidence({T2T5})=>{T1}=2/3=67 %
Confidence({T1T5})=>{T2}=2/4=50 %
Confidence({T1T2})=>{T5}=2/4=50 %
可以根据实际情况设置期望置信度.本文将期望置信度设置为50 %,根据上述计算结果,有3条符合条件,即:
Confidence({T2T5})=>{T1}=2/3=67 %
Confidence({T1T5})=>{T2}=2/4=50 %
Confidence({T1T2})=>{T5}=2/4=50 %
可以通过这个数据,简单分析出T 1,T 2,T 5课程不及格之间是有相互联系的,进而得出结论:假如T 2,T 5两门课程不及格,则T 1不及格的概率是67 %;T 1,T 5两门课程不及格,则T 2不及格的概率是50 %;T 1,T 2两门课程不及格,则T 5不及格的概率是67 %.如果5门课程在同一学期开课,则T 1,T 2和T 5这3门课程的任课教师应该改进教学方法,将3门课程的授课内容融会贯通,提高教学质量和考试通过率.
4 结语
建立成绩分析系统已成为高校快速发展中提高教学质量不可忽略的重要环节.本文阐述了智慧校园发展进程、关联规则和Apriori算法,并以10名学生的5门课程成绩为例,利用Apriori算法对其进行计算分析并找出5门课程间的关联.本文的不足之处是成绩数据较为单一,只选取了1个班的5门课程,这会使最后分析结果存在一定的误差.在后续研究中,应利用更多的成绩数据进行分析,为在校师生提供一个便于科研、学习和生活的服务型平台.