陈赛娉
摘要:本文从现有的教务管理系统存在的不足入手,简单阐述了关联规则算法和大数据分析的应用。搭建了适合本校的大数据分析平台,在该平台上成功应用Aprior关联规则算法对学生成绩数据进行挖掘和分析,得出很多意义的信息。
【中图分类号】TP311.13
1 引言
随着高校信息化建设的不断深入,教务管理信息系统被广泛应用。通过教务管理系统,基本上实现了学校中的成绩管理、课程管理、学业学籍管理等日常教学任务的信息化。但是,这类系统只是一个初级的信息化管理系统,只具备了信息的输入、查询、报表打印和简单的统计等功能。
同时,在教务信息管理系统的使用过程中,会产生大量的数据。这些数据的产生对于教务系统的使用会带来一定的负面作用。随着数据量的不断加大,会明显感觉系统的反应速度下降。为了提高教务管理系统的响应速度,除了对硬件的升级外,普遍的做法是将速度按时间段进行归类存档。学校一般会将已经毕业的学生所有数据进行备份,然后再将系统中该类数据清空。这类数据除了特殊情况下进行查询外,基本上不会再有人去接触。
为了增强教务管理系统的功能,并更好地利用系统中积累的各种宝贵的数据,我们引入了比较成熟的数据挖掘算法--Aprior关联规则算法,利用该算法可以对教务管理系统数据库中提取有用的信息,为教务决策提供帮助。
2 关联规则算法介绍
关联算法是数据挖掘中的一类重要算法。1993年,R.Agrawal等人首次提出了挖掘顾客交易数据中项目集间的关联规则问题,其核心是基于两阶段频繁集思想的递推算法。该关联规则在分类上属于单维、单层及布尔关联规则,典型的算法是Aprior算法。[1]
Aprior算法将发现关联规则的过程分为两个步骤:首先通过迭代,检索出事务数据库1中的所有频繁项集,即支持度不低于用戶设定的阈值的项集;然后利用频繁项集构造出满足用户最小信任度的规则。其中,挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。[2]
3 高校学生成绩数据分析平台构建
数据分析平台是是扩展现有教务管理系统功能的核心。在大数据时代,构建一个适合高校教学管理的数据分析平台,对提高整个学校的教学管理具有非常重要的作用。普通高校中生涉及的数据主要包括学生在日常学习生活中产生的数据、教师在教学过程中记录的数据及学校管理人员在日常的教学管理中产生的数据。如果精确记录这些数据,那将是一个比较庞大的量。我们需要的分析结果主要是为教学管理提供一个数据支持,对实时性分析不敏感,所以,在构建数据平台时选用开源的HADOOP来构建。
3.1 HADOOP数据分析平台的构建
HADOOP是近期比较流行的大数据分析平台工具,具有较高的可靠性、容错性和可扩展性。HADOOP的安装相对其它工具会比较复杂。安装该平台时,在硬件方面,我们配置了3 台高性能PC机,系统选择CentOS7。
数据平台的安装配置如下:
1、 关闭系统防火墙
2、 修改主机名和IP地址
将三台机器的主机名改成Master、Slave_1、Slave_2;IP地址分别为192.168.100.101,192.168.100.102,192.168.100.103。
3、 安装JDK
4、 配置Hosts文件
找到系统中"/etc/hosts"这个文件,并将三台机器的机器名和IP地址方面填进去,一一对应。三台机器都做这个配置。配置好后用ping命令进行测试。
5、 建立3台机器间无密码访问
利用SSH,建立三台PC机间免密码登录。
6、 安装Hadoop
从Apache官方网站上下载Hadoop2.4,64位版本,并解压安装。Master作为Master服务器解压,Slave_1,Slave_2作为Slave客户机,可以直接把Master机器上安装好的Hadoop文件夹复制过来。
7、 配置HADOOP
分别配置hadoop目录中的core-site.xml、hdfs-site.xml、mapred-site.xml、mapred-site.xml文件,并且修改hadoop-env.sh、yarn-env.sh文件中的JAVA_HOME路径。在slaves文件中增加Slave_1,Slave_2。
8、 启动HADOOP
先输入命令将Hadoop初始化:bin/hdfs namenode –format,然后输入sbin/start-all.sh启动Hadoop。
9、 查看系统运行
输入jps命令来查看系统运行情况。
3.2 外部数据导入
Hadoop平台搭建完毕后,我们需要将现有的数据导入到该平台中。我们现有近4年全校学生学习成绩数据。这些数据存储在另外一台MySQL数据服务器中。在数据导入前,需要在Hadoop平台中安装HIVE和Sqoop。通过Sqoop工具,我们可以很方便的将MySQL中的数据导入到HIVE中。
4 Aprior算法在Hadoop平台上的实现
Aprior算法分布式实现算法思路:Mapper:k-v输入为事务数据库,外加一个内存中的数据结构,此数据结构即用来存储候选项集,保证了候选项集是完整的不会被分片。输出为候选项(key)-支持度(value)。Reducer:普通的累加求和即可。在写入文件时加一个判断,满足支持度要求才写入文件。2个基本的原子操作就有了。一个完整的Aprior算法流程是: 运行了一个job,即一次Mapreduce,产生相应阶次的频繁项集,将此次job的输出读取入内存中,产生高阶候选项集作为下一个job的在内存中的输入,也就是候选项集,然后,启动下一次job。接下来循环迭代,直到不能产生新的频繁集为止。[3]
5 数据分析应用
数据分析是我们搭建数据平台的主要目的。通过不同的规则进行分析可以找到我们感兴趣内容,为我们的决策提供有效的数据支持。我们使用并行Aprior算法,对学生成绩数据进行关联规则挖掘。
5.1单门不及格课程数据分析
通过简单的数据统计,我们可以很快得到学生单门课程不及格出现的频率,由于学生的不同专业所学课程差异较大,所以我们选择结合计算机专业的数据进行挖掘。数据挖掘结果见表1。
从数据表中可以很容易得出,学生在《高等数学》这门课程出现的不及格概率是最大的,而且第二学期比第一学期出现的更多。
5.2 关联规则分析
我们设置置信度为0.6,最小支持度为0.01(6/578),通过april关联关注算法的计算,从成绩表中我们可以得出如表2的结果。
从表格中可以看出两门课程之间的关系,比如先前课程《程序设计基础》如果发生不及格现象,它的后续课程《数据结构》出现不及格的可信度就达到0.82,应该引起高度重视。
6 结论
上文的实例应用中由于应用的数据量比较少,没有真正体现大数据Hadoop平台的优势,操作也没有普通的数据库系统使用方便;但是,随着各类不同的数据集成后,相信这个平台的优势会慢慢体现出来。
通过设置不同的关联规则来挖掘学生成绩数据可以得到很多有用的信息。比如,上面提到的先导课程与后续课程之间的关联问题,及时感知学生学习中可能出现的问题。通过辅导员和专职教师的直接干预来正确引导学习方向。同样,也可以把两个不同的年级段的课程成绩比较作为考核辅导员和专职教师的教学效果考核依据。这些都将极大地提高教学管理的效果,使教学更加有针对性,从而提高教学档次。
参考文献:
[1] 数据挖掘中关联规则算法的研究
[2] 关联规则算法
[3] Aprior算法Hadoop上实现思路与关键部分代码endprint