毕业设计(论文)-基于k-means算法的平面点集聚类系统[管理资料]
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Keywords:Data Mining;Clustering Analysis; K-m展,尤其是数据库技术的普及,人们面临着日益扩张的数据海洋,原来的数据分析工具已无法有效地为决策者提供决策支持所需要的相关知识,从而形成一种独特的现象“丰富的数据,贫乏的知识”。数据挖掘(Data Mining)又称为数据库中知识发现(Knowledge Discovery form Database,KDD),它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。目前是在大量的数据中发现人们感兴趣的知识。
(6)高维性:一个数据库可能含有若干维或者属性。很多聚类算法擅长处理低维数据,一般只涉及两到三维。通常最多在三维的情况下能够很好地判断聚类的质量。聚类数据对象在高维空间是非常有挑战性的,尤其是考虑到这样的数据可能高度偏斜,非常稀疏;
(7)处理噪声数据的能力:在现实应用中绝大多数的数据都包含了孤立点,空缺、未知数据或者错误的数据。有些聚类算法对于这样的数据敏感,将会导致质量较低的聚类结果;
人们已经提出了很多聚类算法,比如有基于划分的K-MEANS算法、CLARANS算法;基于层次的BIRCH算法、CURE算法;基于网格的STING算法、WaveCluster算法等。但是这些算法都存在着不足,所以就存在如何选择参数的问题,不适当的选择将会大大影响算法的结果。
2.2.1
给定类的个数k,随机挑选k个对象为初始聚类中心,利用距离最近的原则,将其余数据集对象分到k个类中去,聚类的结果由k个聚类中心来表达。算法采用迭代更新的方法,通过判定给定的聚类目标函数,每一次迭代过程都向目标函数值减少的方向进行。在每一轮中,依据k个参照点将其周围的点分别组成k个类,而每个类的几何中心将被作为下一轮迭代的参照点,迭代使得选取的参照点越来越接近真实的类几何中心,使得类内对象的相似性最大,类间对象的相似性最小。
This paper is about the research ofK-means.At first,some related concepts of clustering are given.The chief point of the paper is the research onK-means.K-means,O(n) time complexity,is a partition method that it is easy to use and can work well with large data set.The system is to achieve its algorithm and interface.
2
2.1
聚类分析作为统计学的一个分支,己被广泛地研究了多年,主要集中在基于距离的聚类分析。基于K均值、k-medoids(k-中心点)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中。
在机器学习领域,聚类是无指导学习的一个例子。与分类不同,聚类和无指导学习不依赖预先定义的类和带类标号的训练实例。由于这个原因,聚类是观察式学习,而不是示例式学习。在概念聚类中,一组对象只有当它们可以被一个概念描述时才形成一个簇,这不同于基于几何距离度量相似度的传统聚类。
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。人们把原始数据看作是形成知识的源泉,就像从矿石中采矿一样。原始数据可以是结构化的,如关系数据库中的数据,也可以是半结构化的,如文本、图形、图像数据,甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的可以是演绎的,也可以是归纳的。挖掘出的知识可以被用于信息管理。查询优化、决策支持、过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,涉及人工智能技术、统计技术与数据库技术等多种技术。它汇聚了不同领域的研究者,尤其是数据库、人工智能、数理统计、可视化、并行计算等方面的学者和工程技术人员。
基于K-means算法的平面点集聚类系统
院系
北方软件学院
专业
计算机科学与技术(软件工程)
班级
学号
姓名
指导教师
负责教师
沈阳航空航天大学
2011年6月
摘
聚类是数据挖掘领域中重要的技术之一,用于发现数据中未知的分类。聚类分析已经有了很长的研究历史,其重要性已经越来越受到人们的肯定。聚类算法是机器学习、数据挖掘和模式识别等研究方向的重要研究内容之一,在识别数据对象的内在关系方面,具有极其重要的作用。聚类主要应用于模式识别中的语音识别、字符识别等,机器学习中的聚类算法应用于图像分割,图像处理中,主要用于数据压缩、信息检索。聚类的另一个主要应用是数据挖掘、时空数据库应用、序列和异常数据分析等。此外,聚类还应用于统计科学,同时,在生物学、地质学、地理学以及市场营销等方面也有着重要的作用。
(4)用于决定输入参数的领域知识最小化:在聚类分析中,许多聚类算法要求用户输入一定的参数,如希望簇的数目。聚类结果对于输入参数很敏感,通常参数较难确定,尤其是对于含有高维对象的数据集更是如此。要求入工输入参数不但加重了用户的负担,而且也使聚类质量难以控制;
(5)对于输入记录顺序不敏感:一些聚类算法对于输入数据的顺序是敏感的。如对于同一个数据集合,以不同的顺序提交给同一个算法时,可能产生差别很大的聚类结果。研究和开发对数据输入顺序不敏感的算法具有重要的意义;
Abstract
Clustering is one of the most important technologies of data mining,which is used to discover unknown classification in data set.As it has a long history of research,the importance of clustering is affirmed by people.Clustering algorithms is one of the most important algorithms which is researched extensively in machine learning,data mining and pattern recognition.It has important effect on identify intra-connection between objects.Clustering is applied in sound recognition,character recognition of pattern recognition and so on.Clustering algorithms in machine learning are applied in image segmentation and image processing which can be used to deal with data compression and information search.Another important application is applied in data mining,space database,sequence and anomaly data analysis and other fields such as statistic,biology,geognosy,geography and market.
本文是对聚类算法K-means的研究。首先介绍了聚类技术的相关概念。其次重点对K-means算法进行了分析研究,K-means算法是一种基于划分的方法,该算法的优点是简单易行,时间复杂度为O(n),并且适用于处理大规模数据。本系统主要是对其进行算法和界面实现。
关键词:数据挖掘;聚类分析;K-means
常用的数据挖掘技术包括关联分析、异类分析、分类与预测、聚类分析以及演化分析等。由于数据库中收集了大量的数据,聚类分析已经成为数据挖掘领域的重要技术之一,本文中介绍的K-means算法就是聚类分析中应用最广泛的一种聚类算法。
1.1
面对信息技术的日新月异,人们利用信息技术生产和搜集数据的能力大幅度提高,大量的数据库被用于商业管理、政府办公、科学研究和工程开发等等,要想使数据真正成为一个公司的资源,只有充分利用它为公司自身的业务决策和战略发展服务才行,否则大量的数据可能成为包袱,数据挖掘和知识发现技术应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。
(2)处理不同类型属性的能力:设计的很多算法是用于聚类数值类型的数据,但在实际应用中可能要求聚类其他类型的数据,如分类/标称类型(categofical/nominal),序数型(ordinal),二元(binary)数据,或者这些数据类型的混合;
(3)发现任意形状的聚类:许多聚类算法是基于欧几里德距离,趋向于发现具有相近密度和尺寸的球状簇。但一个簇可能是任意形状的,提出能发现任意形状簇的算法非常重要;
(8)基于约束的聚类:在实际应用中有可能需要在各种约束条件下进行聚类。既要找到满足特定的约束,又要具有良好聚类特性的数据分组是一项具有挑战性的任务;
(9)可解释性和可用性:通常用户希望聚类结果是可解释的,可理解的和可用的。因此,应用目标如何影响聚类方法的选择也是一项重要的研究课题。
2.2
聚类就是根据最大化类内的相似性、最小化类间的相似性原则对数据对象进行分组的一个过程。其结果就是一个个由数据对象组成的簇,每个簇内的对象之间具有很高的相似性,而簇间的对象则很不相似。聚类的应用越来越广泛,在经济学、生物学、气象学、医药学、信息工程和工程技术等许多领域都有着十分重要的作用。因此,对聚类的要求也越来越高,提出准确且又高效的聚类算法刻不容缓。
聚类是数据挖掘技术研究中的重要技术的一种,能有效的通过分析数据并从中发现有用的信息。聚类将数据对象分组成为若干个类或簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大,通过聚类,人们能够识别密集和稀疏的区域,发现全局的分布模式以及数据属性之间有趣的相互关系。聚类分析在客户分类、基因识别、文本分类、空间数据处理、卫星照片分析、医疗图像自动检测等领域有着广泛的应用,而其本身的研究也是一个蓬勃发展的领域,数据挖掘、统计学、机器学习、空间数据库技术、生物学和市场学的发展推动着聚类分析研究的进展,使它已成为数据挖掘研究中的一个热点,在市场分析中,通过聚类分析能帮助决策者识别不同特征的客户群以及各客户群的行为特征在生物工程研究中,聚类分析能够用于推导动植物的分类,按照功能对基因进行划分并获取种群中的固有结构特征在非关系数据库领域如空间数据库领域,聚类分析能够识别具有相同地理特征的区域以及该区域的环境和人的特征在信息检索领域,聚类分析能够对文档进行分类,提高检索效率。聚类分析将大量数据划分为性质相同的子类,便于了解数据的分布情况。与其他数据挖掘方法不同,在进行聚类分析前用户一般并不知道数据集的特征。因此,从某种角度看,聚类分析是一种无监督的学习过程,是基于观察的学习而不是基于实例的学习。
聚类分析的研究工作集中在为大型数据库的有效和实际的聚类分析寻求适当的方法,目前的研究方向包括下列几个方面:
(1)算法的可伸缩性:在很多聚类算法中,数据对象小于200个的小数据集合上鲁棒性执行多种数据模型;而对于包含几百万个数据对象的大规模数据库进行聚类时,将会导致有不同的偏差结果,这就需要聚类算法具有高度的可伸缩性,能有效地处理海量数据;
1.2
本系统主要是通过对K-means算法的理解,实现利用K-means聚类技术对平面点集进行聚类。
具体要求:
(1)通过界面实现平面点集的输入输出;
(2)利用K-means聚类技术对平面点集进行聚类;
(3)通过平面图显示聚类结果。
1.3
本文所研究的K-means聚类技术是聚类算法中划分方法里面应用最广泛的一种方案,通过对K-means聚类算法的理解应用,体会其优点和缺点,并将其进行系统实现。
(6)高维性:一个数据库可能含有若干维或者属性。很多聚类算法擅长处理低维数据,一般只涉及两到三维。通常最多在三维的情况下能够很好地判断聚类的质量。聚类数据对象在高维空间是非常有挑战性的,尤其是考虑到这样的数据可能高度偏斜,非常稀疏;
(7)处理噪声数据的能力:在现实应用中绝大多数的数据都包含了孤立点,空缺、未知数据或者错误的数据。有些聚类算法对于这样的数据敏感,将会导致质量较低的聚类结果;
人们已经提出了很多聚类算法,比如有基于划分的K-MEANS算法、CLARANS算法;基于层次的BIRCH算法、CURE算法;基于网格的STING算法、WaveCluster算法等。但是这些算法都存在着不足,所以就存在如何选择参数的问题,不适当的选择将会大大影响算法的结果。
2.2.1
给定类的个数k,随机挑选k个对象为初始聚类中心,利用距离最近的原则,将其余数据集对象分到k个类中去,聚类的结果由k个聚类中心来表达。算法采用迭代更新的方法,通过判定给定的聚类目标函数,每一次迭代过程都向目标函数值减少的方向进行。在每一轮中,依据k个参照点将其周围的点分别组成k个类,而每个类的几何中心将被作为下一轮迭代的参照点,迭代使得选取的参照点越来越接近真实的类几何中心,使得类内对象的相似性最大,类间对象的相似性最小。
This paper is about the research ofK-means.At first,some related concepts of clustering are given.The chief point of the paper is the research onK-means.K-means,O(n) time complexity,is a partition method that it is easy to use and can work well with large data set.The system is to achieve its algorithm and interface.
2
2.1
聚类分析作为统计学的一个分支,己被广泛地研究了多年,主要集中在基于距离的聚类分析。基于K均值、k-medoids(k-中心点)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中。
在机器学习领域,聚类是无指导学习的一个例子。与分类不同,聚类和无指导学习不依赖预先定义的类和带类标号的训练实例。由于这个原因,聚类是观察式学习,而不是示例式学习。在概念聚类中,一组对象只有当它们可以被一个概念描述时才形成一个簇,这不同于基于几何距离度量相似度的传统聚类。
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。人们把原始数据看作是形成知识的源泉,就像从矿石中采矿一样。原始数据可以是结构化的,如关系数据库中的数据,也可以是半结构化的,如文本、图形、图像数据,甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的可以是演绎的,也可以是归纳的。挖掘出的知识可以被用于信息管理。查询优化、决策支持、过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,涉及人工智能技术、统计技术与数据库技术等多种技术。它汇聚了不同领域的研究者,尤其是数据库、人工智能、数理统计、可视化、并行计算等方面的学者和工程技术人员。
基于K-means算法的平面点集聚类系统
院系
北方软件学院
专业
计算机科学与技术(软件工程)
班级
学号
姓名
指导教师
负责教师
沈阳航空航天大学
2011年6月
摘
聚类是数据挖掘领域中重要的技术之一,用于发现数据中未知的分类。聚类分析已经有了很长的研究历史,其重要性已经越来越受到人们的肯定。聚类算法是机器学习、数据挖掘和模式识别等研究方向的重要研究内容之一,在识别数据对象的内在关系方面,具有极其重要的作用。聚类主要应用于模式识别中的语音识别、字符识别等,机器学习中的聚类算法应用于图像分割,图像处理中,主要用于数据压缩、信息检索。聚类的另一个主要应用是数据挖掘、时空数据库应用、序列和异常数据分析等。此外,聚类还应用于统计科学,同时,在生物学、地质学、地理学以及市场营销等方面也有着重要的作用。
(4)用于决定输入参数的领域知识最小化:在聚类分析中,许多聚类算法要求用户输入一定的参数,如希望簇的数目。聚类结果对于输入参数很敏感,通常参数较难确定,尤其是对于含有高维对象的数据集更是如此。要求入工输入参数不但加重了用户的负担,而且也使聚类质量难以控制;
(5)对于输入记录顺序不敏感:一些聚类算法对于输入数据的顺序是敏感的。如对于同一个数据集合,以不同的顺序提交给同一个算法时,可能产生差别很大的聚类结果。研究和开发对数据输入顺序不敏感的算法具有重要的意义;
Abstract
Clustering is one of the most important technologies of data mining,which is used to discover unknown classification in data set.As it has a long history of research,the importance of clustering is affirmed by people.Clustering algorithms is one of the most important algorithms which is researched extensively in machine learning,data mining and pattern recognition.It has important effect on identify intra-connection between objects.Clustering is applied in sound recognition,character recognition of pattern recognition and so on.Clustering algorithms in machine learning are applied in image segmentation and image processing which can be used to deal with data compression and information search.Another important application is applied in data mining,space database,sequence and anomaly data analysis and other fields such as statistic,biology,geognosy,geography and market.
本文是对聚类算法K-means的研究。首先介绍了聚类技术的相关概念。其次重点对K-means算法进行了分析研究,K-means算法是一种基于划分的方法,该算法的优点是简单易行,时间复杂度为O(n),并且适用于处理大规模数据。本系统主要是对其进行算法和界面实现。
关键词:数据挖掘;聚类分析;K-means
常用的数据挖掘技术包括关联分析、异类分析、分类与预测、聚类分析以及演化分析等。由于数据库中收集了大量的数据,聚类分析已经成为数据挖掘领域的重要技术之一,本文中介绍的K-means算法就是聚类分析中应用最广泛的一种聚类算法。
1.1
面对信息技术的日新月异,人们利用信息技术生产和搜集数据的能力大幅度提高,大量的数据库被用于商业管理、政府办公、科学研究和工程开发等等,要想使数据真正成为一个公司的资源,只有充分利用它为公司自身的业务决策和战略发展服务才行,否则大量的数据可能成为包袱,数据挖掘和知识发现技术应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。
(2)处理不同类型属性的能力:设计的很多算法是用于聚类数值类型的数据,但在实际应用中可能要求聚类其他类型的数据,如分类/标称类型(categofical/nominal),序数型(ordinal),二元(binary)数据,或者这些数据类型的混合;
(3)发现任意形状的聚类:许多聚类算法是基于欧几里德距离,趋向于发现具有相近密度和尺寸的球状簇。但一个簇可能是任意形状的,提出能发现任意形状簇的算法非常重要;
(8)基于约束的聚类:在实际应用中有可能需要在各种约束条件下进行聚类。既要找到满足特定的约束,又要具有良好聚类特性的数据分组是一项具有挑战性的任务;
(9)可解释性和可用性:通常用户希望聚类结果是可解释的,可理解的和可用的。因此,应用目标如何影响聚类方法的选择也是一项重要的研究课题。
2.2
聚类就是根据最大化类内的相似性、最小化类间的相似性原则对数据对象进行分组的一个过程。其结果就是一个个由数据对象组成的簇,每个簇内的对象之间具有很高的相似性,而簇间的对象则很不相似。聚类的应用越来越广泛,在经济学、生物学、气象学、医药学、信息工程和工程技术等许多领域都有着十分重要的作用。因此,对聚类的要求也越来越高,提出准确且又高效的聚类算法刻不容缓。
聚类是数据挖掘技术研究中的重要技术的一种,能有效的通过分析数据并从中发现有用的信息。聚类将数据对象分组成为若干个类或簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大,通过聚类,人们能够识别密集和稀疏的区域,发现全局的分布模式以及数据属性之间有趣的相互关系。聚类分析在客户分类、基因识别、文本分类、空间数据处理、卫星照片分析、医疗图像自动检测等领域有着广泛的应用,而其本身的研究也是一个蓬勃发展的领域,数据挖掘、统计学、机器学习、空间数据库技术、生物学和市场学的发展推动着聚类分析研究的进展,使它已成为数据挖掘研究中的一个热点,在市场分析中,通过聚类分析能帮助决策者识别不同特征的客户群以及各客户群的行为特征在生物工程研究中,聚类分析能够用于推导动植物的分类,按照功能对基因进行划分并获取种群中的固有结构特征在非关系数据库领域如空间数据库领域,聚类分析能够识别具有相同地理特征的区域以及该区域的环境和人的特征在信息检索领域,聚类分析能够对文档进行分类,提高检索效率。聚类分析将大量数据划分为性质相同的子类,便于了解数据的分布情况。与其他数据挖掘方法不同,在进行聚类分析前用户一般并不知道数据集的特征。因此,从某种角度看,聚类分析是一种无监督的学习过程,是基于观察的学习而不是基于实例的学习。
聚类分析的研究工作集中在为大型数据库的有效和实际的聚类分析寻求适当的方法,目前的研究方向包括下列几个方面:
(1)算法的可伸缩性:在很多聚类算法中,数据对象小于200个的小数据集合上鲁棒性执行多种数据模型;而对于包含几百万个数据对象的大规模数据库进行聚类时,将会导致有不同的偏差结果,这就需要聚类算法具有高度的可伸缩性,能有效地处理海量数据;
1.2
本系统主要是通过对K-means算法的理解,实现利用K-means聚类技术对平面点集进行聚类。
具体要求:
(1)通过界面实现平面点集的输入输出;
(2)利用K-means聚类技术对平面点集进行聚类;
(3)通过平面图显示聚类结果。
1.3
本文所研究的K-means聚类技术是聚类算法中划分方法里面应用最广泛的一种方案,通过对K-means聚类算法的理解应用,体会其优点和缺点,并将其进行系统实现。