关联规则在学生成绩分析中的应用

来源:互联网 发布:手机淘宝5.9.2旧版本 编辑:程序博客网 时间:2024/05/22 05:07

 

摘 要:关联规则是数据挖掘的主要技术之一,是描述数据库中一组数据项之间的某种潜在关系的规则。以学生的考试成绩数据为研究对象,运用关联规则Apriori算法,对学生四年中各门课程的成绩进行分析,从而发现课程之间的联系和基础课程对专业课程的影响,为教务部门安排课程提供参考,教师可以应用这些知识指导学生,如重要的基础课应安排较多的时间,从而为将来专业课的学习打好基础;针对关联度较小的课程安排适当的时间,以便学生有效地安排好自己的大学生活。

关键词:关联规则;数据挖掘;学生成绩分析

随着计算机存储技术的飞速发展,各行各业都收集了大量的数据。但如果缺乏有效的分析工具,这些数据往往难得再被人们访问和利用。如何从这些数据中发现潜在的知识,日渐成为人们感兴趣的话题。数据挖掘,又称知识发现,就是从大量不完全的、有噪声的、模糊的和随机的实际应用数据中,提取隐含其中的新颖的、潜在的、有用的信息和知识的过程,在许多应用领域显示出巨大的潜力。目前常用的数据挖掘方法有:关联规则分析、序列模式分析、分类分析、聚类等。

学习是一个循序渐进的过程,其与课程之间有一定的关联和前后顺序关系。如果基础课程没有学好,肯定会影响到后续专业课程的学习。但哪些课程会影响到后续课程,以及哪些课程联系密切,还没有一种量化的分析。此外,每学期安排课程的多少,也会影响学生的学习效果。本文使用关联规则算法,对科技大学本科的学生成绩进行分析。通过对考试成绩进行挖掘分析,发现有几门课程与将来专业课的成绩密切相关,教师可以应用这些知识指导学生,如重要的基础课应安排较多的时间,从而为将来专业课的学习打好基础;针对关联度较小的课程安排适当的时间,以便学生有效地安排好自己的大学生活。

1      关联规则介绍

关联规则是由R·Agrawal等人于1993年提出的,它反映了一个事物与其他事物之前的相互依存性和关联性。如果两个和多个事物间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。目前关联规则主要应用在商业数据库中,最常见的关联规则是应用在超市购物篮的分析。通过数据分析可以了解顾客的购买习惯,了解哪些商品频繁地被顾客同时购买,从而帮助零售商有选择地安排货物,制定合理的销售策略。

1.1       基本概念

设I={i1,i2,…im}是项的集合,设任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使TI。设A是一个项集,事务T包含A当且仅当AT。关联规则是形如A=>B的蕴涵式,其中AI,B<I,并且A⌒B=Φ。规则A=>B在事务集D中成立,具有支持度S,其中S是D中事务包含A∪B的百分比,它是概率P(A∪B)。规则A=>B在事务集中具有置信度C,如果D中包含A的事务同时也包含B的百分比是C。这是条件概率P(B|A)。在数据挖掘中,同时满足最小支持度和最小可信度的规则称作强规则。

支持度 support(A=>B)=P(A∪B)。

可信度 confidence(A=>B)=P(B|A)

支持度是对关联规则重要性的描述,而置信度是对关联规则准确性的描述。支持度高说明该关联规则在所有事务中的代表性高,置信度高说明该关联规则的可信度高。有些关联规则置信度虽然高,但是支持度低,说明该关联规则不具有代表性。为了挖掘出具有代表性的关联规则,规定了最小支持度阈值和最小置信度阈值,只有支持度和置信度都分别大于最小支持度阈值和最小置信度阈值的关联规则在学生成绩分析中的应用关联规则才是有实际意义的。关联规则挖掘即是在已知数据库D中产生支持度与置信度分别大于给定的阈值的所有关联规则。

1.2       关联规则的挖掘步骤

(1)Apriori算法:使用候选项集找频繁项集

 Apriori算法通过对数据库D的多次扫描来发现所有的频繁项目集。在第一次扫描数据库时,对项集I中的每一个数据项计算其支持度,确定出满足最小支持度的频繁1项集的集合L1,然后,L1用于找频繁2项集的集合L2,如此下去……在后续的第k次扫描中,首先以k-1次扫描中所发现的含k-1个元素的频繁项集的集合Lk-1为基础,生成所有新的候选项目集CK(Candidate Itemsets),即潜在的频繁项目集,然后扫描数据库D,计算这些候选项目集的支持度,最后从候选集CK中确定出满足最小支持度的频繁k项集的集合Lk,并将Lk作为下一次扫描的基础。重复上述过程直到再也发现不了新的频繁项目集为止。

(2)由频繁项集产生关联规则
  找出了所有的频繁项集,由它们产生强关联规则就很方便了(强关联规则满足最小支持度和最小置信度)。对于置信度,公式为:confidence(A=>B)=P(B|A)=support_count(A∪B)/support_count(A),其中support_count(A∪B)是包含项集A∪B的事务数。support_count(A)是包含项集A的事务数。关联规则产生如下:

   对于任意一个频繁项集L和L的任何非空子集S⊆L,如果比率support(L)/support(S)≥min_con,则生成关联规则R:S=>(L-S),且该规则的置信度和支持度分别为:confidence(R)=support(L)/support(S),support(R)=support(L)。

2        关联规则的应用

2.1       数据的预处理

对现有的学生的考试成绩进行数据预处理(Data preprocessing),包括2个步骤:数据清理(Data Clearing)和数据变换(Data Transformation)。

(1)数据清理:对表中的原始数据进行数据清理,消除一些冗余数据,消除噪声数据,消除重复记录。很多学生的考试成绩数据都为0,通过调查知道这些数据缺失的原因是学生未参加考试,把这些数据都从数据库表中删除。数据清理后的如图1所示。

图1 学生成绩表

(2)数据变换:将数据转换成适合于挖掘的形式。由于学生考试成绩是以数字的形式给出的,不利于数据挖掘的进行,因此需对各科成绩的连续属性值进行离散化处理,离散的过程如下:成绩在80分以上记为1;70~80分记为2;70分以下记为3。将每门课程编号:如,用“A”代表C#,“B”代表数据库,“C”代表ASP.NET,“D”代表宏观经济…则A1表示:C#在80分以上;B2表示:数据结构在70~80分;C3表示:ASP.NET在80分以下……。这样,学生成绩库被转换成包含多个项的表。由于姓名和学分与分析目标无关,也予以剔除。数据变换后如图2所示。

图2 成绩变换表

2.2       算法的应用

在本文中,挖掘的目标是基础课与专业课之间的关联,因此使用如下形式的规则模板作为约束,只取我们感兴趣的规则,规则模板的形式如下:

  P1∧P2∧P3…=>Q1∧Q2…

  其中Pi(i=1,2,….l)和Qj(j=1,2,….r)是谓词变量,分别表示基础课与专业课。挖掘过程寻找与给定模板匹配的规则。为找出满足该模板的维间关联规则,我们需要找出所有的频繁P谓词集LP;还必须有LP中的L2谓词子集的支持度,以计算由LP导出的规则的置信度。

根据表的特点和应用需要,设定最小支持度min_sup为20%,最小置信度min_conf为60%。在算法的第一次迭代,每个项都是侯选1项集的成员,算法扫描所有的事务,对每个项的出现记数。假定最小支持度计数为2,则确定了频繁1项集接着产生侯选2项集,依次类推。选取其中满足如上P=>Q形式,同时满足最小支持度和最小置信度的规则,部分规则如图3所示。

图3 关联规则

3        结果分析

   规则1说明:C#、数据库的分数在70以下,则ASP.NET的成绩也在70分以下,这条规则的置信度是96.6%,支持度是34.5%;该规则与经验相符合,说明ASP.NET与C#有较强的关系;规则还表明, 数据库也与ASP.NET有较大关联,教务部门排课时应考虑将这2门课分别安排在时间上连续的2个学期。

规则4说明:宏观经济学、微观经济成绩在70分以下,则金融学成绩也在70分以下,这条规则的置信度是86.9%,支持度是36.6%; 

规则5说明:高等数学、概率统计学的分数在70分以下,则运筹学的成绩也在70分以下,这条规则的置信度是91.3%,支持度是32.1%。

关联规则的应用很广泛,本文挖掘的规则从一定程度上说明了某些基础课与某些专业课之间的关联,比如某些基础课程学不好,导致某门专业课程分数也较低的规则可信度较高。虽然分数有较大的人为因素,比如某些课程分数普遍较低;但总的来说,挖掘的规则有一定的参考价值。教师可以应用这些知识指导学生,如重要的基础课应安排较多的时间,从而为将来专业课的学习打好基础;针对关联度较小的课程安排适当的时间,以便学生有效地安排好自己的大学生活。