APP下载

改进的关联规则Apriori算法在课程成绩分析中的应用

2017-09-16袁路妍李锋

中国教育信息化·高教职教 2017年9期
关键词:Apriori算法关联规则数据挖掘

袁路妍++李锋

摘 要:利用关联规则算法分析教育变量之间的关系,已成为教育变革的重要决策依据。Apriori算法是经典的关联规则挖掘算法,但该算法需频繁扫描整个事务数据库导致执行效率低下,为此作者通过压缩事务数据库和减少连接运算中无效比较的次数,对算法进行了优化。在教育实践中,选取计算机应用技术专业学生的课程成绩作为样本,利用优化的Apriori算法对课程成绩进行关联分析,分析结果用于现有课程体系合理性的诊断以及后续课程学习效果的预测,为课程体系的重构及课程教学方法的改革提供重要参考。

关键词:数据挖掘;关联规则;Apriori算法;课程成绩分析

中图分类号:G412 文献标志码:A 文章编号:1673-8454(2017)17-0062-04

一、引言

“关联规则挖掘是数据挖掘研究领域中的一个重要分支,旨在分析出事务数据库中有趣的关联或相关联系”[1]。近年来,关联规则挖掘已经在商业领域取得了众所瞩目的成绩,不少学者也开始尝试将关联规则挖掘应用到教育领域。“数据驱动学校,分析变革教育的大数据时代已经来临,利用教育数据挖掘技术和学习分析技术,构建教育领域相关模型,探索教育变量之间的相关关系,为教育教学决策提供有效支撑将成为未来教育的发展趋势”[2]。如运用关联规则判定哪一种教学方法适合某类学生或某门课程,寻找师生各种行为活动之间的内在联系等,这些成果的运用为教学改革与管理提供了科学依据。由于国内在教育领域挖掘分析起步较晚,研究成果大都停留在实验阶段,尚未得到实际应用和推广。从研究者的背景来看,“研究者大多数是计算机专业学者,他们熟练掌握数据挖掘技术,但是缺乏教育和心理学理论以及教育数据的来源,为教育数据挖掘带来局限”[3]。学生的课程成绩是衡量学生的学习效果和教师教学质量的重要依据之一,课程成绩之间的相关性一直是教师和学生关注的重点,但课程成绩的相关程度利用传统手段难以量化,难以为学生的学业提供精准的指导和预警作用。因此,作者结合工作实际,运用改进的关联规则挖掘算法Apriori,对计算机应用技术专业所有课程进行关联分析,量化专业各门课程成绩之间的关联程度,为完善课程体系,优化课程设置、预测课程教学效果提供科学依据。

二、Apriori算法及优化

Apriori算法是关联规则挖掘算法中最经典的算法,也是其它关联规则挖掘算法的思想来源。“Apriori 用一种候选项目集产生频繁项集,采用逐层搜索的方法,由频繁K项目集来构造侯选K+1项目集,当没有新的候选项目集产生时,Apriori算法结束”[4],文献[5]给出了算法的详细介绍。

Apriori算法不足及优化方法:①计算Ck中每个项集的支持度时,需扫描整个事务数据库;其计算依据是一条事物数据是否包含该候选項集,推出事物数据库中项数小于K的事务数据对k-项集的支持度为0,对k项候选集Ck计算支持度之前先删除事务数据库中项数小于K的事务数据,对所扫描事务数据库进行压缩。②在连接运算中,重复比较和无效比较次数太多。由于在Apriori算法中每条事务数据中的各项已经按照字典排序,该算法所生产的频繁项集也是有序的且任意两个项集之间对位比较也是有序的,即:假设l1,l2,…,lm是LK-1中的项集,则存在l1

Apriori函数:

输入:事务数据库D;最小支持度阈值min-sup

输出:频繁项集L。

Beigin

L1=gen_one_frequent(D);

For(K=2;Lk-1≠?覫;K++)

{

Lk=?覫;

CK=candidate_gen(Lk-1,min_sup);

Dk={t∈D|t.size()?叟K}

For each candidate c∈CK

{

For each transaction t∈Dk

{ IF c subset of t

c.count++;

}

IF c.count?叟min_sup

Add c to Lk

}

L=L∪LK

}

Return L

End

Candidate_gen函数:

输入:频繁k-1项集;

输出:频繁k项候选集Ck。

条件:l1,l2,…,lm 是LK-1中的项集且项集中的项是按照字典次序由小到大排序,且l1

Begin

For (i=1; i?燮m-1;i++)

{ For(j=i+1;j?燮m;j++)

{

if((li[1]=lj[1])∧…∧(li[k-2]=lj[k-2])∧(li[k-1]

{

c=lilj;

IF(is_subset(c,Lk-1))

{ Add c to Ck;}

}

Else

Break;

}

}

Return Ck

End

is_subset函数:

输入:候选k项集c,频繁k-1项集Lk-1;

输出:如果包含非频繁子集,返回FALSE,否则返回TRUE。

Begin

for each(k-1)-subset s of c

if s ?埸Lk-1 then

Return FALSE;

Return TRUE;

End

三、优化后的Apriori算法在课程成绩分析中的应用

1.数据的准备及处理

样本数据选取了某高职院校计算机应用技术专业12级两个班四个学期的成绩数据。由于考察课以四级制计分难以反映学生个体成绩差异,因此只选取了专业考试课程的成绩数据。教师在运用教务系统录入成绩时,难免出现疏漏,每年也存在一定数量的学生旷考或中途退学,这样势必会产生一些干扰数据。因此,在数据挖掘之前,需要对原始成绩数据进行清洗,消除不一致数据和干扰数据。每种数据挖掘算法对数据形式都有特定的要求,关联规则挖掘算法Apriori算法比较适用于记录中指标取离散值的情况。因此,在数据挖掘前需要对成绩数据进行离散化处理,而数据离散化方法的选取对数据挖掘质量的影响至关重要。

数据离散化是将属性(如数字型数据)离散成若干区间。数据离散的方法一般有兩种:一种是等宽的方法,即将属性的值域【Xmin,Xmax】等距离划分为K个区间,即【Xmax-Xmin】/K,然后将区间内的数据映射为相应的离散值,该方法对于存在某区域偏斜严重的点时,是不适用的,且划分边界过硬;另一种是等频的方法,即属性值域划分为K个区间,要求落在每个区间的对象数目相等,这种方法容易将数据值相差很远的数据放在一组,也严重降低结果的可用性。

鉴于上述两种方法均存在弊端,我们提出另一种数据离散化方法为“自动调整宽度的划分方法”:①将属性值域划分K个类别,每个类别对应一个数据区间,区间的宽度由该类别的数据占整个数据区间的比例确定;②确定类别的比例可采用经验值法或者正态分布方法;③不同数据项的各类别所占比例可以不同,这些比例是人为确定的。通过各类别所占比例的调整,使得每个数据区间的宽度都是不断变化的。该方法的优点是能够充分考虑数据项的内在特点和差异,数值之间的比例可以操控具有较强的灵活性。在进行具体的研究时,将百分制的成绩划分为5个等级(类别):优秀、良好、中等、及格、不及格,各等级在每门课程中所占比例,采用经验值法分析所得,其所占比例如表1所示。

依据表1对各门课程成绩划分比例,将学生成绩数据转换成五级制。根据上述改进APriori算法的特性,需要将学生成绩数据表按照一条记录转换为一个事务的原则将其转化相应的事务数据库,记录中的字段值按照一定代码进行转换。

2.代码转换表制定

对参与分析的专业课程进行编码,C语言程序设计的编码为1,数据结构编码为2,依次类推。对成绩等级进行编码,成绩优秀为1,成绩良好为2,成绩中等为3,成绩合格为4,成绩不合格为5,那么课程成绩数据对应的代码表如表2所示。

3.代码转换表制定

根据改进Apriori算法的特性,将学生成绩数据表,依据表2按照一条记录转化为一个事务的原则,生成相应事务数据表如表3所示。

4.挖掘结果

进过多次调整,最终设置最小支持度为0.3,最小可信度为0.6,共产生出61条规则,部分关联规则如表4所示。

由表4中规则可知,《Web程序设计(PHP)》、《网络信息编辑》相关度比较高,若《Web程序设计(PHP)》这门课程良好,《网络信息编辑》课程良好的可信度为81.82%。同样,《FlashAs3.0程序设计II》与《多媒体软件项目开发课程设计》两门课程成绩存在很强的关联关系。其它的规则同样可按这种方式分析。将这种关联关系主动推送给学生和任课教师,学生可依据这些关联关系,实现对待学习课程的激励和提醒,如本学期要学习《网络信息编辑》课程,依据表4规则可知,其先导课程《Web程序设计(PHP)》成绩良好,学好《网络信息编辑》课程的概率就非常大,从而提升学习自信,否则学习失败的可能性比较大。对于任课老师,若本学期教《网络信息编辑》这门课程,其可利用这些规则,如《Web程序设计(PHP)》这门课程对该课程学习效果进行预测,事先评估全班学生的学习概况,开课前识别出可能出现的学习困难的学生和学习优异的学生,做到对学习困难者给予关注和指导,给予学习优异者及时鼓励和提出进一步要求,有利于展开小组协作学习,从而提升全班学生的学习效果。

四、结束语

实验证明,通过压缩扫描的事务数据库及减少连接运算中无效比较的次数,能有效解决Apriori算法频繁扫描事务数据库带来的低效问题。运用优化后的Apriori算法对课程成绩数据进行挖掘分析,产生的规则在一定程度上反映了课程成绩之间的影响程度,这些规则的运用能够比较准确的预测后续课程的教学效果,因此,教师在授课前可以预测课程的整体学习情况并给予及时的干预和指导,学生也可依据规则,对课程学习效果做事先评估和预测,以便在今后的学习中做到有的放矢。

实际挖掘中,给定不同的支持度和置信度会产生不同的关联规则,有些规则并无实际意义,需要结合实际情况进一步验证规则的可用性。也存在一些本应该出现的规则并未出现如《C语言程序设计》与《数据结构》,其主要原因是课程体系结构不合理造成的。针对现实中关联性比较强而数据分析结果关联性比较弱的课程,教学管理者需对该课程的教学内容、学时分配、开课学期、考核方式作合理性辨识,进一步修订课程体系。

参考文献:

[1]刘华婷,郭仁祥,姜浩.关联规则挖掘Apriori算法的研究与改进[J].计算机应用与软件,2009,26(1):146.

[2]徐鹏,王以宁等.大数据视角分析学习变革——美国《通过教育数据挖掘和学习分析促进教与学》报告解读及启示[J].现代远程教育,2013(6):11.

[3]李婷,傅钢善.国内外教育数据挖掘研究现状及趋势分析[J].现代教育技术,2010,20(10):22.

[4]王华,刘萍.改进的关联规则算法在学生成绩预警中的应用[J].计算机工程与设计,2015,36(3):679.

[5]Jiawei Han, Micheline Kamber;范明,孟小峰译.数据挖掘概念与技术[M].北京:机械工业出版社,2007:160-165.

(编辑:王晓明)endprint

猜你喜欢

Apriori算法关联规则数据挖掘
基于并行计算的大数据挖掘在电网中的应用
基于Hadoop平台的并行DHP数据分析方法
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究