APP下载

关联分析技术在学生成绩分析中的应用

2016-12-22龚希章付熙徐

软件导刊 2016年11期
关键词:关联分析数据挖掘

龚希章 付熙徐

摘 要:采用Visual Basic对学生管理系统数据仓库进行关联分析,揭示了各科成绩之间的联系,详细描述了关联规则算法及实时优化,分析了使用高维数据结构在关联分析中的优化效果。

关键词:数据挖掘;关联分析;高维数据

DOIDOI:10.11907/rjdk.161962

中图分类号:TP391

文献标识码:A 文章编号文章编号:16727800(2016)011017303

0 引言

互联网及信息技术的发展,产生了大量的历史数据,这些数据迫切需要转换为有用的信息和知识[12],通过这些信息和知识,研究经营管理状况、分析市场、控制生产,发现和挖掘可以改进的地方,甚至预测将来的发展和变化,由此产生数据仓库与数据挖掘技术。数据挖掘是从大型数据库或数据仓库中发现并提取隐藏其中的信息的一种技术,目的是帮助决策者寻找数据间潜在关联,发现被忽略的要素,这些信息对预测趋势和决策十分重要[34]。数据挖掘技术涉及数据库、人工智能(AI)、机器学习和统计分析等多种技术。

数据仓库与数据挖掘正越来越多地应用到传统数据库技术领域[5]。本文介绍了一个关联分析技术在教育领域的应用。学生某些课程成绩比较好会导致另外一门或几门课程成绩比较好,对此进行关联分析可得到其对课程偏好之间的联系。本文讨论了经典频繁集算法进行关联分析过程,描述了关联分析中发现多维关联规则方法,分析了使用高维数据结构在关联分析中的优化效果。

1 相关数据库结构与分析

学生成绩关联分析数据来自一个学生管理系统数据仓库,数据仓库中包含学生成绩信息和住宿信息等,由于分析的是各科成绩关系,故相关的只有成绩事实表和学生、课程两个维表,表中出生年月、教师、课程类型、学分、籍贯、考试日期等不相关属性可以去掉,相关数据仓库结构如表1、表2、表3所示。

2 数据挖掘准备工作

数据预处理包括数据清理、数据集成、数据抽取、数据变换和数据归约。数据清理和数据集成在数据仓库构建过程中已经完成。

对预处理后数据进行统计,以直方图表示成绩的分布情况,直方图用分箱的方法来表示数据的近似分布。图1以横坐标表示成绩,纵坐标表示百分比,用Visual Basic 处理数据。

从图1可以看出,考试中成绩优秀的只占很小一部分,而成绩及格和中等却占比很大。一般意义上成绩良好也可以说是成绩好,因此将成绩良好和优秀(score>=3)都定义为成绩好。

3 数据挖掘算法及改进

3.1 关联分析和经典频繁集算法

关联分析发现关联规则,这些规则展示属性-值频繁地在给定数据集中一起出现的条件。关联规则是形如X=>Y的规则,支持度为在所有交易集中同时符合X与Y的交易数与所有交易数之比,可信度指在所有交易集中同时符合X与Y的交易数与符合X的交易数之比。关联规则可表示为:

关联分析主要算法有经典频繁集算法和FP-growth等改进算法,本文采用经典频集算法思想对数据进行关联分析。经典频繁集算法思想如下:①找出所有具有超出最小支持度的支持度项集(itemsets),由Apriori算法实现;②利用大项集(litemsets)产生所需规则(rules)。算法实现如下:

3.2 关联分析算法优化

根据上面的归约,分析学生某科(几科)成绩与其它科目成绩关系。把一门课程成绩好(score>=3)作为一个项,每个学生的考试可作为一项交易,下面讨论进行关联分析时遇到的问题和解决办法。

3.2.1 关联分析问题

由于数据结构关系,本次关联分析遇到以下问题:①经典频繁集算法理论一般只介绍同一字段值之间的关系,而考试成绩分析涉及到课程和成绩两个字段,属于多维关联规则;②课程数量很多(1 000门左右),但大多数课程只有部分学生选修,如果支持度要求太高就得不到有意义的规则,故频繁-1项集也会比较多。数据仓库中每次考试都存储为一条记录,需要过于频繁地扫描数据量巨大的事实表。

3.2.2 多维关联规则处理方法和频繁-1项集找寻

为了简化多维关联规则,建立一个频繁项集表,结构如表4所示。

3.2.3 交易集表产生和算法优化

如果直接在事实表中搜寻层次为2以上的频繁项集,需对每个学生确认频繁集组合条件是否符合,对每个学生都要扫描记录数巨大的考试事实表数次。为解决此问题,建立了专门的交易集表(也可在学生表中直接加一个字段,但这需要更新数据仓库的学生表,并影响其它分析),表结构见表5。

3.2.4 层次较高的频繁集和规则产生

找出频繁-1项集并生成交易集表后,即可依次找出频繁-2项集等层次的频繁集,其中一个2项集由两项频繁-1项集构成,一个 n项集由一个频繁n-1项集和一个频繁-1项集构成。可从频繁项集表中推出构成每个多项集的频繁-1项集,扫描交易集表即可找出该频繁多项集的支持度,最终找出所有频繁项集。以下程序可确定某频繁项集包含的所有频繁-1项集:

其中,array()是用于保存该频繁项集包含的所有频繁-1项集数组,也可直接生成查询条件:将array(i)=rs2(“p2”)改为str1=”$”+cstr(rs2(“p2”))+”$%”,该字符串可直接用于判断交易集表中的交易是否包含该频繁项集的所有条件。

通过扫描交易集表找出所有频繁大项集后生成规则,若支持度大于给定的支持度即可输出为关联规则。

3.2.5 兴趣度分析及规则输出

关联分析规则是否有兴趣,主要评价标准是可信度和支持度。通常使用固定的可信度和支持度标准,但由于本例中频繁项数量很多,高层关联规则产生算法的复杂度也相对较高。而较高层次频繁项的支持度要比较低层次频繁项低很多,可将支持度低的低层次频繁项不产生高层次频繁项,予以清除。本例中各层次使用不同的支持度标准,该标准从低层到高层递减。

经过最后筛选,输出部分规则如下(最小可信度为30%):

(渔业导论>=3)AND(大学英语1>=3)=>(法律基础>=3)支持度5.1% 可信度33.3%

(法律基础>=3)=>(渔业法规>=3) 支持度5.2% 可信度53.1%

(渔业法规>=3)=>(法律基础>=3) 支持度5.2% 可信度61.2%

注:倒过来不一定有足够可信度,例如由于可信度不到30%的缘故,(法律基础>=3) =>(大学英语1>=3)没有作为规则输出。

4 结语

数据挖掘是一项复杂技术,本文介绍了经典频繁集算法进行多维关联分析的方法,讨论了如何将多维关联分析简化为一维关联分析,将多次扫描庞大的事实表转化为扫描相对较小的交易集表。

课程很多,项集也会很大,而经典频繁集算法的缺点之一正是建立了大量频繁项集,频繁扫描事实表。所以对此种关联分析,经典频繁集算法不是最好的算法,但分步优化和使用高维数据能使算法复杂度大大降低。

参考文献:

[1] 张兵令,付熙徐,张丹珏.数据仓库的建立与维护[J].微型电脑应用,2006(2):1519.

[2] 朱扬勇.高级数据库应用开发[M].北京:清华大学出版社,2007.

[3] JIAWEI HAN,MICHELINE KAMBR.数据挖掘——概念与技术[M].影印版.北京:高等教育出版社,2001.

[4] [美]OLIVIA PARR RUD.数据挖掘实践[M].朱扬勇,左子叶,张忠平,译.北京:机械工业出版社,2003.

[5] 康晓东.基于数据仓库的数据挖掘技术[M].北京:机械工业出版社,2004.

(责任编辑:杜能钢)

猜你喜欢

关联分析数据挖掘
基于并行计算的大数据挖掘在电网中的应用
基于随机函数Petri网的系统动力学关联分析模型
一种基于Hadoop的大数据挖掘云服务及应用
数据挖掘的分析与探索
基于GPGPU的离散数据挖掘研究