基于统计频率和关联规则的异常学生挖掘方法与流程

文档序号:13426948阅读:158来源:国知局

本发明具体涉及一种基于统计频率和关联规则的异常学生挖掘方法。



背景技术:

随着国家经济技术的发展和人们生活水平的提高,教育已经成为我国发展的重中之重。近些年信息化和网络化建设的浪潮遍及了各个行业,激增的数据量在各大应用系统中不断积淀。面对海量的数据,虽然数据库可以进行一些常规的数据查询和统计功能,但是却无法进行更深层次的数据分析与挖掘,存储如此巨量的数据甚至会直接影响数据库的性能和正常运行。为了应对“信息爆炸而知识贫乏”的状态,数据挖掘的平台技术和方法不断涌现。现今使用的最多的大数据存储平台是hadoop的组件hdfs和基于内存的计算框架spark。

异常学生挖掘是根据已完成学业的学生的各科考试成绩挖掘出存在各种不同学业问题的学生。标记出存在问题的异常学生后,通过一卡通数据可以分析这些异常学生平时的生活习惯,如消费情况、图书馆借阅情况和门禁记录等,进而通过数据刻画异常学生的生活情况,并以此来分析当前在校学生的生活数据,对预测可能存在学业问题的学生作出提醒。随着高校的扩招和一卡通系统数据的积累,学校的教务系统中沉淀了海量已毕业学生的学生成绩数据。当前的高校学生学业成绩管理通常由辅导员人工完成,只是对学生的挂科情况进行提醒和处理,具有极大地滞后性,如果能综合已毕业学生的数据,分析存在学业问题的学生的日常行为模式,将其建立模型,用于分析当前在校学生日常行为,就可以在其出现学业问题之前予以提醒和纠正,而高校对于已经毕业的学生数据,没有进行细致的分类,很难从成绩数据中看出哪些学生曾经存在过学业问题。面对这一情况,相关数据挖掘技术在这方面的应用就不断出现,其中,比较常用的就是使用离群点检测算法,挖掘和大多数学生相比存在明显异常的学生,并以此来引导制定教学方案、对学生进行预警,目的是能够提高教学质量降低留级退学情况的发生。

现如今常用的离群点检测算法包括基于统计的离群点检测方法、基于距离的离群点检测方法、基于密度的离群点检测方法、基于聚类的离群点检测方法和基于偏移的离群点检测方法,这些方法作为通用的离群点挖掘方法,除了各自存在的缺陷之外,最大的问题是不能有针对性的对特定的场景进行高效的挖掘,大学学生从成绩来看中大致存在两类不同的异常学生,一类是全局型异常学生,该类学生大部分课程成绩均不理想,另一类是偏科型异常学生,对于特定类型的课程存在问题,除了这两类离群点外,还存在大量的噪声数据(学生考试中发挥失常等因素导致成绩数据不能准确反映学生实际水平),严重影响算法的准确性。



技术实现要素:

本发明目的在于提供一种预测准确、预测效果好、算法简单可靠的基于统计频率和关联规则的异常学生挖掘方法。

本发明提供的这种基于统计频率和关联规则的异常学生挖掘方法,包括如下步骤:

s1.获取待分析学生的成绩数据,并构建学生-成绩矩阵x;矩阵中的元素xij表示学生i在课程j中的成绩;

s2.根据步骤s1建立的学生-成绩矩阵x,针对每一列数据xj进行数据清洗后得到矩阵x',并统计x'中每一列数据xj'中的离群点数据并进行标记,从而得到学生-课程异常矩阵a;

s3.根据步骤s2中得到的学生-课程异常矩阵a,统计每个学生存在的异常科目占其所修科目的比重,并与事先设定的第一阈值进行比较,从而划分出全局型异常学生;

s4.对往届学生的成绩数据进行关联规则挖掘,从而获得学生各课程成绩之间的关联关系;

s5.根据步骤s4得到的各课程成绩之间的关联关系,对所有学生的异常科目进行分组合并;

s6.对步骤s5得到的分组合并后的学生的异常科目集合,计算其关联规则信息熵,并与事先设定的第二阈值进行比较,从而划分出偏科型异常学生;

s7.根据步骤s3和步骤s6得到的全局型异常学生和偏科型异常学生,采用专家经验法对学生进行分类,从而挖掘得到最终的异常学生。

步骤s1所述的构建学生-成绩矩阵x,具体为采用如下步骤构建矩阵:

1)搭建大数据存储框架hdfs存储学生的考试成绩;

2)搭建大数据内存计算框架spark,通过sparksql对数据进行清洗,从而得到学生-成绩矩阵x。

所述的通过sparksql对数据进行清洗,具体为去掉分数字段出现的字符数据、大于100和小于0的数值型数据,以及学生id无法关联到学籍表的学生的数据。

步骤s2所述的构建学生-课程异常矩阵a,具体为采用如下步骤构建矩阵:

(1)获取往届学生存储在教务数据库中的各个课程成绩,并求取每门课程j的均值μj和方差σj;且课程j的学生分数xj大致服从正态分布(μj,σj);

(2)设置每门课程的阈值λj,对于学生-成绩矩阵x中的每一列数据,采用如下公式计算异常因子lij:

并构造和学生-成绩矩阵x结构相同的学生-异常信息矩阵a,a中的元素为lij;

(3)利用sparksql将原始的矩阵数据存储两份:一份存储到hdfs上方便后续的计算,一份存储到数据库中,方便后续查询。

步骤s3所述的划分出全局型异常学生,具体为采用如下步骤进行划分:

a.根据得到的学生-异常信息矩阵a,按照如下算式计算学生i的异常科目比例gi:

式中n为所有科目的数量;||xi||表示学生所有已修科目的总数;

b.设置阈值g,若gi>g,则将学生i标记为全局型异常学生。

步骤s4所述的获得学生各课程成绩之间的关联关系,具体为采用如下步骤获取关联关系:

a.利用scala编写基于spark的cs_apriori算法程序;

b.设置合理的最小支持度和最小置信度,利用cs_apriori算法程序,以hdfs中的数据集为输入,挖掘课程的关联规则;

c.将挖掘得到的关联规则保存在hdfs上,便于后续的计算。

步骤s5所述的对所有学生的异常科目进行分组合并,具体为采用如下规则进行分组合并:

根据学生-异常信息矩阵a,对于学生i,获取满足lij=1的课程j的集合pi,pi即为学生i所有存在异常问题的课程的集合;将pi中的科目进行分类,属于同一条关联规则的课程,将其归为同一类;若pi中存在某些课程隶属于两个不同的关联规则,而这两个关联规则存在交集,则规定这些课程也归为同一类;通过课程的归类将pi划分为{r1,r2,…,rk}的形式。

步骤s6所述的划分出偏科型异常学生,具体我采用如下规则进行划分:

ⅰ.采用如下公式计算学生i的偏科异常量ei:

式中表示pi的纯度,纯度越小则说明pi中的课程类别越集中,||pi||表示pi的长度,用于防止出现只有极少课程异常,从而导致纯度很高的情况;ei为pi根据关联规则划分子集后计算而得的关联规则熵值和pi长度的倒数加权求和;

ⅱ.事先设置第二阈值e,若ei<e,则认定学生i为偏科型异常学生。

本发明提供的这种基于统计频率和关联规则的异常学生挖掘方法,提出了一种新的基于统计频率和关联规则信息熵的离群点检测算法,通过统计频率计算学生全部已修科目的考试成绩异常总量,设置合理阈值划分全局型异常学生,有效的降低噪声影响;通过关联规则表达课程的相关性,计算学生出现问题的科目的关联规则信息熵,从而描述学生的偏科程度,较准确的划分出偏科型异常学生;本发明方法在挖掘效果上较通用的离群点检测算法有明显的提升,将其应用至异常学生检测模型中,对学校和个人都具有重要意义;而且,本发明方法预测准确、预测效果好、算法简单可靠。

附图说明

图1为本发明方法的方法流程图。

具体实施方式

如图1所示为本发明方法的方法流程图:本发明提供的这种基于统计频率和关联规则的异常学生挖掘方法,包括如下步骤:

s1.获取待分析学生的成绩数据,并构建学生-成绩矩阵x;矩阵中的元素xij表示学生i在课程j中的成绩;具体为采用如下步骤构建矩阵:

1)搭建大数据存储框架hdfs存储学生的考试成绩;对于学生而言,修过的科目则有相应的成绩值,未修的科目则为空;

2)搭建大数据内存计算框架spark,通过sparksql对数据进行清洗,从而得到学生-成绩矩阵x;在数据清洗时,具体为去掉分数字段出现的字符数据、大于100和小于0的数值型数据,以及学生id无法关联到学籍表的学生的数据;

学生-成绩矩阵x中,xij表示学生i在课程j中的得分,0≤i<n,0≤j<n,n为学生总数,n为课程总数,xij为空表示学生i未修课程j;

s2.根据步骤s1建立的学生-成绩矩阵x,针对每一列数据xj进行数据清洗后得到矩阵x',并统计x'中每一列数据xj'中的离群点数据并进行标记,从而得到学生-课程异常矩阵a;具体为采用如下步骤构建矩阵:

(1)获取往届学生存储在教务数据库中的各个课程成绩,并求取每门课程的均值μj和方差σj;且课程j的学生分数xj大致服从正态分布(μj,σj);

(2)设置每门课程的阈值λj,对于学生-成绩矩阵x中的每一列数据,采用如下公式计算异常因子lij:

并构造和学生-成绩矩阵x结构相同的学生-异常信息矩阵a,a中的元素为lij;lij为0表示学生i的课程j学习成绩正常,lij为1表示学生i的课程j的学习成绩异常;lij为空表示学生i未修课程j;

(3)利用sparksql将原始的矩阵数据存储两份:一份存储到hdfs上方便后续的计算,一份存储到数据库中,方便后续查询;

s3.根据步骤s2中得到的学生-课程异常矩阵a,统计每个学生存在的异常科目占其所修科目的比重,并与事先设定的第一阈值进行比较,从而划分出全局型异常学生;具体为采用如下步骤进行划分:

a.根据得到的学生-异常信息矩阵a,按照如下算式计算学生i的异常科目比例gi:

式中n为所有科目的数量;||xi||表示学生所有已修科目的总数;

b.设置阈值g,若gi>g,则将学生i标记为全局型异常学生;

s4.对往届学生的成绩数据进行关联规则挖掘,从而获得学生各课程成绩之间的关联关系;具体为采用如下步骤获取关联关系:

a.利用scala编写基于spark的cs_apriori算法程序;

b.设置合理的最小支持度和最小置信度,利用cs_apriori算法程序,以hdfs中的数据集为输入,挖掘课程的关联规则;

c.将挖掘得到的关联规则保存在hdfs上,便于后续的计算;

具体的,上述的关联关系算法可以采用专利申请号201710224459.3中的算法;

s5.根据步骤s4得到的各课程成绩之间的关联关系,对所有学生的异常科目进行分组合并;具体为采用如下规则进行分组合并:

根据学生-异常信息矩阵a,对于学生i,获取满足lij=1的课程j的集合pi,pi即为学生i所有存在异常问题的课程的集合;将pi中的科目进行分类,属于同一条关联规则的课程,将其归为同一类;若pi中存在某些课程隶属于两个不同的关联规则,而这两个关联规则存在交集,则规定这些课程也归为同一类;通过课程的归类将pi划分为{r1,r2,…,rk}的形式;

s6.对步骤s5得到的分组合并后的学生的异常科目集合,计算其关联规则信息熵,并与事先设定的第二阈值进行比较,从而划分出偏科型异常学生;具体我采用如下规则进行划分:

ⅰ.采用如下公式计算学生i的偏科异常量ei:

式中表示pi的纯度,纯度越小则说明pi中的课程类别越集中,||pi||表示pi的长度,用于防止出现只有极少课程异常,从而导致纯度很高的情况;ei为pi根据关联规则划分子集后计算而得的关联规则熵值和pi长度的倒数加权求和;

ⅱ.事先设置第二阈值e,若ei<e,则认定学生i为偏科型异常学生;

s7.根据步骤s3和步骤s6得到的全局型异常学生和偏科型异常学生,采用专家经验法对学生进行分类,从而挖掘得到最终的异常学生;采用专家经验法进行划分时,对个别既被标记为全局型异常学生,又被标记为偏科型异常学生进行具体分析,采用专家经验对该学生进行具体分类,从而保证每个学生都最多只有一个标记。

通过上述的步骤,从而完成学校内所有学生的异常状态挖掘。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1