展金梅 陈君涛 田飞
(1.琼台师范学院; 2.海南经贸职业技术学院 海南 海口 571127)
数据挖掘是一种可以从大量数据中自动获取知识的技术,利用该技术对学生的成绩进行分析,数据挖掘可以帮助教育工作者更全面、深入地了解学生的学习情况和学习习惯,为教学提供更加有效的支持,促进学生的成长和发展。首先,数据挖掘可以用来分析学生的学科成绩和各类影响因素之间的相关性。例如:通过分析学生的学科选择、学习行为、考试习惯、家庭背景等方面的因素,可以找出影响学科成绩的关键因素,进而帮助教育工作者发现学生的学习强项和学习弱项,制定更有针对性的教学策略。其次,数据挖掘可以用来挖掘学生学习行为和习惯方面的信息。例如:通过分析学生在学习时间、学习方式、学习效率等方面的数据,可以发现学生的学习倾向和学习偏好,进而为教育工作者提供更好的教学方法和指导建议。数据挖掘作为一种发掘隐藏有价值信息的获取手段,将数据挖掘技术应用于教育管理,可以有效地提高学校的教育水平和教学质量。
数据挖掘技术起源于1989年,它是数据库知识发现(Knowledge Discovery in Databases,KDD)中的一个步骤。数据挖掘一般是指通过某些算法去发掘隐藏于大量数据中的有价值信息的过程。数据挖掘是一个多学科交叉的科学研究领域,其以计算机科学为基础,通过数理统计、数据分析、数据库技术、机器学习和模式识别等方法,实现挖掘隐藏信息的目标。
近年来,国内学者也进行了许多教育数据挖掘的相关研究,如张华等人[1]、娄德涵[2]通过分析学生在学习生活中产生的行为数据,构建数据挖掘模型,分析研究学生的勤奋性、学习生活规律性和学习成绩之间的相关程度,相较于其他算法,此算法可以更准确地预测学生的学业表现。刘晓雲等人[3]使用决策树、逻辑回归和关联规则3 种数据挖掘方法,对学生上网行为的属性(上网时长、上网次数、网络流量等)和学习成绩之间的关系进行了研究,研究发现这些属性和学习成绩均为负相关,其中上网时长影响最大。刘大莲等人[4]、李凤英等人[5]、胡祖辉等人[6]使用学生的学习成绩、个人基本信息等数据,按照一定规则生成能力指标数据,根据学生在校行为信息和能力指标使用数据挖掘技术对学生毕业去向进行分析和预测,研究发现学生能力指标对毕业去向影响最大,性别影响最小。单耀等人[7]、金玉[8]、张建萍等人[9]使用K-Means++算法对学生在校期间的学习行为和学习成绩之间的关联性进行了相应的研究,挖掘学生各种学习行为与学习成绩之间的相关性。
国内外学者对数据挖掘技术与应用进行了众多研究,也取得了大量成果。研究中使用较为广泛的算法分别为K-Means算法、Apriori算法、决策树算法和神经网络算法等。本文主要使用K-Means++聚类算法,对学生的各科学习成绩进行挖掘分析,通过挖掘出的信息,对学生进行分类,帮助学校有针对性地对学生进行教学。
在数据挖掘领域,K-means 是一个非常有效且高频率使用的聚类算法,但是K-means 也有很大的局限性.首先,初始类的中心点对聚类效果有直接影响,聚类的准确性十分依赖初始中心点的选择;其次,算法的聚类结果非常容易陷入局部最优,重新随机分配聚类中心点后,聚类的效果可能会更好;最后,该算法对数据的孤立点比较敏感,游离于正常数据之外的异常点会对聚类效果产生一定的影响。为了解决K-means算法的局限性,研究学者依据类间距离最大、类内距离最小的原则、保证各个聚类中心点尽可能远的条件下,提出了K-Means++算法。
K-Means算法的局限性主要来源于初始中心点的选择,其所有初始中心点均为随机选择。K-Means++算法是在K-Means 算法的基础上,对初始中心点的选择进行了优化和改进。由随机选择所有初始中心点改进为随机选择一个初始中心点,其余初始中心点的选择关键点是:通过计算每个数据点被选择为初始中心点的加权概率,计算得到的概率越大,被选择的可能性也就越大。对于每一个数据点xi被选择概率Pi的计算方法如式(1)和式(2)所示。
式(1)、式(2)中:D(xi)为数据点xi与当前所有初始中心点中最近的一个中心点的欧氏距离;ui为第j个初始中心点;n为当前已生成初始中心点的数目;m为所有数据点的数目。选择下一个初始中心点时,重新计算每个数据点被选择的概率,直到完成选择所有初始中心点。
完成聚类中心点初始化之后,计算数据点与各个聚类中心之间的欧氏距离,根据距离将数据点划分到最近的那一个簇。之后,根据每个簇中所有样本的均值,重新计算聚类中心点,计算方法如式(3)所示。
式(3)中,ci为第i个聚类中心点。重新计算并更新聚类中心点之后,继续重复数据点划分和聚类中心点更新这两个步骤,直到聚类中心点不再更新,或者达到预设的迭代次数。至此,完成对所有数据点的归类。
学生在校期间各科考试成绩对学校来说是非常重要的教育类数据,然而,目前考试成绩仅仅作为学科考核通过与否的指标的方法远远没有发挥出其价值,许多隐藏在其下的信息并未挖掘出来。如果能够从考试成绩挖掘出学生的成绩特点等信息,可以有针对性地对学生进行教学指导。为此,本文设计了一套基于数据挖掘的学生成绩分析模型。该模型主要分为3个模块:数据预处理、K-Means++聚类、聚类结果分析。系统模型详见图1。
图1 数据挖掘模型
进行考试成绩数据预处理的目的,一方面是为了保证数据的有效性和准确性,另一方面是因为KMeans++聚类算法对异常或者孤立数据比较敏感,如某学科某考生缺考,这种情况就会影响聚类效果。
数据预处理可分为以下3个部分:数据选择、数据清洗和数据变换。
数据选择主要是去除与成绩无关的数据,如学号、姓名、班级等信息,仅仅保留各科成绩作为聚类模型的拟合数据。本文通过筛选关键字段的方法,将学生各科成绩从数据库中抽取出来进行字段筛选。
数据清洗是为了删除重复数据和修复异常数据,主要通过计算机完成。由于录入成绩的时候可能会出现错误录入的情况,对于考生成绩缺失情况的数据处理,使用估算填充的方法,通过该考生其他目成绩与班级所有同学成绩之间的差异进行分析或逻辑推理进行估算,得出填充值。如据缺考学生的其他科目成绩在班级排名,估计出缺考科目的成绩。
数据变换可以视为数据归一化处理,保证所有数据拥有相同的度量单位,如大部分学科考试满分成绩为一百分,而某些考试却不是百分制,又或者某些老师评分过于严格或宽松,这些情况都会对聚类产生一定的影响。数据归一化就是将全班的成绩映射到[0,1]的区间内,如式(4)所示。
式(4)中:X为由全班学生的该科目成绩xi组成的集合;Xmin和Xmax分别为全班成绩的最低分和最高分;yi为归一化后的成绩。数据预处理前后的各科目成绩如表1和表2所示。
表1 预处理前的各科目成绩 (单位:分)
表2 预处理后的各科目成绩 (单位:分)
本文使用K-Means++算法进行聚类,在进行聚类前,首先要确定类或簇的数目k,如果k设定的太小,则不能有效地将数据分开,当k=1时,表示未进行聚类,后者说将所有数据聚为一类。如果k值设定的过大,则会出现个别类的数据点太少的情况,当k=m时,m为数据点的个数,也可以表示未进行聚类,或者说每一个数据点都是一类。
由于K-Means++算法复杂度与k值的大小呈正相关,所以在可以进行有效分类的情况下,k越小越好。本文使用类内均方误差作为评定聚类效果的指标,将清洗后的学生成绩数据作为输入数据,k值分别设为2~7,类内均方误差随k值的变化曲线如图2所示。
图2 类内均方误差随k变化曲线图
从图2中可以看出,当k≥5 之后,类内均方误差开始处于稳定状态,所以将k设定为5比较合适。
使用K-Means++算法将学生成绩分为5 类,每一类可以看作一个成绩集群,该成绩集群的学生有着相似的各科考试成绩特点。第一类学生人数较多,占比约为46%,该类学生大部分科成绩比较均衡,少量科目偏低,处于中游水平,需要对此类学生进行全方位的加强教育;第二类学生占比约为12%,“程序设计与实践”科目成绩偏低,其他科目成绩一般,此类学生需要着重学习“程序设计课程”科目,其他成绩也需要一定的学习;第三类占比约为17%,“操作系统实践”科目成绩较好,其他科目成绩一般,需要加强其他科目的学习;第四类占比约为13%,所有科目成绩均偏低,此类学生需要在鼓励学习的基础上,给予一些照顾,让其利用好业余闲暇时间补习功课;第五类占比约为12%,整体成绩均处于中游偏上水平,该类学生可以进行一些课外拓展实践,能更好地利用学习到的知识,提升课外实践动手能力。
数据挖掘作为强有力的数据分析技术,在多个领域已经进行了广泛且的应用,取得了令人满意的效果。在教学教育与信息技术正在快速结合的趋势下,数据挖掘技术拥有广阔的应用前景,教育数据也将得到更加充分的应用。本文设计了一个基于数据挖掘的成绩分析模型,能够较好地根据学生的各科成绩特点,对学生成绩进行聚类分析,学校可以使用聚类结果,有针对性地对每类学生使用不同的教学策略,提高学校的教学成效。