聚类算法分析及其在学生成绩分中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科学生毕业论文(设计)
题目聚类算法分析及其在学生成绩分析中的应用
学院数学计算机科学学院
专业计算机科学与技术
学生姓名陶彬贤
学号*******
指导教师伍长荣职称副教授
论文字数6564
完成日期2011 年 4 月15 日
论文题目聚类算法分析及其在学生成绩分析中的应用
学生姓名、学院:陶彬贤数学计算机科学学院
中文摘要(300字左右)
数据挖掘就是从大量的、不完全的、模糊的、随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在有用的信息和知识的过程。

数据挖掘的方法有很多,聚类分析是目前最有应用前景的数据分析方法之一,因为聚类分析能作为一个独立的工具来获得数据分布的情况,观察每一个簇的特点,并能集中的对特定的某些簇作进一步的分析。

对学生原始成绩进行等级评定是教学管理中的重要环节,利用聚类算法可以对学生成绩进行有效的等级划分。

K_means算法是划分式聚类算法的一种,文中运用K_means算法对学生成绩进行了聚类并对结果加以分析。

关键词(3~5个):聚类算法;K_means;学生成绩分析
英文题目Clustering algorithms and Application of Clustering algorithms in students' performance analysis
学生姓名、学院(英文):Taobinxian,school of mathematics&computer science 英文摘要
Data mining extract those implicit but potentially useful information from a lot of incomplete, fuzzy and random data.There are many ways of data mining .Clustering analysis is one of the most application prospect of data analysis method,because the cluster analysis can be used as an independent tool to get data distribution,observe every cluster characteristic, and can focus on certain cluster for further analysis.Ranking of the student original scores is an important link of teaching ing clustering algorithm can repartition the student achievement effectively.k_means algorithm is a partition type of clustering algorithm.In this paper K_means algorithm is used to cluster the student achievement and the result has been analysed.
英文关键词Clustering algorithms;k_means;students' performance analysis
目录
第一章引言 (3)
第二章聚类分析技术与K_means算法 (3)
2.1 聚类的定义 (3)
2.2 聚类算法的分类 (4)
第三章聚类技术在学生成绩分析中的应用 (6)
3.1 学生成绩传统划分 (6)
3.2 k_means算法描述[10] (6)
3.3 k-means聚类算法实现流程图 (7)
3.4 K_means算法对学生成绩分析 (7)
3.5 程序实现 (9)
3.6 传统方法与K_means算法的比较 (11)
结论 (12)
参考文献: (12)
致谢 (13)
聚类算法分析及其在学生成绩分析中的应用
陶彬贤,数计学院
摘要:数据挖掘就是从大量的、不完全的、模糊的、随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在有用的信息和知识的过程。

数据挖掘的方法有很多,聚类分析是目前最有应用前景的数据分析方法之一,因为聚类分析能作为一个独立的工具来获得数据分布的情况,观察每一个簇的特点,并能集中的对特定的某些簇作进一步的分析。

对学生原始成绩进行等级评定是教学管理中的重要环节,利用聚类算法可以对学生成绩进行有效的等级划分。

K_means 算法是划分式聚类算法的一种,文中运用K_means算法对学生成绩进行了聚类并对结果加以分析。

关键词: 聚类算法;K_means;学生成绩分析
Clustering algorithms and Application of Clustering algorithms in students' performance analysis
Taobinxian,school of mathematics&computer science
Abstract:Data mining can extract those implicit but potentially useful information
from a lot of incomplete, fuzzy and random data.There are many ways of data mining .Clustering analysis is one of the most application prospect of data analysis method,because the cluster analysis can be used as an independent tool to get data distribution,observe every cluster characteristic, and can focus on certain cluster for further analysis.Ranking of the student original scores is an important link of teaching ing clustering algorithm can repartition the student achievement effectively.k_means algorithm is a partition type of clustering algorithm.In this paper K_means algorithm is used to cluster the student achievement and the result has been analysed.
Key words:Clustering algorithms;k_means;students' performance analysis
第一章引言
传统的数据分析方法是统计分析法,该方法只是对事实的验证,描述已经发生的事实,难以发现数据中存在的关系和规律,也难以根据现有的数据预测未来的发展趋势。

由于它缺乏挖掘数据背后知识的手段,因而导致了“数据爆炸但知识贫乏”的现象[1]。

面对这一挑战,数据挖掘(Data Mining,DM)[2]和知识发现(Knowledge Discovery in Database,KDD)技术应运而生,并逐渐显示出了强大的生命力。

在高校中,考试成绩是评估教学质量的重要依据[3],也是评估学生是否掌握好所学知识的重要方式。

试卷分析是考试过程的一个重要环节。

聚类是深层次的数据信息分析方法。

将聚类[4]技术应用于试卷成绩分析无疑是非常有益的,它可以全面地分析考试结果与各种因素之间隐藏的内在联系[5]。

第二章聚类分析技术与K_means算法
2.1 聚类的定义
目前被广泛采纳的关于聚类所下的定义为[6]: 一个类簇内的实体是相似的,不同类簇的实体是不相似的;一个类簇是测试空间中点的会聚,同类簇的任意两个点间的距离小于不同类簇任意两点间的距离,类簇可以描述为1个包含密度相对较高点集的多维空间中的连通区域,它们借助包含密度相对较低点集的区域与其他区域(类簇)相分离。

并且,聚类确定了数据集中所有数据的归属[7]。

2.2 聚类算法的分类
聚类算法大致分成层次化聚类算法、划分式聚类算法、基于密度和网格以及模型的聚类算法和其他聚类算法。

层次化聚类算法:这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。

具体又可分为“自底向上”和“自顶向下”两种方案。

例如在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。

代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
划分式聚类算法:给定一个有N个元组或者纪录的数据集,分裂法将构造K 个分组,每一个分组就代表一个聚类,K<N。

而且这K个分组满足下列条件:(1)每一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。

使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;
基于密度的聚类算法:基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。

这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。

这个方法的指导思想就是,只要一个区域中的点的密度大过某个阀值,就把它加到与之相近的聚类中去。

代表算法有:DBSCAN 算法、OPTICS算法、DENCLUE算法等;
基于网格的聚类算法:这种方法首先将数据空间划分成为有限个单元(cell)
的网格结构,所有的处理都是以单个的单元为对象的。

这么处理的一个突出的优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。

代表算法有:STING算法、CLIQUE算法、WA VE-CLUSTER算法;
基于模型的聚类算法:基于模型的方法给每一个聚类假定一个模型,然后去寻找能个很好的满足这个模型的数据集。

这样一个模型可能是数据点在空间中的密度分布函数或者其它。

它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。

通常有两种尝试方向:统计的方案和神经网络的方案。

其中,K_means算法[8]是一种基于划分的经典算法,由MacQueen于1967年首次提出。

该算法的核心思想是:给定一个数据集合和需要聚类的数目K(K 通常由用户制定),K_means算法根据某个距离函数迭代运算,将所有数据分入到K个聚类中。

K_means算法将给定的数据划分为K个聚类,每个聚类有一个聚类中心。

通常用一个聚类中心来表示一个类,它既是这个聚类中所有数据的均值。

算法开始随机选取K个数据点作为初始聚类中心,然后计算每个数据点与各个种子聚类中心间的距离,将数据点分配给距离最近的聚类中心。

聚类中心以及分配给它的数据点就代表一个聚类。

一旦全部数据点都被分配了,每个聚类的聚类中心就会根据聚类中现有的数据被重新计算。

这个过程会反复迭代,直至满足某个终止条件为止。

K_means算法能对大型数据集进行高效分类,且适合于对数值型数据进行聚类,其计算复杂性为O(tKmn),其中,t为迭代次数,K为聚类数,m为特征属性数,n为待分类对象数,通常,K,m,t<<n[9]。

第三章聚类技术在学生成绩分析中的应用
3.1 学生成绩传统划分
学生成绩是学生信息数据库中最重要的组成部分,是评估教学质量的重要依据,也是评价学生是否掌握好所学知识的重要标志。

现在比较广泛采用的评定方法是等级制。

等级制学生成绩评定方法适合纵向衡量学生对于所学知识的掌握程度。

而对于需要横向比较学生间成绩差异,以及衡量某个学生对于总体成绩的偏差时,等级制成绩蕴含的信息量明显不足。

如何科学地根据学生的原始成绩给出学生的等级制成绩,成为进行以后对成绩进行各种分析的基础,本文中主要使用了K_means聚类分析算法来解决这个问题。

3.2 k_means算法描述[10]
Algorithm k-means(k, D)
Choose k data points as the initial centriods
mj , j=1, …,k;
Repeat
Initialize sj : =0, j=1,…, k;
Initialize nj : =0, j=1, …,k;
For each data point x ∈D do
j←argmin ∈…dist(x, m )
i (1, 2, 3, , k) i
assigne x to the cluster j;
s : = s +x;
j j
n : = n +x;
j j
endfor
m ←s / n , j=1, …, k;
j j j
until the stopping criterion is met
3.3 k-means聚类算法实现流程图
3.4 K_means算法对学生成绩分析
表1所示的是07计本非师范120名学生计算机程序设计课程成绩表(取部
分成绩)。

按照传统划分方法考试成绩大于等于90分的为优秀;大于等于80分且小于90分的为良好;大于等于70分且小于80分的中等;大于等于60分且小于70分的及格;小于60分的不及格,可将120名学生成绩划分为五个等级,具体划分结果如表2所示。

按照K_means聚类算法,若初试聚类中心为52、65、73、79、89,则划分的结果,如表三所示。

通过对表2与表3的比较可以看出,用传统的划分方法取得成绩优秀的只有一人,而按K_means聚类算法得到的优秀人数为四人,这样的划分对于89、87分的同学来说是比较合理的。

3.5 程序实现
k-means程序:
%k-means聚类算法程序
clear;clc;
PM=load('E:\data1.txt'); %将需进行k 均值聚类的数据调入MATLAB 程序中
PM=sta(PM); %对数据进行标准化处理
[dim1,dim]=size(PM); % 计算数据的行数和列数
k =3; % 聚类的数目k
N = dim1;
CC = zeros(k,dim); % 聚类中心矩阵,CC(i,:) 初始值为i 号样本向量
D = zeros(N,k); % D(i,j)是样本i 和聚类中心j 的距离
C = cell(1,k);
% 聚类矩阵,对应聚类包含的样本。

初始状况下,聚类i(i<k) 的样本集合为[i] , 聚类k 的样本为[]N
,+
k...,,1
k
for i = 1:k-1
C{i} = [i]; % 将前k-1 组数据分别放入对
应的k-1 类中end
C{k} = k : N; % 将剩下的N-k+1 组数据放入第k

B = 1:N; % B中存放各组数据所在的类
B(k:N) = k;
for i = 1:k
CC(i,:)=PM(i,:); % 初始化聚类中心
end
while 1
change = 0;
for i = 1:N % 对每一个样本i,计算到k 个聚
类中心的距离
for j = 1:k
D(i,j) = sqrt(sum((PM(i,:) - CC(j,:)).^2));
end
t = find( D(i,:) == min(D(i,:)) ); % i属于第t 类
if B(i) ~= t % 上次迭代第i 组数据不属于t
类change = 1;
% 将i 从B(i) 类中去掉
t1 = C{B(i)};
t2 = find( t1==i );
t1(t2) = t1(1);
t1 = t1(2:length(t1));
C{B(i)} = t1;
C{t} = [C{t},i]; % 将第i 组数据加入到第t 类
B(i) = t;
end
end
if change == 0 % 聚类中心不再发生变化,输出
分类结果for i = 1:k
disp(C{i}'); % 输出每个类中包含的数据
end;
B' % 输出所有数据属于的类号
break;
end
%重新计算聚类中心矩阵CC
for i = 1:k
CC(i,:) = 0;
iclu = C{i};
for j = 1:length(iclu)
CC(i,:) = PM( iclu(j),: )+CC(i,:);
end
CC(i,:) = CC(i,:)/length(iclu);
end
end
3.6 传统方法与K_means算法的比较
对学生原始成绩进行等级评定时,采用传统划分方法即基于绝对分数的评价,虽然简便易行、标准统一,但存在缺陷与不足。

例如,当大部分同学的成绩低于80分的时候,在80分以后的成绩就应该作为优秀来对待。

此外,如果同样上一门课的几位任课老师中有一个老师的评分标准比较严格,或者某次考试题目偏难,那么学生的总体成绩就会偏低,如果再按照传统划分方法来评价学生的学校成绩将无法合理、有效的评价教师的教学成果。

传统划分方法在对象实际原始属性差别不大的情况下,经过等级划分,其等级评定结果就可能相差比较大,而且不能反映某一属性值在全部数据域内的动态分布情况,当其处理具有多位属性的样本数据时,由于属性数据的格式不同,经过线性转换后可能扩大或缩小原来数据在其取值域内的差别,最终影响最后的等级评定。

结论
文中仅采用K-means算法对学生成绩进行了简单聚类。

在实际应用中, 还可以应用因子分析法分析各科成绩之间是否具有相关性, 进一步合并因子,也可以根据教师丰富的教学经验, 指定各聚类中心, 形成聚类结果。

与传统成绩等级评定的刚性划分方法相比, 聚类分析通过比较各实例之间的差异性, 将具有相似特点的实例聚集成簇, 提供了一种新的分析方法和视角.教师或学生可以根据聚类分析结果,针对性地制定教学/学习策略, 提高教学/学习效果。

参考文献:
[1] U M Fayyad ,G Piatesky-Shapiro ,P Smyth.From data mining to knowledge discovery:An overview qdvances in knowledge discovery and data mining[R].Califonia:AAAI/MIT Press,1996
[2] Jain A K,Murty M N,Flynn P J.Data clustering:A survey[J].ACM Comput.Surv.,1999(31):264—323.
[3] Jin Hanjun,Wang Xiaorong,Wang Yanlin,et al.Study and application of genetic algorithm in computer test construction[C]//Proceedings of ISCIT,2005[C].Beijing:Beijing University of Posts and Telecommunications Press,2005.
[4] Han Jiawei,Micheline Kamber.数据挖掘概念与技术[M].2版.北京:机械工业出版社,2007.
[5] 马希荣,孙华志。

数据挖掘技术在教学评价中的应用[J].计算机工程与应用,2003(19):51—54.
[6] Jain A K,Dubes R C.Algorithms for clustering data[M].Cambridge:Prentice Hall College Div,1988.
[7] 朱扬勇,熊赟.数据学[M].上海:复旦大学出版社,2009.
[8] Liu Bing.Web 数据挖掘[M].俞勇,译.北京:清华大学出版社,2009.
[9] 薛薇.基于SPSS的数据分析[M].北京:中国人民大学出版社,2006.
[10] 孙吉贵,刘杰,赵连宇.聚类算法研究[J].软件学报,2008.
致谢
在毕业论文即将完成的时刻,回首在师大的四年大学生活,我的心情久久不能平静,对各位恩师的感激之情绝非“谢谢”二字所能表达,但是此是此刻,我仍忍不住想向各位老师说一句:谢谢各位老师,您们辛苦了!
这篇论文的完成倾注了指导教师伍老师的心血,从开题报告书和论文提纲到初稿再到定稿,从构思到语言,都是在伍老师的精心指导和谆谆教诲下完成的。

伍老师的渊博的学识,严谨的教学态度和高尚的人格,让我明白了许多为学和做人的道理。

这些都将成为我以后生活和学习中最宝贵的财富。

在此,我想表达对伍老师最衷心的感谢和最诚挚的祝福。

同时,还要感谢我的各位老师和同学,各位老师给我提出的意见和提供的方便与支持正是由于你们对我的教导和帮助,才会有我的今天,在此向各位老师和同学一并表达我诚挚的祝福。

相关文档
最新文档