搜索
您的当前位置:首页正文

聚类技术在学生成绩分析中的应用

来源:知库网
陕西理工学院毕业设计

聚类技术在学生成绩分析中的应用

【摘要】数据挖掘技术是信息技术研究的热点问题之一。目前数据挖掘技术在商业、金融业等方面都得到了

广泛的应用,而在教育领域的应用较少,随着高校招生规模的扩大,在校学生成绩分布越来越复杂,除了传统成绩分析得到的一些结论外,还有一些不易发现的信息隐含其中,因而把数据挖掘技术引入到学生成绩分析中,有利于针对性地提高教学质量。聚类分析是数据挖掘中的一个重要研究领域。它将数据对象分成为若干个簇,使得在同一个簇中的对象比较相似,而不同簇中的对象差别很大。本论文就是运用数据挖掘中的聚类分析学生成绩的,利用学生在分专业前的各主要学科的成绩构成,对数据进行选择,预处理,挖掘分析等。运用聚类算法分析学生对哪个专业的强弱选择,从而为具有不同成绩特征的同学在专业选择及分专业后如何开展学习提供一定的参考意见。

【关键词】 数据挖掘;聚类技术;学生成绩;K-means

陕西理工学院毕业设计

The Application of Cluster Technology in Analysis for

Students’ Achievement

Abstract: The technology of data mining is one of the hot issues in the information technology field. Nowadays data

mining technology is widely used in business and finance. But it is less used in education field. With the increase of enrollment in universities, there are more and more students in campus, and that makes it more and more complex in the distribution of students\" records. Besides some conclusions from traditional record analysis, a lot of potential information cannot be founded. Importing the data mining technology to students\" record analyzing makes it more convenient and improve the teaching quality. Clustering analysis is an important research field in data mining. It classify data object to many groups so that the object is similar in the same clusters, different in the different clusters. In this paper, clustering technique in data mining is used to students' performance analysis, the use of data structure of main subject before the students specialized in choice of mode, pretreatment and data mining. Using clustering technology to analyse which professional students are good at, so as to choose how to learn professional and give some reference opinions after students of different grades choose their majors.

.

Key words: Data Mining; ClusterinTechnology; Students' Achievement; k-means

目 录

陕西理工学院毕业设计

引言 .............................................................................. 1 1 概述 ........................................................................... 2

1.1 课题背景 .................................................................. 2 1.2 发展现状 .................................................................. 2 1.3 课题意义 .................................................................. 3 1.4 本文研究内容 ............................................................. 3

2 数据挖掘理论概述 .......................................................... 4

2.1 数据挖掘概述 ............................................................ 4 2.1.1 数据挖掘的定义 ..................................................... 4 2.1.2 数据挖掘的过程 ..................................................... 4 2.2 聚类分析 .................................................................. 5 2.2.1 聚类分析概述 ........................................................ 5 2.2.2 聚类分析原理方法 .................................................. 5 2.2.3 聚类分析工具 ........................................................ 6

3 算法介绍 ..................................................................... 7

3.1 K-means算法 ................................................................ 7 3.1.1K-means算法描述 ....................................................... 7 3.1.2 k-means算法的特点 .................................................... 8

4 聚类分析的应用 ............................................................. 9

4.1 算法实现 .................................................................. 9 4.1.1 数据准备 ............................................................. 9 4.1.2 数据预处理 ......................................................... 10 4.1.3 算法应用 ............................................................ 11 4.2 结果分析 ................................................................. 13 4.2.1 聚类结果 ............................................................ 13 4.2.2 结果分析 ............................................................ 19 4.3 结论 ...................................................................... 19

总 结 ........................................................................... 20 致 谢 ........................................................................... 21 参考文献 ....................................................................... 22 科技外文文献 ................................................................. 23 中文译文 ....................................................................... 26

陕西理工学院毕业设计

引言

在高校学生成绩管理中,影响学生学习成绩的因素很多,因此要进行综合分析。传统分析无非是得到均值、方差等一些简单的分析结果,往往还是基于教学本身。其实,还有一些教学中不易察觉的因素和教学以外的因素影响学生学习成绩,这些都需要进一步分析,从而得出结论,为教学管理人员及学生做出相应的决策。而这些信息是无法从传统的学生成绩分析方法中获得,但可以通过从20世纪90年代中期兴起的数据挖掘技术中获得,从而找到影响学生学习成绩的真实原因,制定相应措施,提高教学效果。

数据挖掘是一种决策支持过程,是深层次的数据信息分析方法,将数据挖掘技术应用于教学非常有益,它可以全面地分析学生成绩与各种因素之间隐藏的内在联系。比如,经过对学生成绩相关数据库系统的分析,数据挖掘工具可以问答诸如“哪些因素对学生的学习成绩可能有影响”等类似的问题,这是传统方法无法达到的。通过数据挖掘分析,其结果可能给教学带来一定的收获。

总之,随着数据量的急剧增长和对数据提取的更高要求,现在我们很难再依照传统方法在海量数据中寻找决策的依据,这就必须借助数据挖掘法发现数据中隐藏的规律或模式,为决策提供更有效的支持。虽然数据挖掘作为一种工具,它永远也不能替代教师的地位,但是它可以为教师的决策提供科学的依据。数据挖掘技术本身就是人们大量实践的结晶,它为建立传统教学中很难获取或不可能获取的模型提供了捷径。从高校当前实际出发,将数据挖掘技术引入到学生考试成绩分析中,建立一个通用的考试成绩科学化管理的总体框架是非常有益的。实践表明,数据挖掘能够为教学改革提供有效的理论与实践决策依据,在分析影响高校学生学习成绩因素中具有较好的作用。把这个思想推广开来,将数据挖掘技术应用在高校教学的各个方面,会得到大量的有现实意义的结果,从而制定相应的措施,来达到最终目的以提高教育教学质量。

第 1 页 共 27 页

陕西理工学院毕业设计

1 概述

1.1 课题背景

随着我国经济的发展,网络已被应用到各个行业,人们对网络带来的高效率越来越重视,然而大量数据信息给人们带来方便的同时,也随之带来了许多新问题,大量数据资源的背后隐藏着许多重要的信息,人们希望能对其进行更深入的分析,以便更好地利用这些数据,从中找出潜在的规律。那么,如何从大量的数据中提取并发现有用信息以提供决策的依据,已成为一个新的研究课题。

高校是教学和科研的重要基地,也是培养人才的重要场所,教学管理工作当中的学生成绩分析是高校管理工作的一个重要组成部分,也是衡量高校管理水平的依据。从目前来看。各高校随着招生规模的扩大,信息量大幅度增加,学校运行着各类管理系统,存在着各类数据库,如有成绩管理,学籍管理等。这些系统积累了大量的数据,在很大程度上提高了工作的效率,但在这样的教学管理系统中,学校的管理人员、教师和学生都只能通过查看,或者简单的排序以及统计功能来获得数据表面的信息,由于缺乏信息意识和相应的技术,隐藏在这些大量数据中的信息一直没有得到充分应用。如何对这些数据进行重新分析利用,在原基础上扩充高校教学管理系统的功能,从大量数据中发现潜在规律,提高学校管理的决策性,是很多高校正在考虑的问题。因此,对学生成绩数据进行深入挖掘分析,找出影响学生学习的各种潜在的因素,将会促进学校开展更加具有针对性的个性化教育,同时营造一种新的教学管理模式,进一步促进教学管理水平的提高。 1.2 发展现状

目前将数据挖掘技术与学校学生成绩分析管理系统相结合,通过分析和处理系统中大量的学生成绩数据,从中挖掘潜在的规律及模式,促使学校更好地开展教学工作,提高教学质量,帮助教学管理者制定教学计划,使学生成绩管理系统的功能能够更加完善。

数据挖掘技术的研究在国外已经有很多年的历史,并且已经取得了丰硕的成果。世界上研究数据挖掘的组织、机构和大学也有很多,在国外高校的教学管理中,数据挖掘己成为提高教学管理质量和教学水平的有力工具,尤其是聚类分析技术的应用。而国内对数据挖掘与知识发现的研究与国外相比较晚,也没有形成相对整体的力量,对数据挖掘的研究讨论太多集中在对数据挖掘相关算法的介绍和改进上,数据挖掘在各领域的运用与实践并不普遍。到近几年,数据挖掘作为新型的数据库技术,已经被成功地应用在许多企业公司中,在提高企业管理效率和经济效益等多个方面都有明显的效果。但相对而言,数据挖掘技术在教育领域的应用仍比较少,将数据挖掘技术引入高校教学管理中,对现存的数据进行多角度的分析,为学生、教师和管理者提供更多的服务,并找出对教学管理,学生学习有价值用的信息,这些信息对辅助管理者决策,提高学生竞争力,无疑将具有较强的实用价值。

目前,在高校学生成绩管理中,影响学生学习成绩的因素很多,因此要进行综合分析。传统分析无非是得到均值、方差等一些简单的分析结果,往往还是基于教学本身。其实,还有一些教学中不易察觉的因素和教学以外的因素影响学生学习成绩,这些都需要进一步分析,从而得出结论,为教学管理人员及学生做出相应的决策。

第 2 页 共 27 页

陕西理工学院毕业设计

1.3 课题意义

近几年,随着高校学生人数大幅度增加,以及教学管理模式的转变(如学分制)等都给学校的教务管理工作带来了诸多向题,使得教务管理越来越复杂。同时也对学校教学管理工作的科学性、规范性、服务性提出了更高的要求。学生成绩作为考核学习结果的一项重要指标,不仅是对学生学习效果和教师教学效果的检测和评价,而且更是一种具有反馈于教学活动、服务于教学策略、为教育科研提供数据资料等作用的信息。然而,目前普遍使用的成绩分析方法一般只能得到均值、方差等一类信息,且仅仅是从一门课程独立数据进行的分析,但在实际教学中,比如学生在学习某一门课程时,是哪一门或者几门课程对其影响很大,包括教学以外的哪些因素对学生成绩造成了较大的影响等各种有价值的信息往往无法获知。

目前在学校的本科教学数据库中存放着历届学生的各科考试成绩,海量的数据只是单纯的记载了数据信息,却很难直观的从这些数据中发现其背后所隐藏的信息。然而事实上,无论是课程与课程之间,还是每门课程中的知识点之间,以及学生的成绩与课程的设置之间都存在着千丝万缕的联系。现阶段已有的数据并没有发挥其真正的价值,为了解决这一问题,可以利用数据挖掘技术对这些数据进行合理的利用和深层的分析,从而更好的指导教师在教学中的工作。 1.4 本文研究内容

本文利用所学的数据挖掘技术,针对学生在分专业前的各主要学科的成绩构成(参考我校计本06级的成绩构成),对数据进行选择,预处理,数据挖掘以及对模式进行评估。运用聚类技术分析学生对哪个专业的强弱选择,从而为具有不同成绩特征的同学在专业选择及分专业后如何开展学习提供一定的参考意见,同时对我校教学及管理工作也将具有重大的指导作用和现实意义。把这个理论研究思想推广开来,将数据挖掘技术应用在高校教学的各个方面,应该会得到大量的有现实意义的结果,从而制定相应的措施,提高教育教学质量。

第 3 页 共 27 页

陕西理工学院毕业设计

2 数据挖掘理论概述

2.1 数据挖掘概述

数据挖掘是集统计学、人工智能、模式识别、并行计算、机器学习、数据库系统、数据仓库、数据可视化和信息检索等技术的一个交叉性学科。数据挖掘是数据仓库之上的一种应用。但是数据挖掘不限于分析数据仓库中的数据,它执行关联、分类、预测、聚类、时间序列分析等任务,而且数据挖掘应用范围也相对较广。 2.1.1 数据挖掘的定义

数据挖掘,它是从大量数据中提取可信的、新颖的、有效的并能被人们理解的模式的处理过程。它是一门新兴的交叉学科,汇集了来自机器学习、模式识别、数据库、统计学、人工智能等各领域的研究成果。这个定义可从以下四个层次来理解:

(1)数据源是大量的、可信的、有效的; (2)发现的是用户感兴趣的知识;

(3)发现的知识是可理解、可运用的,通常是能用自然语言描述的结果;

(4)数据挖掘所发现的结果通常是相对的,是在某个特定前提和约束条件下,面对某个特定领域有价值的知识。

也有人把数据挖掘视为从数据库中知识发现过程的一个基本步骤,知识发现过程以下步骤组成:(1)数据清理,(2)数据集成,(3)数据选择,(4)数据变换,(5)数据挖掘,(6)模式评估,(7)知识表示。数据挖掘可以与用户或知识库交互。 2.1.2 数据挖掘的过程

数据挖掘是一个复杂的多阶段过程,如图2.1所示,主要可以分为如下几个主要阶段:

(1)确定挖掘对象:理解数据,提出问题,对挖掘目标有明确的定义。认清数据挖掘技术在学生成绩分析中的应用研究数据挖掘的目的是数据挖掘的重要一步,挖掘的最后结果往往是不可预测的,但对要探索的问该是要有预见的,即明确挖掘的最终目标。

(2)数据准备:数据准备为挖掘提供高质量的输入数据,是保证挖掘得以成功的前提条件,在整个数据挖掘过程中所占比重也最大。数据准备可分为3个子步骤:数据选择(Data Selection)、数据预处理(Data Processing)和数据转换(Data Transformation)。

①数据选择。收集所有与挖掘相关的内部和外部的数据信息,获取原始的数据,从中选择出适用于数据挖掘应用的数据,建立数据挖掘库或数据仓库。

②数据预处理。对数据进行初步的整理,包括去除噪声和与挖掘目标明显无关的数据等,使之符合数据挖掘的要求。消除空白数据域和重复的记录,清洗不完全的数据等,为下一步分析作好准备。

③数据的转换。根据将要使用的挖掘方法,将数据转换成易于进行挖掘的数据存储形式。 (3)数据挖掘:数据挖掘的核心是模式发现,利用数据挖掘工具和方法对所有得到已经过转换的数据进行分析,搜索或产生一个特定的感兴趣的模式或一个特定的数据集。

(4)结果分析:对挖掘结果进行分析验证,保证发现模式的正确性,从中找到有价值的信息。 (5)知识表示:将挖掘出的模式与规则以直观、容易理解的方式呈现给用户,例如把分类决策树 挖掘的结果表示为“if⋯then⋯”的形式。

第 4 页 共 27 页

陕西理工学院毕业设计

图2.1数据挖掘的过程图

2.2 聚类分析

在数据库中的知识发现和数据挖掘(KDDM)受到目前人工智能与数据库界的广泛重视。KDDM的目的是从海量的数据中提取人们感兴趣的、有价值的知识和重要的信息,聚类则是KDDM领域中的一个重要分支。所谓聚类是将物理或抽象的集合分组成为类似的对象组成的多个类的过程。 2.2.1 聚类分析概述

聚类分析就是将一组数据分组,使其具有最大的组内相似性和最小的组间相似性。简单的说就是达到不同聚类中的数据尽可能不同,而同一聚类中的数据尽可能相似,它与分类不同,分类是对于目标数据库中存在哪些类这一信息是知道的,所要做的就是将每一条记录分别属于哪一类标记出来;而聚类是在预先不知道目标数据库到底有多少类的情况下,希望将所有的记录组成不同的簇或者说“聚类”,并且使得在这种分类情况下,以某种度量为标准的相似性,在同一聚类之间最小化,而在不同聚类之间最大化。事实上,聚类算法中很多算法的相似性都基于距离而且由于现实数据库中数据类型的多样性,关于如何度量两个含有非数值型字段的记录之间的距离的讨论有很多,并提出了相应的算法。聚类分析的算法可以分为以下几类:划分方法、层次方法、基于密度方法等。 2.2.2 聚类分析原理方法

在数据挖掘技术中,聚类分析主要有以下几种方法。

(1)划分法(Partitioning Methods)

划分法给定一个有N个元组或者记录的数据集,构造K个分组,每一个分组就代表一个聚簇,K< N。而且这K个分组满足下列条件:每个组至少包括一个对象,每个对象必须属于且只属于一个组。

对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一组中的记录越近越好,而不同分组中的记录越远越好。使用这个基本思想的算法有:K均值算法、K中心点算法、CLARANS算法。K均值算法一般只能在簇的平均值被定义的情况下才能被使用,这对于涉及有分类属性的数据的应用可能会显得不适用,该方法不易发现非凸面形状的簇和大小差别很大的簇;K中心点算法在中心点的计算过程中需要反复迭代计算,其计算量很大,这对于对象及划分数的值较大时,其计算代价相当高。

第 5 页 共 27 页

陕西理工学院毕业设计

(2)层次法(Hierarchical Methods)

层次法就是把数据库分成多个层次,然后对不同层次的数据采用划分聚类。输出的是一棵层次化的分类树,层次的方法可以分为凝聚的和分裂的。凝聚的方法也称为自底向上的方法,一开始将每个对象作为单独的一个组,然后相继地合并相近的对象或组,直到所有的组合并为一个(层次的最上层),或者达到一个终止条件。分裂的方法,也称为自顶向下的方法,一开始将所有的对象置于一个类中。在迭代的每一步中,一个类被分裂为更小的类。直到最终每个对象在单独的一个类中,或者达到一个终止条件。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等。

(3)基于密度的方法(Density-Based Methods)

基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”聚类的缺点,可以发现任意形状的聚类结果。这个方法的思想就是:只要一个区域中的点的密度大于某个域值,就把它加到与之相近的聚类中。代表算法有DBSCAN算法,OPTICS算法,DENCLUE算法等。 2.2.3 聚类分析工具

目前,用于聚类分析的工具主要有两种:WEKA软件和SQL Server 2005 (1) WEKA软件

WEKA是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(Machine Learning)以及数据挖掘(DataMining)软件。该软件的缩写WEKA也是New Zealand独有的一种鸟名,而WEKA的主要开发者同时恰好来自New Zealand的the University of Waikato。

WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归,聚类,关联规则以及在新的交互式界面上的可视化。而开发者则可使用Java语言,利用WEKA的架构上开发出更多的数据挖掘算法。 读者如果想自己实现数据挖掘算法的话,可以看一看WEKA的接口文档。在WEKA中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。聚类,分类和关联分窗口提供对数据应用对应各类数据挖掘算法的界面,尤其对于成绩管理系统中大都是数值的数据。因此,选用WEKA工具来对高校学生成绩分析能够得到很有效的结果。

(2) SQL Server 2005

Microsoft SQL Server 2005 Data Mining(数据挖掘)属于商务智能技术,它可帮助您构建复杂的分析模型,并使其与其它业务操作相集成。Analysis Services可以设计、创建和可视化处理那些通过使用各种行业标准数据挖掘算法构造出来的数据挖掘模型。需要使用的工具不仅仅是单个的SQL数据库系统,还要以SQL Server 2005 Developer Edition和SQL Server Business Intelligence Development Studio为开发工具。因此,在此数据挖掘分析过程中,相对来说较为复杂,同时还要考虑数据库德导入与连接问题,在数据信息安全上没有WEKA工具更有效分析处理。

WEKA跟SQL Server 2005相比,最大的优势在于其开源性,它的源代码可以很方便地在各个相应窗口中显示出来。因此开发人员可以根据实际需要,使用JAVA语言,通过实现其接口或是继承其方法,开发出适用于专业领域的数据挖掘应用系统。另外,还可以利用WEKA的基本架构,改进原有的算法或开发新的算法,以满足实际需要。本文正是利用了WEKA的这一最大优势,来对学生成绩进行分析研究的。

第 6 页 共 27 页

陕西理工学院毕业设计

3 算法介绍

3.1 K-means算法

K均值聚类,即数据挖掘中的C均值聚类,属于聚类分析方法中一种基本的且应用最广泛的划分算法。

3.1.1 K-means算法描述

K-means算法是J.B.MacQueen在1967年提出的,是聚类方法中一个基本的划分方法,也是目前诸多聚类算法中极有影响的一种技术。K-均值算法以k为参数,把N个对象分为k个簇,以使簇内具有较高的相似度。相似度的计算根据一个簇中对象的平均值来进行。

算法首先随机地选择K个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。

K-Means算法的准则函数定义为:

Ei1xCikxxi2,

即E是数据库所有对象的平方误差的总和。其中x是空间中的点,表示给定的数据对象,簇

xi是

Ci的平均值。

K-means算法描述为:

输入:簇的数目k和包含n个对象的数据库 输出:k个簇,使平方误差准则最小 (1)assign initial value for means; //任意选择k个对象作为初始的簇中心 (2)REPEAT

(3)FOR j=i to n DO assign each xj to the cluster which has the closest mean; //根据簇中对象的平均值,将每个对象赋给最类似的簇 (4)FOR i=1 to k DO

xixCixCi;

//更新簇的平均值,即计算每个对象簇中对象的平均值 (5)Compute E; //计算准则函数E

(6)UNTIL E 不再明显地发生变化;

从上面的算法思想和算法框架,我们不难看出,K个初始聚类中心点的选取对聚类结果具有较大的影响,因为在该算法中是随机地选取任意K个点作为初始聚类中心。如果有先验知识,可以选取具有代表性的点作为初始中心点。在上面这个算法中,一次迭代中把每一个数据对象分到离它最近的聚类中心所在的类中,这个过程的时间复杂度为O(nkd),这里n指的是总的数据对象的个数,k是指定的聚类数也叫簇数,d是数据对象的维数;新的分类产生以后需要计算新的聚类中心,这个过程的时间复杂度为0(nd)。所以这个算法一次迭代需要的总的时间复杂度为O(nkd)。

第 7 页 共 27 页

陕西理工学院毕业设计

3.1.2 k-means算法的特点

k-means算法已被广泛地应用于大规模数据集的聚类,其他方法一般都只是在小规模的数据集上进行了测试,其算法时间复杂度是0(nkl),其中n是样本数量,k是聚类的数目,1是算法收敛时已迭代的次数。通常k和1是预先给定的,因此算法的时间复杂度和空间复杂度与数据集的大小是线性关系。其算法空间复杂度是O(k+n),如果可以把所有的数据储存在主存储器里,则存取所有数据非常快,算法的效率非常高。k-means算法是一个不依赖顺序的算法,给定一个初始类分布,无论样本算法的顺序如何,分区过程结束后生成的数据分区都一样。

k-means算法在算法的初始阶段要选取K个点作为初始聚类中心,然后在此基础上进行反复迭代。选取的点不同,聚类结果可能就有所不同,所以这个算法的聚类结果对初值的依赖性很强,这样的依赖性导致聚类结果的不稳定。系统进行当然也有可能碰到最极端的初值选取情况,这种情况使得算法运行时间加长,聚类准则函数难以收敛,聚类结果更加难以预测。因此,初始聚类中心的选取方法是不唯一的,可以随机产生,凭经验知识获取,采用密度方法等等。无论聚类算法采用哪一种选取方法,我们都希望聚类中心越稳定越好,需要先验知识越少越好,需要确定的参数越少越好,而且希望算法能够产生一个较稳定的聚类结果,而不是对初始聚类中心非常敏感,不同的初始聚类中心产生不同的聚类结果。在传统的k-means算法中,聚类结果对初始聚类中心有较强的依赖性,即不同的初始聚类中心会产生不同的聚类结果,因此聚类结果的有效性直接依赖于初始聚类中心的选择。

目前针对初值选取的问题,主要概括有以下几种方法: (1)任意选取K个样本数据作为初始聚类中心。

(2)依据经验选取有代表性的点作为初始聚类中心。根据个体性质,观察数据结构,筛选出比较合适的代表点。

(3)把全部混合样本直观地分成k类,计算各类均值作为初始聚类中心。

(4)通过“密度法”选择代表点作为初始聚类中心。所谓密度是指具有统计性质的样本密度。例如,以每个样本为中心,以某个给定正数d1为半径,在特征空间里划出一个球形邻域,计算落入该邻域里的样本数目作为该点的密度。在计算完每个数据对象的密度后,首先选取密度最大的样本作为第一个初始聚类中心,它对应着样本分布密度的最高峰值点;然后,给定一个正数d2,在离开第一个初始聚类中心距离d2之外选择次大密度点作为第2个代表点,这样可以避免代表点过分集中;依此类推,可以选出k个初始聚类中心。

(5)由(k-1)类聚类问题解出k类问题的代表点。例如:先把全部样本看成一个类,样本总均值点就是第1类的初始聚类中心;然后,由第1类的初始聚类中心和离它最远的一个样本作为两类的初始聚类中心;依此类推,由(k-1)类的代表点和离它们最远的一个数据对象作为k类问题的初始聚类中心。

(6)按最大最小距离聚类法中寻找聚类中心的方法确定初始聚类中心。 (7)进行多次初值选择、聚类,找出一组最优的聚类结果。 (8)采用遗传算法或者免疫规划方法进行混合聚类。

由此可见,K-means算法是一种较好的解决聚类问题的方法,已经很成功的运用在银行、高校等领域,也取得了很好的效果。本论文聚类技术在学生成绩分析中的应用,就是针对聚类技术当中K-means算法的高性能、高准确性、操作简单等特性来完成对学生成绩的分析处理。

第 8 页 共 27 页

陕西理工学院毕业设计

4 聚类分析的应用

本文主要研究了数据挖掘当中的聚类技术在学生成绩分析中的应用,以WEKA为工具,采用K-means聚类方法对计算机专业学生的成绩进行分析处理,并对所得数据进行选择,预处理,数据挖掘以及对模式进行评估。运用聚类技术分析学生对哪个专业的强弱选择,从而为具有不同成绩特征的同学在专业选择及分专业后如何开展学习提供一定的参考意见,同时对我校教学及管理工作也将具有重大的指导和完善作用。 4.1 算法实现

在本文中采用K-means聚类算法,对计算机专业学生成绩进行分析处理(500条实例),挖掘分析出聚类结果,为高校计算机专业的学生在分方向时提供了参考依据。 4.1.1 数据准备

本文在数据挖掘过程当中所使用的工具是WEKA,而WEKA所支持的数据格式有两种:ARFF文件和CSV文件。我们分析的原始数据是EXCEL文件,必需将此原始EXCEL数据文件转换为ARFF或CSV文件。转换方法为:在EXCEL中打开“MARK.xls”,选择菜单—>另存为,在弹出的对话框中,文件名输入“Mark”,保存类型选择“CSV( 逗号分隔)”,保存,便可得到“Mark.csv”文件。其结果如图4.1所示:

图4.1 数据文件窗口图 打开WEKA软件的Exporler,点击Open file按钮,打开刚得到的“Mark.csv”文件,点击“Save”按钮,在弹出的对话框中,文件名输入“Mark”,文件类型选择“Arff date files (*.arff)”,这样就得到的数据文件为“Mark.arff”。

第 9 页 共 27 页

陕西理工学院毕业设计

4.1.2 数据预处理

(1)聚类数据的预处理

现实世界中的数据库存在大量的噪声数据、空缺数据和不一致数据。基因表达数据也存在这种情况。有很多数据预处理技术可以去掉数据中的噪声,纠正不一致。为了提高涉及距离度量的聚类算法的精度和有效性,可以采用数据规范化的一些方法。 (2)数据清理

在实际数据库中往往存在着一些空缺值和噪音数据。对于空缺值,可以采用以下方法填写空缺值。

1)人工填写空缺值。这种方法对操作人员要求较高。并且,该方法很费时,当数据集很大时,该方法可能行不通。

2)使用该空缺值所在属性的平均值来填充。比如当进行样本聚类时,如果某个样本在某个指标值上的值空缺,可使用其它样本在该指标上的平均值来填充该空缺值。对于噪声数据,我们可以采用一些数据平滑技术来平滑数据。

3)数据规范化。如果数据库中的各属性的量纲和单位不同,在计算机对象间的距离之前,必须把不同的度量单位统一成相同的度量单位。由于属于不同概念范畴的属性具有不同的含义,把所有的属性转化成某个特定的度量单位是不可能的。常用的方法是把属性的值域映射为一个相同的区间(通常是[0,1]区间),这个过程成为属性的标准化或规范化。

K-means算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。因此,对于ARFF格式的原始数据“Mark.arff”,我们所做的预处理只是删除去属性“ID”。修改过程可以在Ultredit中更改,由于本文分析的数据是高校学生成绩,其属性都是数值型,所以只删除“ID”即可,其它不需要修改。其结果如图4.2所示:

图4.2 数据处理窗口图

这样最终得到的数据文件为“Mark.arff”,含有500条实例。

第 10 页 共 27 页

陕西理工学院毕业设计

4.1.3 算法应用

打开WEKA软件中的Exporler,点击刚才得到的“Mark.arff”,出现下面的窗口,如图4.3所示:

图4.3 数据分析主窗口图

点击右下角的“Visualize All”可以看到所有学生实例各科成绩的直方分布图,如下图4.4所示:

图4.4 数据直方分布图

切换到“Cluster”,点“Choose”按钮选择“SimpleKMeans”,这是WEKA中实现K均值的算法。点击旁边的文本框,修改“numClusters”为3,说明希望把这500条实例分成三个方向,即K=3。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。默认值为10。如下图4.5所示:

第 11 页 共 27 页

陕西理工学院毕业设计

图4.5 K-means参数设置窗口

选中“Cluster Mode”的“Use Training set”,点击“Start”按钮,观察右边“Cluster Output”给出的聚类结果如下: === Run information ===

Scheme: weka.clusterers.SimpleKMeans -N 3 -S 10

Relation: MARK-weka.filters.unsupervised.attribute.Remove-R1 Instances: 500 Attributes: 8

CompilingPrinciple ComputerNetwork SoftwareEngineer DateBase

OperationSystem Java

ArtificialIntelligence Sex

Test mode: evaluate on training data

=== Model and evaluation on training set === kMeans ======

Number of iterations: 10

Within cluster sum of squared errors: 169.15967414655165 Cluster centroids: Cluster 0 Mean/Mode: 70.2938 69.3813 69.2438 69.9313 68.5313 72.3625 74.075 MALE Std Devs: 7.1635 7.8699 6.8283 7.2295 6.4884 7.5715 7.1722 N/A Cluster 1 Mean/Mode: 77.8683 75.278 79.4098 77.3463 77.7463 78.3317 76.0146 MALE Std Devs: 8.0231 8.0212 7.9501 8.083 7.9492 8.2775 7.7444 N/A Cluster 2 Mean/Mode: 75.1926 72.5037 74.6519 73.8593 75.1926 74.4444 74.3259 FEMALE Std Devs: 9.6278 9.0289 9.0672 8.1819 9.0211 8.3966 8.4516 N/A Clustered Instances 0 160 ( 32%) 1 205 ( 41%) 2 135 ( 27%)

第 12 页 共 27 页

陕西理工学院毕业设计

也可以在左下角“Result list”中这次产生的结果上点右键,“View in separate window”在新窗口中浏览结果。 4.2 结果分析 4.2.1 聚类结果

下面对聚类结果进行解释。观察上述聚类结果,注意到结果中有这么一行: Within cluster sum of squared errors: 169.15967414655165

这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。然而在每次的实验分析中,也许你得到的数值会不一样;实际上如果把“seed”参数改一下,得到的这个数值就可能会不一样。在进行数据分析时,应当多尝试几个seed,并采纳这个数值最小的结果。

在“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean);分类型的属性,其簇中心就是它的众数(Mode),也就是说这个属性上的取值为众数值的实例最多。对于数值型属性,显示的结果中还给出了它在各个簇里的标准差(Std Devs),标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。标准差越高,表示实验数据越离散,也就是说越不精确;反之,标准差越低,代表实验的数据越精确。

最后得到的“Clustered Instances”是各个簇中实例的数目及所占总实例的百分比。 为了得到可视化的聚类结果,我们在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。结果如下图4.6所示:

图4.6 实例散点图窗口

其中,最上方的两个框是选择横坐标和纵坐标,第二行的“color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。在本文对学生成绩分析的应用当中,横坐标和纵坐标都选择簇数目,下面第二行的“color”选择实例数目,即反映相应的簇中聚集的实例的多少。

另外,在散点图上单击某个簇,则会弹出如下的窗口,如图4.7所示:

第 13 页 共 27 页

陕西理工学院毕业设计

图4.7 某簇中的实例信息图

这个窗口里面的内容反映的是某个具体的实例在那个簇中,并且显示出该实例的具体信息。如上图结果:“Instance:202”表示这是第202个实例,下面显示该学生实例的属性(各科成绩及性别),还有该实例所属的簇是具体的那个簇(这个实例是该簇当中随机的一个实例)。

我们随机选取3个簇里所包含的五个实例,其结果如下所示:

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 28

Instance_number : 28.0 CompilingPrinciple : 60.0 ComputerNetwork : 60.0 SoftwareEngineer : 71.0 DateBase : 68.0

OperationSystem : 75.0 Java : 78.0

ArtificialIntelligence : 83.0 Sex : MALE Cluster : cluster0

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 108

Instance_number : 108.0 CompilingPrinciple : 76.0 ComputerNetwork : 62.0 SoftwareEngineer : 63.0 DateBase : 60.0

OperationSystem : 65.0 Java : 65.0

ArtificialIntelligence : 70.0

Sex : MALE Cluster : cluster0

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 206

Instance_number : 206.0

第 14 页 共 27 页

陕西理工学院毕业设计

CompilingPrinciple : 68.0 ComputerNetwork : 81.0 SoftwareEngineer : 64.0 DateBase : 63.0

OperationSystem : 83.0 Java : 76.0

ArtificialIntelligence : 64.0

Sex : MALE Cluster : cluster0

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 230

Instance_number : 230.0 CompilingPrinciple : 71.0 ComputerNetwork : 69.0 SoftwareEngineer : 67.0 DateBase : 82.0

OperationSystem : 70.0 Java : 64.0

ArtificialIntelligence : 69.0

Sex : MALE Cluster : cluster0

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 266

Instance_number : 266.0 CompilingPrinciple : 80.0 ComputerNetwork : 70.0 SoftwareEngineer : 75.0 DateBase : 68.0

OperationSystem : 68.0 Java : 62.0

ArtificialIntelligence : 84.0

Sex : MALE Cluster : cluster0

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 17

Instance_number : 17.0 CompilingPrinciple : 88.0 ComputerNetwork : 62.0 SoftwareEngineer : 69.0 DateBase : 82.0

OperationSystem : 76.0 Java : 78.0

ArtificialIntelligence : 82.0

Sex : MALE

第 15 页 共 27 页

陕西理工学院毕业设计

Cluster : cluster1

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 104

Instance_number : 104.0 CompilingPrinciple : 90.0 ComputerNetwork : 63.0 SoftwareEngineer : 78.0 DateBase : 85.0

OperationSystem : 86.0 Java : 79.0

ArtificialIntelligence : 78.0

Sex : MALE Cluster : cluster1

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 233

Instance_number : 233.0 CompilingPrinciple : 85.0 ComputerNetwork : 67.0 SoftwareEngineer : 73.0 DateBase : 68.0

OperationSystem : 80.0 Java : 83.0

ArtificialIntelligence : 88.0

Sex : MALE Cluster : cluster1

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 259

Instance_number : 259.0 CompilingPrinciple : 85.0 ComputerNetwork : 83.0 SoftwareEngineer : 70.0 DateBase : 69.0

OperationSystem : 80.0 Java : 74.0

ArtificialIntelligence : 74.0

Sex : MALE Cluster : cluster1

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 321

Instance_number : 321.0 CompilingPrinciple : 74.0 ComputerNetwork : 76.0 SoftwareEngineer : 68.0 DateBase : 75.0

第 16 页 共 27 页

陕西理工学院毕业设计

OperationSystem : 84.0 Java : 86.0

ArtificialIntelligence : 83.0

Sex : MALE Cluster : cluster1

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 93

Instance_number : 93.0 CompilingPrinciple : 97.0 ComputerNetwork : 60.0 SoftwareEngineer : 88.0 DateBase : 82.0

OperationSystem : 93.0 Java : 67.0

ArtificialIntelligence : 92.0

Sex : FEMALE Cluster : cluster2

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 140

Instance_number : 140.0 CompilingPrinciple : 67.0 ComputerNetwork : 69.0 SoftwareEngineer : 67.0 DateBase : 68.0

OperationSystem : 76.0 Java : 89.0

ArtificialIntelligence : 60.0

Sex : FEMALE Cluster : cluster2

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 395

Instance_number : 395.0 CompilingPrinciple : 89.0 ComputerNetwork : 81.0 SoftwareEngineer : 84.0 DateBase : 85.0

OperationSystem : 66.0 Java : 78.0

ArtificialIntelligence : 88.0

Sex : FEMALE Cluster : cluster2

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 433

Instance_number : 433.0

第 17 页 共 27 页

陕西理工学院毕业设计

CompilingPrinciple : 71.0 ComputerNetwork : 69.0 SoftwareEngineer : 63.0 DateBase : 65.0

OperationSystem : 90.0 Java : 63.0

ArtificialIntelligence : 76.0

Sex : FEMALE Cluster : cluster2

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 488

Instance_number : 488.0 CompilingPrinciple : 69.0 ComputerNetwork : 75.0 SoftwareEngineer : 65.0 DateBase : 65.0

OperationSystem : 82.0 Java : 68.0

ArtificialIntelligence : 83.0

Sex : FEMALE Cluster : cluster2

Plot : 21:20:47 - SimpleKMeans (MARK-weka.filters.unsupervised.attribute.Remove-R1) Instance: 489

Instance_number : 489.0 CompilingPrinciple : 70.0 ComputerNetwork : 74.0 SoftwareEngineer : 80.0 DateBase : 69.0

OperationSystem : 66.0 Java : 83.0

ArtificialIntelligence : 85.0

Sex : FEMALE Cluster : cluster2

第 18 页 共 27 页

陕西理工学院毕业设计

4.2.2 结果分析

根据上述散点图所得每个簇里的相应实例结果,分析发现:

在Cluster0簇里有160个实例,占总实例的32%,其中男生相对较多;根据这个簇里面各实例的成绩可以看出,CompilingPrinciple和ArtificialIntelligence两门课程成绩相对比较高, CompilingPrinciple正是硬件方向的主修课程,而从ArtificialIntelligence课程中可以学到有关硬件方面的编程思想等;同时应有较强的动手能力,对计算机的硬件构成有一定基础,要有创新的意识。在我们分析的数据实例中,这类学生在分专业时选择了硬件方向。故在以后计算机专业的学生在分方向时,对CompilingPrinciple和ArtificialIntelligence这两门课程感兴趣,对计算机硬件结构及系统有一定了解,具有较强动手能力和创新意识的同学可以选择硬件方向。

在Cluster1簇里有205个实例,占总实例的41%,其中男生相对较多;根据该簇里面各实例的成绩可以看出,ComputerNetwork和OperationSystem两门课程成绩相对较好,而且ComputerNetwork是网络方向的基础课程,并且网络方向要求有较高的命令识别能力,这个方向还要有软件方面的基础知识给予支持,而OperationSystem正是一门有效的计算机软件方面的基础知识课程。在我们所分析的数据实例中,这类的学生在分专业时选择了网络方向。因此,在以后计算机专业的学生在分方向时,对ComputerNetwork感兴趣,同时有一定的OperationSystem方面的知识,对计算机常用的命令有很强的识别能力的同学可以选择网络方向。

在Cluster2簇里有135个实例,占总实例的27%,其中女生相对较多;根据这个簇里面各实例的成绩可以看出,SoftwareEngineer和ArtificialIntelligence两门课程成绩相对比较高,而且这些课程正是软件方向的核心课程,其要求思维周密,要有耐心,并且有创新的意识。根据本文所分析的数据来看,这类的学生在分专业时选择了软件方向。所以在以后计算机专业的学生在分方向时,对SoftwareEngineer和ArtificialIntelligence这两门课程感兴趣,成绩好,并且思维周密,有耐心、创新意识的同学可以选择软件方向。 4.3 结论

本论文通过对数据挖掘中聚类算法的分析与应用,实现了高校学生成绩的有效分析处理。聚类分析就是将一组数据分组,使其具有最大的组内相似性和最小的组间相似性。简单的说就是达到不同聚类中的数据尽可能不同,而同一聚类中的数据尽可能相似。利用聚类分析的这个原理,对我校计算机专业学生在分专业方向前的各主要学科的成绩构成,对数据进行选择,预处理,数据挖掘以及对模式进行评估。最后将500个实例聚成3个簇(即分三个方向),同时,分析出学生根据自身的学习状况及喜好来选择自己适合的专业方向。从而为具有不同成绩特征的同学在专业选择及分专业后如何开展学习提供一定的参考意见。此外,对我校教学及管理工作也将具有重大的指导作用和现实意义。

第 19 页 共 27 页

陕西理工学院毕业设计

总结

经过了两个多月的学习和工作,完成了《聚类技术在学生成绩分析中的应用》的论文。从开始接到论文题目到毕业设计论文的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的一个大的项目。在这段时间里,我学到了很多知识也有很多感受,对数据挖掘这门课程从陌生到熟悉,对WEKA等相关数据分析软件也有了相对程度的操作,使我开始了独立的学习和试验;查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己的作品一步步完善起来,每一次改进都是我学习的收获。从中我也充分认识到了毕业设计给我们生活带来的乐趣。

在聚类技术在学生成绩分析中的应用论文中,主要完成对在校学生分专业前的成绩进行分析处理,利用WEKA软件有效地对成绩进行深层次挖掘,得出比较合理的结果,让学生在以后分专业时能够得以参考。由于时间比较紧,论文当中还有些因素没有分析到,在以后的工作学习中我会去进一步的完善。不断的努力、不断的去探索更多的知识。

但在这次毕业设计的过程中,我深深的体会到理论和实际操作衔接的重要性。以前自己只注重课本知识,没能积极的训练自己的实际操作能力,又加上以前所掌握的知识欠缺,必然在这次毕设的过程中带来很大的困难。但是我没有气馁,虚心向别人学习,到图书馆查阅资料等,逐渐熟悉理解了。

其实,通过这次毕业设计不仅学会了使用几门软件,我觉得这样的过程还是相当重要的,使我对这四年所学知识能够融会贯通,又不断丰富了新知识同时也培养了解决困难的信心和能力,对我以后参加工作奠定了坚实的基础。

第 20 页 共 27 页

陕西理工学院毕业设计

致谢

在本次毕业设计中,我从指导老师李明姣老师身上学到了很多东西。李老师认真负责的工作态度,严谨求实的治学精神和深厚扎实的理论水平使得我受益匪浅。她不断的通过电话、邮件、面谈的各种途径为我们的毕业论文设计给出有效的指导与意见,为我们出谋划策,每一次交换意见后都对存在的问题有了更深的理解,同时也有了解决问题的思路框架。此外,李老师也积极的组织会议给我们讲解了毕业论文的写作规范及布置、以及答辩的相关事宜和其他事项。无论在理论上还是在实践中,李老师都给予我很大的帮助,使我得到长足的进步,顺利地完成了毕业设计。

不积跬步何以至千里。这次做毕业论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,本论文能够顺利的完成,也归功于各位任课老师的认真负责,和同学的热心帮助,使我能够很好的掌握和运用专业知识,并在论文中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成。

在此向陕西理工学院计算机系的全体老师表示衷心的感谢,感谢他们四年来的辛勤栽培。

第 21 页 共 27 页

陕西理工学院毕业设计

参考文献

[1]毛国君.数据挖掘原理与算法(第二版)[M].北京:清华大学出版社.2007.10 [2]朱玉全.数据挖掘技术[M].南京:东南大学出版社.2006.11

[3]董琳.数据挖掘实用机器学习技术[M].北京:机械工业出版社.2006.8

[4]张治斌,王艳萍.数据挖掘技术在数字化校园中的应用EJ3.现代计算机.2006.5

[5]吴东升,数据挖掘在高校教学及学生学习评价中的应用空间分析EJ].电脑知识与技术.2006 [6]刘红岩,陈剑著.数据挖掘中的数据分类算法综述[J].清华大学学报(自然科学版).2002.04 [7]罗海蛟.数据挖掘中分类算法的研究及其应用[J].微机发展.2003.13 [8]毛国君,数据挖掘的概念、系统结构和方法[M]. 计算机工程与设计.2002 [9]David Hand,Heikki Mannila,Padluaie.Principles of data milling.The MIT Press.2001 [10]陈志泊,数据仓库与数据挖掘[M]. 北京:清华大学出版社,2009.5

[11]ZhaoHui Tang,数据挖掘原理与应用——SQL Server 2005. 北京:清华大学出版社.2007.1 [12]陈黎,王敏,聚类分析的方法. 计算机工程与应用[J].2002.6

[13]高新波. 模糊聚类分析及其应用. 西安:西安电子科技大学[J].2004.1 [14]邵峰晶,于忠清.数据挖掘原理与算法[M]. 北京:中国水利水电出版社.2003

[15] Donald Feinberg, Mark A. Beyer. Magic Auadrant for Data Warehouse Database Management Systems. 2007. [16] Cliff Longman, CTO, Kalido. Warehouse Lifecycle Management Concepts and Principles .2008

第 22 页 共 27 页

陕西理工学院毕业设计

外文科技文献

What is Data Mining?

Simply stated, data mining refers to extracting or “mining” knowledge from large amounts of data. The term is actually a misnomer. Remember that the mining of gold from rocks or sand is referred to as gold mining rather than rock or sand mining. Thus, “data mining” should have been more appropriately named “knowledge mining from data”, which is unfortunately somewhat long. “Knowledge mining”, a shorter term, may not reflect the emphasis on mining from large amounts of data. Nevertheless, mining is a vivid term characterizing the process that finds a small set of precious nuggets from a great deal of raw material. Thus, such a misnomer which carries both “data” and “mining” became a popular choice. There are many other terms carrying a similar or slightly different meaning to data mining, such as knowledge mining from databases, knowledge extraction, data / pattern analysis, data archaeology, and data dredging.

Many people treat data mining as a synonym for another popularly used term, “Knowledge Discovery in Databases”, or KDD. Alternatively, others view data mining as simply an essential step in the process of knowledge discovery in databases. Knowledge discovery consists of an iterative sequence of the following steps: · data cleaning: to remove noise or irrelevant data,

· data integration: where multiple data sources may be combined,

· data selection : where data relevant to the analysis task are retrieved from the database,

· data transformation : where data are transformed or consolidated into forms appropriate for mining by performing summary or aggregation operations, for instance,

· data mining: an essential process where intelligent methods are applied in order to extract data patterns,

· pattern evaluation: to identify the truly interesting patterns representing knowledge based on some interestingness measures, and

· knowledge presentation: where visualization and knowledge representation techniques are used to present the mined knowledge to the user .

The data mining step may interact with the user or a knowledge base. The interesting patterns are presented to the user, and may be stored as new knowledge in the knowledge base. Note that according to this view, data mining is only one step in the entire process, albeit an essential one since it uncovers hidden patterns for evaluation.

We agree that data mining is a knowledge discovery process. However, in industry, in media, and in the database research milieu, the term “data mining” is becoming more popular than the longer term of “knowledge discovery in databases”. Therefore, in this book, we choose to use the term “data mining”. We adopt a broad view of data mining functionality: data mining is the process of discovering interesting knowledge from large amounts of data stored either in databases, data warehouses, or other information repositories.

Based on this view, the architecture of a typical data mining system may have the following major components:

1. Database, data warehouse, or other information repository. This is one or a set of databases, data warehouses, spread sheets, or other kinds of information repositories. Data cleaning and data integration techniques may be performed on the data.

2. Database or data warehouse server. The database or data warehouse server is responsible for fetching the relevant data, based on the user’s data mining request.

3. Knowledge base. This is the domain knowledge that is used to guide the search, or evaluate the interestingness of resulting patterns. Such knowledge can include concept hierarchies, used to organize attributes or attribute values into different levels of abstraction. Knowledge such as user beliefs, which can be used to assess a pattern’s interestingness based on its unexpectedness, may also be included. Other examples of domain knowledge are additional interestingness constraints or thresholds, and metadata (e.g., describing data from multiple heterogeneous sources).

4. Data mining engine. This is essential to the data mining system and ideally consists of a set of functional modules for tasks such as characterization, association analysis, classification, evolution and deviation analysis.

第 23 页 共 27 页

陕西理工学院毕业设计

5. Pattern evaluation module. This component typically employs interestingness measures and interacts with the data mining modules so as to focus the search towards interesting patterns. It may access interestingness thresholds stored in the knowledge base. Alternatively, the pattern evaluation module may be integrated with the mining module, depending on the implementation of the data mining method used. For efficient data mining, it is highly recommended to push the evaluation of pattern interestingness as deep as possible into the mining process so as to confine the search to only the interesting patterns.

6. Graphical user interface. This module communicates between users and the data mining system, allowing the user to interact with the system by specifying a data mining query or task, providing information to help focus the search, and performing exploratory data mining based on the intermediate data mining results. In addition, this component allows the user to browse database and data warehouse schemas or data structures, evaluate mined patterns, and visualize the patterns in different forms.

From a data warehouse perspective, data mining can be viewed as an advanced stage of on-1ine analytical processing (OLAP). However, data mining goes far beyond the narrow scope of summarization-style analytical processing of data warehouse systems by incorporating more advanced techniques for data understanding.

While there may be many “data mining systems” on the market, not all of them can perform true data mining. A data analysis system that does not handle large amounts of data can at most be categorized as a machine learning system, a statistical data analysis tool, or an experimental system prototype. A system that can only perform data or information retrieval, including finding aggregate values, or that performs deductive query answering in large databases should be more appropriately categorized as either a database system, an information retrieval system, or a deductive database system. Data mining involves an integration of techniques from mult1ple disciplines such as database technology, statistics, machine learning, high performance computing, pattern recognition, neural networks, data visualization, information retrieval, image and signal processing, and spatial data analysis. We adopt a database perspective in our presentation of data mining in this book. That is, emphasis is placed on efficient and scalable data mining techniques for large databases. By performing data mining, interesting knowledge, regularities, or high-level information can be extracted from databases and viewed or browsed from different angles. The discovered knowledge can be applied to decision making, process control, information management, query processing, and so on. Therefore, data mining is considered as one of the most important frontiers in database systems and one of the most promising, new database applications in the information industry. A classification of data mining systems

Data mining is an interdisciplinary field, the confluence of a set of disciplines, including database systems, statistics, machine learning, visualization, and information science. Moreover, depending on the data mining approach used, techniques from other disciplines may be applied, such as neural networks, fuzzy and or rough set theory, knowledge representation, inductive logic programming, or high performance computing. Depending on the kinds of data to be mined or on the given data mining application, the data mining system may also integrate techniques from spatial data analysis, Information retrieval, pattern recognition, image analysis, signal processing, computer graphics, Web technology, economics, or psychology.

Because of the diversity of disciplines contributing to data mining, data mining research is expected to generate a large variety of data mining systems. Therefore, it is necessary to provide a clear classification of data mining systems. Such a classification may help potential users distinguish data mining systems and identify those that best match their needs. Data mining systems can be categorized according to various criteria, as follows. 1) Classification according to the kinds of databases mined.

A data mining system can be classified according to the kinds of databases mined. Database systems themselves can be classified according to different criteria (such as data models, or the types of data or applications involved), each of which may require its own data mining technique. Data mining systems can therefore be classified accordingly.

For instance, if classifying according to data models, we may have a relational, transactional, object-oriented, object-relational, or data warehouse mining system. If classifying according to the special types of data handled, we may

第 24 页 共 27 页

陕西理工学院毕业设计

have a spatial, time -series, text, or multimedia data mining system , or a World-Wide Web mining system . Other system types include heterogeneous data mining systems, and legacy data mining systems. 2) Classification according to the kinds of knowledge mined.

Data mining systems can be categorized according to the kinds of knowledge they mine, i.e., based on data mining functionalities, such as characterization, discrimination, association, classification, clustering, trend and evolution analysis, deviation analysis , similarity analysis, etc. A comprehensive data mining system usually provides multiple and/or integrated data mining functionalities.

Moreover, data mining systems can also be distinguished based on the granularity or levels of abstraction of the knowledge mined, including generalized knowledge(at a high level of abstraction), primitive-level knowledge(at a raw data level), or knowledge at multiple levels (considering several levels of abstraction). An advanced data mining system should facilitate the discovery of knowledge at multiple levels of abstraction. 3) Classification according to the kinds of techniques utilized.

Data mining systems can also be categorized according to the underlying data mining techniques employed. These techniques can be described according to the degree of user interaction involved (e.g., autonomous systems, interactive exploratory systems, query-driven systems), or the methods of data analysis employed(e.g., database-oriented or data warehouse-oriented techniques, machine learning, statistics, visualization, pattern recognition, neural networks, and so on ) .A sophisticated data mining system will often adopt multiple data mining techniques or work out an effective, integrated technique which combines the merits of a few individual approaches.

第 25 页 共 27 页

陕西理工学院毕业设计

中文译文

什么是数据挖掘?

简单地说,数据挖掘是从大量的数据中提取或“挖掘”知识。该术语实际上有点儿用词不当。注意,从矿石或砂子中挖掘黄金叫做黄金挖掘,而不是叫做矿石挖掘。这样,数据挖掘应当更准确地命名为“从数据中挖掘知识”,不幸的是这个有点儿长。“知识挖掘”是一个短术语,可能它不能反映出从大量数据中挖掘的意思。毕竟,挖掘是一个很生动的术语,它抓住了从大量的、未加工的材料中发现少量金块这一过程的特点。这样,这种用词不当携带了“数据”和“挖掘”,就成了流行的选择。还有一些术语,具有和数据挖掘类似但稍有不同的含义,如数据库中的知识挖掘、知识提取、数据/模式分析、数据考古和数据捕捞。

许多人把数据挖掘视为另一个常用的术语—数据库中的知识发现或KDD的同义词。而另一些人只是把数据挖掘视为数据库中知识发现过程的一个基本步骤。知识发现的过程由以下步骤组成:

1)数据清理:消除噪声或不一致数据, 2)数据集成:多种数据可以组合在一起,

3)数据选择:从数据库中检索与分析任务相关的数据,

4)数据变换:数据变换或统一成适合挖掘的形式,如通过汇总或聚集操作, 5)数据挖掘:基本步骤,使用智能方法提取数据模式,

6)模式评估:根据某种兴趣度度量,识别表示知识的真正有趣的模式, 7)知识表示:使用可视化和知识表示技术,向用户提供挖掘的知识。

数据挖掘的步骤可以与用户或知识库进行交互。把有趣的模式提供给用户,或作为新的知识存放在知识库中。注意,根据这种观点,数据挖掘只是整个过程中的一个步骤,尽管是最重要的一步,因为它发现隐藏的模式。

我们同意数据挖掘是知识发现过程中的一个步骤。然而,在产业界、媒体和数据库研究界,“数据挖掘”比那个较长的术语“数据库中知识发现”更为流行。因此,在本书中,选用的术语是数据挖掘。我们采用数据挖掘的广义观点:数据挖掘是从存放在数据库中或其他信息库中的大量数据中挖掘出有趣知识的过程。

基于这种观点,典型的数据挖掘系统具有以下主要成分:

数据库、数据仓库或其他信息库:这是一个或一组数据库、数据仓库、电子表格或其他类型的信息库。可以在数据上进行数据清理和集成。

数据库、数据仓库服务器:根据用户的数据挖掘请求,数据库、数据仓库服务器负责提取相关数据。

知识库:这是领域知识,用于指导搜索,或评估结果模式的兴趣度。这种知识可能包括概念分层,用于将属性或属性值组织成不同的抽象层。用户确信方面的知识也可以包含在内。可以使用这种知识,根据非期望性评估模式的兴趣度。领域知识的其他例子有兴趣度限制或阈值和元数据(例如,描述来自多个异种数据源的数据)。

数据挖掘引擎:这是数据挖掘系统基本的部分,由一组功能模块组成,用于特征化、关联、分类、聚类分析以及演变和偏差分析。

模式评估模块:通常,此成分使用兴趣度度量,并与数据挖掘模块交互,以便将搜索聚集在有趣的模式上。它可能使用兴趣度阈值过滤发现的模式。模式评估模块也可以与挖掘模块集成在一起,这依赖于所用的数据挖掘方法的实现。对于有效的数据挖掘,建议尽可能深地将模式评估推进到挖掘过程之中,以便将搜索限制在有兴趣的模式上。

图形用户界面:本模块在用户和数据挖掘系统之间进行通信,允许用户与系统进行交互,指定数据挖掘查询或任务,提供信息、帮助搜索聚焦,根据数据挖掘的中间结果进行探索式数据挖掘。此外,此成分还允许用户浏览数据库和数据仓库模式或数据结构,评估挖掘的模式,以不同的形式对模式进行可视化。

从数据仓库观点,数据挖掘可以看作联机分析处理(OLAP)的高级阶段。然而,通过结合更高级的数据理解技术,数据挖掘比数据仓库的汇总型分析处理走得更远。

第 26 页 共 27 页

陕西理工学院毕业设计

尽管市场上已有许多“数据挖掘系统”,但是并非所有系统的都能进行真正的数据挖掘。不能处理大量数据的数据分析系统,最多是被称作机器学习系统、统计数据分析工具或实验系统原型。一个系统只能够进行数据或信息检索,包括在大型数据库中找出聚集的值或回答演绎查询,应当归类为数据库系统,或信息检索系统,或演绎数据库系统。

数据挖掘涉及多学科技术的集成,包括数据库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理和空间数据分析。在本书讨论数据挖掘的时候,我们采用数据库的观点。即,着重强调在大型数据库中有效的和可伸缩的数据挖掘技术。一个算法是可伸缩的,如果给定内存和磁盘空间等可利用的系统资源,其运行时间应当随数据库大小线性增加。通过数据挖掘,可以从数据库提取有趣的知识、规律或者高层信息,并可以从不同的角度来观察或浏览。发现的知识可以用于决策、过程控制、信息管理、查询处理,等等。因此,数据挖掘被信息产业界认为是数据库系统最重要的前沿之一,是信息产业中最有前途的交叉学科。

数据挖掘是一个交叉学科的领域,受到多个学科的影响,包括数据库系统、统计学、机器学习、可视化和信息科学。此外,依赖于所用的数据挖掘方法,以及可以使用的其他学科的技术,如神经网络、模糊和/或粗糙集理论、知识表示、归纳逻辑程序设计或高性能计算。依赖于所挖掘的数据类型或给定的数据挖掘应用,数据挖掘系统也可以集成空间数据分析、信息检索、模式识别、图形分析、信号处理、计算机图形学、Web技术、经济、商业、生物信息学或心理学领域的技术。

由于数据挖掘源于多个学科,因此在数据挖掘研究中就产生了大量的、各种不同类型的数据挖掘系统。这样,就需要对数据挖掘系统给出一个清楚的分类。这种分类可以帮助用户区分数据挖掘系统,确定出最适合其需要的数据挖掘系统。根据不同的标准,数据挖掘系统可以有如下分类:

1)根据挖掘的数据库类型进行分类。

数据挖掘系统可以根据挖掘的数据库类型进行分类。数据库系统本身可以根据不同的标准(如数据模型,或数据或所涉及的应用类型)来分类,每一类都可能需要自己的数据挖掘技术。这样,数据挖掘系统就可以据此进行相应的分类。

例如,如果是根据数据模型来分类,我们可以有关系的、事务的、面向对象的、对象-关系的或数据仓库的数据挖掘系统。如果是根据所处理的数据的特定类型分类,我们可以有空间的、时间序列的、文本的或多媒体的数据挖掘系统,或是WWW的数据挖掘系统。

2)根据挖掘的知识类型进行分类。

数据挖掘系统可以根据所挖掘的知识类型进行分类。即根据数据挖掘的功能,如特征化、区分、关联、分类聚类、孤立点分析和演变分析、偏差分析、类似性分析等进行分类。一个全面的数据挖掘系统应当提供多种和/或集成的数据挖掘功能。

此外,数据挖掘系统也可以根据所挖掘的知识的粒度或抽象层进行区分,包括概化知识(在高抽象层),原始层知识(在原始数据层),或多层知识(考虑若干抽象层)。一个高级的数据挖掘系统应当支持多抽象层的知识发现。

数据挖掘系统还可以分类为挖掘数据规则性(通常出现的模式)和数据不规则性(如异常或孤立点)这几种。一般地,概念描述、关联分析、分类、预测和聚类挖掘数据规律,将孤立点作为噪声排除。这些方法也能帮助检测孤立点。

3)根据所用的技术进行分类。

数据挖掘系统也可以根据所用的数据挖掘技术进行分类。这些技术可以根据用户交互程度(例如自动系统、交互探查系统、查询驱动系统),或利用的数据分析方法(例如面向数据库或数据仓库的技术、机器学习、统计学、可视化、模式识别、神经网络等)来描述。复杂的数据挖掘系统通常采用多种数据挖掘技术,或是采用有效的、集成的技术,结合一些方法的优点。

第 27 页 共 27 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top