APP下载

基于关联规则数据挖掘技术在教学管理中的应用

2012-12-29李晓光

中国新技术新产品 2012年17期
关键词:C语言事务数据挖掘

李晓光

(哈尔滨学院,黑龙江 哈尔滨 150086)

1 概述

在现代科学的不断进步的今天,高校的教学管理也不可避免的要趋于日益规范化、信息化和网络化。其主要侧重点要转向项目研究、方法创新、优化服务而非单一的规范管理。通过数据挖掘和知识发现技术,我们可以从现有数据中分析提取潜在有用的知识信息并应于与教学管理中。本文将介绍学分制选课成绩信息的关联规则挖掘的相关内容,并结合Oracle数据库的教学数据库系统,对关联数据挖掘技术进行探讨。

2 基本的挖掘算法

基本的数据挖掘算法主要包含置信度(confidence)和支持度(support)两个参数。Apriori是已知的最早的关联规则的挖掘基本算法。它的主要作用是用来描述用户对挖掘出来的规则的偏好程度。把浏览大量事务数据时的每一个的单个项累加起来,在所有事物浏览完毕后,把自身支持度小于用户给出的支持度的项目删除,以此为基础拓展到多项事务中去。

3 以Oracle数据库系统为基础的挖掘系统

在应用服务器层上进行数据逻辑处理的工作,是在普遍的C/S和B/S数据库应用系统中所采取的办法,我们通常把数据库当成一个储存数据的工具来看待和管理,在返还给数据库之前,我们想要先提取数据库中的某一种特定数据并进行处理。在这个过程中,Oracle数据库是目前是最常用也是最优秀的有关于数据存储,、转换、应用的中心系统。数据挖掘系统在工作时,时常要对数据表中所有数据进行彻底扫描,因为这样可以将尽可能多的把整体数据转换和处理过程放在数据库系统内来执行,以提高数据扫描效率。

4 教学系统中的挖掘实例

4.1 学生成绩事务数据预处理

首先,我们需要学生成绩的事务型数据表,这是因为使用关联挖掘算法需将具体学生的所有成绩数据元组组合并成一个事务数据。通常数据库中存储学生成绩的方式为N对N的元组,即“学号——课程号——成绩”的形式。不难发现,我们很难把它们组装到一个事务中去,因为每个学生在数据表中都是由多个元组组成的。倘若这样大型的事务性数据表要在在挖掘过程中重新创建,那就要花去很长的运算时间,得不偿失,所以将其一直存储在数据库内才是正确的选择。

笔者认事物数据的建立可以分解为:数据集成、数据选择和预分析。

(1)数据集成。在这个步骤中,从操作型环境中提取并集成的数据中语句不可避免的会含有许多语句的二义性问题,我们要首先把它统一起来或者直接消除。消除语义二义性是在教学系统的数据处理时的主要工作。例如对于《c语言程序设计》,有的表则会将其显示为:“c语言”。而他们指的其实是一回事,所以我们要把它们合二为一。建立在园区网络的系统研发应该以两个数据集市为主题,即学生与课程。

(2)数据选择。减小数据量、保证数据挖掘结果的优质性是预分析和数据选择的主要功能。因为在之前的过程中,由于数据仓库的容量会不断增加。数据挖掘时的一次耗时也会相应地加长。会给用户造成巨大的负担。

(3)数据预处理。首先,要将处于离散状态的多元组的学生成绩数据和成绩转化为事务性的成绩数据,一个事务元组配对一个学生,既学号——成绩事务组。具体形式如下:(0243041087,“C语言程序设计B,软件工程B,数据结构 A,?”)或(0243041293,“C 语言程序设计 A,汇编语言 B,人工智能 B,? ”)。其中,用一个足够长的字符串来存储,每个事务用逗号作为间隔,使用的时候通过很简单的字符串分析就能够提取出里面的所有成绩事务。

4.2 数据挖掘

取得课程间的相关信息,进而指导学生选课是关联规则对学生成绩数据库进行数据挖掘的最终目标。Apriori、AIS、SETM和 Partitio等是关联规则的主要分析算法,本文中的实例将采用Apriori算法。

在进行处理时,学生考试成绩,隶属院系等基本信息以及在数据预备阶段形成的各课程所隶属的课程分类信息都是关联规则分析中可能用到的,应该加以留存。依据学生的考试成绩,分析出各门课程之间的内在联系,提高数据挖掘的精确度,仅仅靠考虑可信度以及支持度在实际应用中是远远不够的,有时甚至还会引起不必要的误导。笔者认为可以通过在原来的关联规则上增加兴趣度阈值这一手段来实现。例如《C语言程序设计》(以下简称《C语言》)和《软件工程》(以下简称《软件》)成绩为优的学生数量在成绩库中占15%,但是《软件》中优秀的学生数量在《C语言》为优的学生中占到数量的50%,我们可以由这两个足够大的支持度和可信度得出:“提高《C语言》的教学水平有助于《软件》教学成绩的提高”,这种结论看似合理,而实际的情况却是原始记录显示选修《软件》的学生有60%成绩都是优,也就是说有35%的学生《C语言》成绩非优但《工程》的成绩为优。而且《软件》成绩优秀的概率高于已知《C语言》成绩为优的概率这一定律,对于任意我们不知道信息的学生都成立。所以,如果用户在选择时没有仔细分析,上面的信息很显然会给他们造成很负面的误导。所以我们引入兴趣度阈值这一参数来解决这个问题。

定义规则R的兴趣度公式为:IR=(CRSRH)/max(CR,SRH)

其中CR是规则R的可信度|H∧B|/|B|,SRH就是原始记录中支持该规则推出的信息即规则右部H的比例。很显然CR与SRH之间是不具有任何关联性的,兴趣度IR在计算时,R的结果可正可负。正负就是R值得意义所在。如果为负,就表示该规则是具有误导性的,应该舍弃。反之则表示该规则有效,输出。

4.3 学生成绩关联挖掘规则和过程的产生

在于对事务的计数上是关联挖掘算法Apriori的主要处理过程。但要是因排列组合导致事务个数特别多,就可能导致产生的候选式远远超过一般计算机内存的承受力。因此,内存与外存之间的切换是Apriori算法过程中必然需要考虑到的问题。解决这个问题,最简单的办法就是直接将候选式保存在Oracle数据库中,建立一张临时的数据表—CanidateTable。 CanidateTable内剩下的元组就是频繁项了,频繁项可以用DELETE FROM Candidate Table WHERE支持度计数<最小支持度计数执行完成后得到。对于产生的候选式十分巨大的情况,我们可以通过建立索引,提高上述筛选候选式的效率。

4.4 结果描述

我们可以利用可视化工具将数据挖掘获取的信息以用户理解和观察的方式反映给用户。在本系统中选用表格进行反映表述。用表格去表示某学院学生成绩挖掘结果,范式为(no,front,rear,C,S,I),这些单词和字母分别代表的是是产生关联规则的序号、关联规则前件、关联规则后件、可信度、兴趣度和支持度。

通过分析挖掘,我们可以得到课程之间的相关关系,这样可以帮助管理者做出正确的决策,指导他选课过程,有助于学生更加有针对性的学习各门课程。

[1]HAN J,KAMBER M.Data Mining:Concepts and Techniques.Beijing:Higher Education Press,2001.

[2]Rakesh Agrawal,Tomasz Imielinski,Arun Swami.MiningAssociation Rules between Sets of Items in Large Databases,1993

[3]董彩云,曲守宁.数据挖掘及其在高校教学系统中的应用[M].济南大学学报,2004.

[8]张梅峰,张建伟,张新敬,等.基于Apriori的有效关联规则挖掘算法的研究[J].计算机工程与应用,2002,39(19):196-198.

[9]张智军,方颖,许云涛.基于Apriori算法的水平加权关联规则挖掘 [J].计算机工程与应用,2002,39(14):197-199.

猜你喜欢

C语言事务数据挖掘
基于分布式事务的门架数据处理系统设计与实现
基于Visual Studio Code的C语言程序设计实践教学探索
河湖事务
基于C语言的计算机软件编程
基于并行计算的大数据挖掘在电网中的应用
高职高专院校C语言程序设计教学改革探索
一种基于Hadoop的大数据挖掘云服务及应用
论子函数在C语言数据格式输出中的应用
基于GPGPU的离散数据挖掘研究
SQLServer自治事务实现方案探析