聚类分析在学生成绩管理系统中的应用罗文彪吴旭冉夏强纪稳.doc
《聚类分析在学生成绩管理系统中的应用罗文彪吴旭冉夏强纪稳.doc》由会员分享,可在线阅读,更多相关《聚类分析在学生成绩管理系统中的应用罗文彪吴旭冉夏强纪稳.doc(18页珍藏版)》请在冰点文库上搜索。
《数据挖掘技术》课程大作业
题目聚类分析在学生成绩管理系统中的应用
组长罗文彪
成员夏强、纪稳、吴旭冉
完成时间 二零一三年四月
综合评定成绩:
目录
1. 研究目标 2
2. 分析方法与过程 3
2.1.总体流程 3
2.2.具体步骤 4
2.3.结果分析 13
3. 结论 15
4. 参考文献 16
1.研究目标
在高校学生成绩管理中,影响学生学习成绩的因素很多,因此要进行综合分析。
传统分析无非是得到均值、方差等一些简单的分析结果,往往还是基于教学本身。
其实,还有一些教学中不易察觉的因素和教学以外的因素影响学生学习成绩,这些都需要进一步分析,从而得出结论,为教学管理人员及学生做出相应的决策。
而这些信息是无法从传统的学生成绩分析方法中获得,但可以通过从20世纪90年代中期兴起的数据挖掘技术中获得,从而找到影响学生学习成绩的真实原因,制定相应措施,提高教学效果。
目前在学校的本科教学数据库中存放着历届学生的各科考试成绩,海量的数据只是单纯的记载了数据信息,却很难直观的从这些数据中发现其背后所隐藏的信息。
然而事实上,无论是课程与课程之间,还是每门课程中的知识点之间,以及学生的成绩与课程的设置之间都存在着千丝万缕的联系。
现阶段已有的数据并没有发挥其真正的价值,为了解决这一问题,可以利用数据挖掘中的一些相关技术对这些数据进行合理的利用和深层的分析,从而更好的指导教师在教学中的工作。
本文利用所学的数据挖掘技术,针对学生在已学的各主要学科的成绩构成(参考我校信管10级两个班级的成绩构成),同时,本文主要研究了数据挖掘当中的聚类技术在学生成绩分析中的应用,以WEKA为工具,采用K-means聚类方法对信息管理与信息系统专业学生的成绩进行分析处理,并对所得数据进行选择,预处理,数据挖掘以及对模式进行评估。
运用聚类技术分析学生对哪个课程的强弱选择,从而为具有不同成绩特征的同学在课程选择以及以后如何开展学习提供一定的参考意见,同时对我校教学及管理工作也将具有重大的指导作用和现实意义。
把这个理论研究思想推广开来,将数据挖掘技术应用在高校教学的各个方面,应该会得到大量的有现实意义的结果,从而制定相应的措施,提高教育教学质量。
2.分析方法与过程
2.1总体流程
本例主要包括以下步骤:
步骤一:
原始数据的准备,从原始数据中选择部分数据作为挖掘数据;
步骤二:
对这部分数据进行整理,和处理,并转换数据存储格式,方便进一步的数据处理;
步骤三:
运用数据挖掘工具wake,对处理好的数据进行挖掘。
2.2具体步骤
步骤一:
数据准备
本文在数据挖掘过程当中所使用的工具是WEKA,而WEKA所支持的数据格式有两种:
ARFF文件和CSV文件。
我们分析的原始数据是EXCEL文件,必需将此原始EXCEL数据文件转换为ARFF或CSV文件。
转换方法为:
在EXCEL中打开“学生成绩.xls”,选择菜单—>另存为,在弹出的对话框中,文件名输入“xueshengchengji”,保存类型选择“CSV(逗号分隔)”,保存,便可得到“xueshengchengji.csv”文件。
其结果如图,所示:
打开WEKA软件的Exporler,点击Openfile按钮,打开刚得到的“xueshengchengji.csv”文件,点击“Save”按钮,在弹出的对话框中,文件名输入“xueshnegchengji”,文件类型选择“Arffdatefiles(*.arff)”,这样就得到的数据文件为“xueshengchengji.arff”。
步骤二:
数据预处理
(1)聚类数据的预处理
现实世界中的数据库存在大量的噪声数据、空缺数据和不一致数据。
基因表达数据也存在这种情况。
有很多数据预处理技术可以去掉数据中的噪声,纠正不一致。
为了提高涉及距离度量的聚类算法的精度和有效性,可以采用数据规范化的一些方法。
(2)数据清理
在实际数据库中往往存在着一些空缺值和噪音数据。
对于空缺值,可以采用以下方法填写空缺值。
1)人工填写空缺值。
这种方法对操作人员要求较高。
并且,该方法很费时,当数据集很大时,该方法可能行不通。
2)使用该空缺值所在属性的平均值来填充。
比如当进行样本聚类时,如果某个样本在某个指标值上的值空缺,可使用其它样本在该指标上的平均值来填充该空缺值。
对于噪声数据,我们可以采用一些数据平滑技术来平滑数据。
3)数据规范化。
如果数据库中的各属性的量纲和单位不同,在计算机对象间的距离之前,必须把不同的度量单位统一成相同的度量单位。
由于属于不同概念范畴的属性具有不同的含义,把所有的属性转化成某个特定的度量单位是不可能的。
常用的方法是把属性的值域映射为一个相同的区间(通常是[0,1]区间),这个过程成为属性的标准化或规范化。
K-means算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。
WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。
因此,对于ARFF格式的原始数据“xueshengchengji.arff”,我们所做的预处理只是删除去属性“xuhao”。
修改过程可以在写字板中更改,由于本文分析的数据是高校学生成绩,其属性都是数值型,所以只删除“xuhao”即可,其它不需要修改。
其结果如图所示:
这样最终得到的数据文件为“xueshengchengji.arff”,含有90条实例。
步骤三:
算法应用
打开WEKA软件中的Exporler,点击刚才得到的“xueshengchengji.arff”,出现下面的窗口,如图所示:
17
点击右下角的“VisualizeAll”可以看到所有学生实例各科成绩的直方分布图,如下图所示:
切换到“Cluster”,点“Choose”按钮选择“SimpleKMeans”,这是WEKA中实现K均值的算法。
点击旁边的文本框,修改“numClusters”为3,说明希望把这90条实例分成三个方向,即K=3。
下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。
默认值为10。
如下图所示:
选中“ClusterMode”的“UseTrainingset”,点击“Start”按钮,观察右边“ClusterOutput”给出的聚类结果如下:
===Runinformation===
Scheme:
weka.clusterers.SimpleKMeans-N3-A"weka.core.EuclideanDistance-Rfirst-last"-I500-S10
Relation:
xueshnegchengji-weka.filters.unsupervised.attribute.Remove-R1
Instances:
90
Attributes:
26
shengchanyunzuo
caozuoxitong
tongjixue
yingxiao
maozedong£¨1£©
maozedong£¨2£©
shujuku
shujujiegou
jingjifa
jingjixue
weiji
yunchou
yingyu
(1)
yingyu
(2)
yingyu(3)
yingyu(4£©
wuli
(1)
wuli
(2)
gailv
xinxikexue
xiandai
makesi
guanli
jisuanji
gaoshu
(1)
gaoshu
(2)
Testmode:
evaluateontrainingdata
===Modelandevaluationontrainingset===
kMeans
======
Numberofiterations:
6
Withinclustersumofsquarederrors:
69.72650873573264
Missingvaluesgloballyreplacedwithmean/mode
Clustercentroids:
Cluster#
AttributeFullData012
(90)(30)(32)(28)
=============================================================
shengchanyunzuo72.911167.533371.406380.3929
caozuoxitong70.466.466771.343873.5357
tongjixue70.677865.766770.531376.1071
yingxiao76.355669.633376.937582.8929
maozedong£¨1£©76.311167.733378.2583.2857
maozedong£¨2£©74.244470.433374.687577.8214
shujuku71.544464.033371.12580.0714
shujujiegou71.164.733370.87578.1786
jingjifa74.388967.376.437579.6429
jingjixue77.355671.366778.343882.6429
weiji7768.333376.968886.3214
yunchou82.544472.983.937591.2857
yingyu
(1)72.055665.733371.906379
yingyu
(2)69.655664.233368.7576.5
yingyu(3)72.722266.833373.2578.4286
yingyu(4£©73.622267.066774.062580.1429
wuli
(1)70.177864.266767.093880.0357
wuli
(2)74.911167.973.656383.8571
gailv78.96781.312588.8929
xinxikexue75.766771.533374.468881.7857
xiandai75.255664.333375.093887.1429
makesi71.933368.572.187575.3214
guanli74.011169.673.781379
jisuanji82.388975.433383.687588.3571
gaoshu
(1)68.922263.966768.218875.0357
gaoshu
(2)65.577859.766763.437574.25
ClusteredInstances
030(33%)
132(36%)
228(31%)
也可以在左下角“Resultlist”中这次产生的结果上点右键,“Viewinseparatewindow”在新窗口中浏览结果。
2.3结果分析
1.聚类结果
下面对聚类结果进行解释。
观察上述聚类结果,注意到结果中有这么一行:
Withinclustersumofsquarederrors:
69.72650873573264。
这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。
然而在每次的实验分析中,也许你得到的数值会不一样;实际上如果把“seed”参数改一下,得到的这个数值就可能会不一样。
在进行数据分析时,应当多尝试几个seed,并采纳这个数值最小的结果。
在“Clustercentroids:
”之后列出了各个簇中心的位置。
对于数值型的属性,簇中心就是它的均值(Mean);分类型的属性,其簇中心就是它的众数(Mode),也就是说这个属性上的取值为众数值的实例最多。
对于数值型属性,显示的结果中还给出了它在各个簇里的标准差(StdDevs),标准差能反映一个数据集的离散程度。
平均数相同的,标准差未必相同。
标准差越高,表示实验数据越离散,也就是说越不精确;反之,标准差越低,代表实验的数据越精确。
最后得到的“ClusteredInstances”是各个簇中实例的数目及所占总实例的百分比。
为了得到可视化的聚类结果,我们在左下方“Resultlist”列出的结果上右击,点“Visualizeclusterassignments”。
弹出的窗口给出了各实例的散点图。
结果如下图所示:
另外,在散点图上单击某个簇,则会弹出如下的窗口,如图所示:
这个窗口里面的内容反映的是某个具体的实例在那个簇中,并且显示出该实例的具体信息。
如上图结果:
“Instance:
45”表示这是第45个实例,下面显示该学生实例的属性(各科成绩),还有该实例所属的簇是具体的那个簇(这个实例是该簇当中随机的一个实例)。
2、结果分析
根据上述散点图所得每个簇里的相应实例结果,分析发现:
在Cluster0簇里有30个实例,占总实例的33%,maozedong
(2)、jingjixue、xinxikexue和jisuanji四门课程成绩相对比较高,都在70分以上,其中计算机最高,达到了75.4333分;在Cluster1簇里有32个实例,占总实例的36%,根据该簇里面各实例的成绩可以看出,yunchou学、gailv论和jisuanji三门课程成绩相对较好,其中运筹学最高,达到了83.9375分;在Cluster2簇里有28个实例,占总实例的31%,根据这个簇里面各实例的成绩可以看出,yunchou学、gailv论和jisuanji三门门课程成绩相对比较高,其中运筹学最高,到了91.2857分。
综合上述我们可以看出:
学生对运筹学和计算机这两门学科学的最好,都取得了不错的成绩。
3.结论
本论文通过对数据挖掘中聚类算法的分析与应用,实现了高校学生成绩的有效分析处理。
聚类分析就是将一组数据分组,使其具有最大的组内相似性和最小的组间相似性。
简单的说就是达到不同聚类中的数据尽可能不同,而同一聚类中的数据尽可能相似。
利用聚类分析的这个原理,对我校信息管理与信息系统专业学生各主要学科的成绩构成,对数据进行选择,预处理,数据挖掘以及对模式进行评估。
最后将90个实例聚成3个簇(即分三个方向),从而为具有不同成绩特征的同学在以后如何开展学习提供一定的参考意见。
此外,对我校教学及管理工作也将具有重大的指导作用和现实意义。
在聚类技术在学生成绩分析中的应用论文中,主要完成对在校学生分专业前的成绩进行分析处理,利用WEKA软件有效地对成绩进行深层次挖掘,得出比较合理的结果,让学生在以后学习时能够得以参考。
由于时间比较紧,当中还有些因素没有分析到,在以后的工作学习中我会去进一步的完善。
不断的努力、不断的去探索更多的知识。
但在这次作业的过程中,我深深的体会到理论和实际操作衔接的重要性。
以前自己只注重课本知识,没能积极的训练自己的实际操作能力,又加上以前所掌握的知识欠缺,必然在这次毕设的过程中带来很大的困难。
但是我没有气馁,虚心向别人学习,到图书馆查阅资料等,逐渐熟悉理解了。
其实,通过这次作业不仅学会了使用几门软件,我觉得这样的过程还是相当重要的,使我对这三年所学知识能够融会贯通,又不断丰富了新知识同时也培养了解决困难的信心和能力,对我以后参加工作奠定了坚实的基础。
4.参考文献
[1]朱玉全.数据挖掘技术[M].南京:
东南大学出版社,2006
[2]张兢,张小刚.数据挖掘算法及其工程应用[M].北京:
机械工业出版社,2006
[3]朱明.数据挖掘[M].合肥:
中国科学技术大学出版社,2012
[4]ZhaoHuiTang,数据挖掘原理与应用.北京:
清华大学出版社,2010
[5]K.P.Soman,数据挖掘基础教程.北京:
机械工业出版社,2012