一种基于协同过滤推荐的大学生学业预警系统
2020-07-10向东旭宋明桂李文雅姚士晓聂炎明
向东旭,宋明桂,李文雅,姚士晓,聂炎明
(西北农林科技大学 信息工程学院,陕西 杨凌 712100)
0 引言
学业预警是最具有前瞻性和预防性,有助于提升高校的教学质量和学生的学习积极性与主动性,增强学校、学生以及家长之间三方联系。江西理工大学、东北财经大学等在大学生学业预警的应用实践等方面取得了不错的成效[1]。近年来很多学者对学业预警以及相关算法进行研究。文献[2]提出用核函数的模糊均值聚类(KFCM)改进支持向量机(SVM)数据决策算法,开展学生学业预警决策研究。文献[3]中采用 K-means算法针对高维小样本癌症基因数据集的有效区分基因子集选择难题,提出K-means改进SVM算法模型提升了分类器的性能。文献[4]在分析课程之间的关系基础上,运用遗传优化 BP神经网络算法对目标课程绩点进行预测。文献[5]利用四种数据挖掘算法对学生课程绩点进行预测获知毕业时候的平均绩点。文献[6]通过构造学业状态特征向量,运用支持向量机得到非线性预测模型自动发现学习状态不佳的学生并做出预警。文献[7]运用关联规则分析挖掘出学生课程考试成绩与毕业之间的关联关系。目前,大部分高校的学业预警机制基本都只是根据学分成绩来进行预警。该种学业预警机制虽然是以实际数据为依据,但没有充分利用一切可统计的相关数据、对于数据没有进行足够的分析,且具有片面性。现有机制一般都是在学生学分成绩低于预警线后才对学生进行学业预警或是基于人文社会分析[8],具有滞后性且无法给出具体课程的预警。而且,目前还没有较为系统的学业预警系统的文献报道。
本文通过基于Item的协同过滤推荐算法为学生推荐其高风险课程(该课程可能不合格)。
1 数据预处理
本文所使用的实验数据为学院在读和往届学生的成绩数据十余万条,暂时采用了 2013-2016级某专业的20828条成绩数据。在预处理阶段,为了保护学生隐私,对数据处理中的关键信息进行匿名处理。同时,部分算法要求数据无空值,为了对原始数据中的成绩空值进行填充,首先对所有课程进行人为分类(试验中将111门课程分为7大类),对于每条成绩为空数据,将该成绩赋值为该学生拥有的与该门课程同类的成绩不为空的课程成绩的均值。若与该门课程同类的其他课程成绩均为空,则删去这条数据。
2 基于ItemCF的课程预警方法
借鉴推荐系统的思想,将课程类比为商品,将学生类比为用户,将预警线与课程成绩的差值类比为用户对商品的评分。采用Item-Based的协同过滤算法(ItemCF),对学生可能会低于预警线的课程进行预测,并推荐给学生。
通过User对目标Item的相似Item给出的分数,预测出User对于目标Item的分数,其基于一个假设[3]:如果大部分User对于一些Item的评分比较相近,则当前用户对于这些Item的评分也会比较相近。因此,ItemCF的关键在于,Item之间相似度的求解,即Item-Item相似矩阵的求解。具体步骤如下:
(1)建立User-Item初始矩阵
对于原始数据成绩,将良好的分数即大于X(70)分的成绩数据筛去,并将保留的成绩转换成其对于X(70)的补数。这样的转化使得比较低的成绩转化成较高的user评分。处理完user评分后,建立如下矩阵:
该m行n列的矩阵中ijS表示 user i在 Item j的评分,m表示User数量,n表示Item数量。
(2)计算Item间相似矩阵
计算Item间的相似度的一种常用方法是计算余弦相似度,其公式如下:
其中 A,B分别代表两个 Item,sim(A,B)即为 A和B之间的相似度。Ai代表第i个用户对A的评分,即 SiA;Bi代表第i个用户对B的评分,即 SiB。
(3)产生推荐
依据相似度矩阵,根据 Usera对目标项的最近topN邻项的评分,计算出该 Item b的推荐指数Pab。得到用户对于项的预测推荐指数后,根据设定的阈值进行筛选,得到最终的推荐集。值得注意的是,N参数的确定会影响推荐效果。推荐指数计算公式如下:
其中,b代表所要预测的目标Item,in代表Item b的最近topN邻居中的第i个Item,ianS 代表User a对Itemin的评分。
3 实验结果与分析
实验结果表明,相较于采用 FP-growth方法进行课程推荐的学业预警系统[4]各指标(如表 1),基于ItemCF的课程预警方法可以获得更好的召回率、精确度、覆盖率,分别如图 1-4所示。其中,邻居数选择的范围为 50-85,阈值分别为 0.09、0.095、0.098、0.1、0.102、0.105 和 0.11。
表1 采用FP-growth方法Tab.1 Adopting FP growth method
图1 召回率Fig.1 Recall rate
图2 精确度Fig.2 Accuracy
图3 覆盖率Fig.3 Coverage
4 结论
本文将基于Item的协同过滤(ItemCF)算法创新地运用到大学生学业预警应用场景中,利用课程间相似性来进行预警课程的推荐。采用Spark对基于ItemCF的学业预警方法予以实现。实验表明,该方法具有良好的召回率、精确度,同时保持了高覆盖率。
图4 F-MeasureFig.4 F-Measure