基于Kmeans算法的平面点集聚类系统毕业设计doc.docx
- 文档编号:1679475
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:23
- 大小:196.17KB
基于Kmeans算法的平面点集聚类系统毕业设计doc.docx
《基于Kmeans算法的平面点集聚类系统毕业设计doc.docx》由会员分享,可在线阅读,更多相关《基于Kmeans算法的平面点集聚类系统毕业设计doc.docx(23页珍藏版)》请在冰豆网上搜索。
基于Kmeans算法的平面点集聚类系统毕业设计doc
基于K-means算法的平面点集聚类系统毕业设计
1绪论
随着计算机硬件和软件技术的飞速发展,尤其是数据库技术的普及,人们面临着日益扩张的数据海洋,原来的数据分析工具已无法有效地为决策者提供决策支持所需要的相关知识,从而形成一种独特的现象“丰富的数据,贫乏的知识”。
数据挖掘(DataMining)又称为数据库中知识发现(KnowledgeDiscoveryformDatabase,KDD),它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。
目前是在大量的数据中发现人们感兴趣的知识。
常用的数据挖掘技术包括关联分析、异类分析、分类与预测、聚类分析以及演化分析等。
由于数据库中收集了大量的数据,聚类分析已经成为数据挖掘领域的重要技术之一,本文中介绍的K-means算法就是聚类分析中应用最广泛的一种聚类算法。
1.1研究意义及背景
面对信息技术的日新月异,人们利用信息技术生产和搜集数据的能力大幅度提高,大量的数据库被用于商业管理、政府办公、科学研究和工程开发等等,要想使数据真正成为一个公司的资源,只有充分利用它为公司自身的业务决策和战略发展服务才行,否则大量的数据可能成为包袱,数据挖掘和知识发现技术应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
人们把原始数据看作是形成知识的源泉,就像从矿石中采矿一样。
原始数据可以是结构化的,如关系数据库中的数据,也可以是半结构化的,如文本、图形、图像数据,甚至是分布在网络上的异构型数据。
发现知识的方法可以是数学的,也可以是非数学的可以是演绎的,也可以是归纳的。
挖掘出的知识可以被用于信息管理。
查询优化、决策支持、过程控制等,还可以用于数据自身的维护。
因此,数据挖掘是一门交叉学科,涉及人工智能技术、统计技术与数据库技术等多种技术。
它汇聚了不同领域的研究者,尤其是数据库、人工智能、数理统计、可视化、并行计算等方面的学者和工程技术人员。
聚类是数据挖掘技术研究中的重要技术的一种,能有效的通过分析数据并从中发现有用的信息。
聚类将数据对象分组成为若干个类或簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大,通过聚类,人们能够识别密集和稀疏的区域,发现全局的分布模式以及数据属性之间有趣的相互关系。
聚类分析在客户分类、基因识别、文本分类、空间数据处理、卫星照片分析、医疗图像自动检测等领域有着广泛的应用,而其本身的研究也是一个蓬勃发展的领域,数据挖掘、统计学、机器学习、空间数据库技术、生物学和市场学的发展推动着聚类分析研究的进展,使它已成为数据挖掘研究中的一个热点,在市场分析中,通过聚类分析能帮助决策者识别不同特征的客户群以及各客户群的行为特征在生物工程研究中,聚类分析能够用于推导动植物的分类,按照功能对基因进行划分并获取种群中的固有结构特征在非关系数据库领域如空间数据库领域,聚类分析能够识别具有相同地理特征的区域以及该区域的环境和人的特征在信息检索领域,聚类分析能够对文档进行分类,提高检索效率。
聚类分析将大量数据划分为性质相同的子类,便于了解数据的分布情况。
与其他数据挖掘方法不同,在进行聚类分析前用户一般并不知道数据集的特征。
因此,从某种角度看,聚类分析是一种无监督的学习过程,是基于观察的学习而不是基于实例的学习。
1.2系统设计要求
本系统主要是通过对K-means算法的理解,实现利用K-means聚类技术对平面点集进行聚类。
具体要求:
(1)通过界面实现平面点集的输入输出;
(2)利用K-means聚类技术对平面点集进行聚类;
(3)通过平面图显示聚类结果。
1.3本文目的
本文所研究的K-means聚类技术是聚类算法中划分方法里面应用最广泛的一种方案,通过对K-means聚类算法的理解应用,体会其优点和缺点,并将其进行系统实现。
2研究现状及设计目标
2.1国内外相关研究现状
聚类分析作为统计学的一个分支,己被广泛地研究了多年,主要集中在基于距离的聚类分析。
基于K均值、k-medoids(k-中心点)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中。
在机器学习领域,聚类是无指导学习的一个例子。
与分类不同,聚类和无指导学习不依赖预先定义的类和带类标号的训练实例。
由于这个原因,聚类是观察式学习,而不是示例式学习。
在概念聚类中,一组对象只有当它们可以被一个概念描述时才形成一个簇,这不同于基于几何距离度量相似度的传统聚类。
聚类分析的研究工作集中在为大型数据库的有效和实际的聚类分析寻求适当的方法,目前的研究方向包括下列几个方面:
(1)算法的可伸缩性:
在很多聚类算法中,数据对象小于200个的小数据集合上鲁棒性执行多种数据模型;而对于包含几百万个数据对象的大规模数据库进行聚类时,将会导致有不同的偏差结果,这就需要聚类算法具有高度的可伸缩性,能有效地处理海量数据;
(2)处理不同类型属性的能力:
设计的很多算法是用于聚类数值类型的数据,但在实际应用中可能要求聚类其他类型的数据,如分类/标称类型(categofical/nominal),序数型(ordinal),二元(binary)数据,或者这些数据类型的混合;
(3)发现任意形状的聚类:
许多聚类算法是基于欧几里德距离,趋向于发现具有相近密度和尺寸的球状簇。
但一个簇可能是任意形状的,提出能发现任意形状簇的算法非常重要;
(4)用于决定输入参数的领域知识最小化:
在聚类分析中,许多聚类算法要求用户输入一定的参数,如希望簇的数目。
聚类结果对于输入参数很敏感,通常参数较难确定,尤其是对于含有高维对象的数据集更是如此。
要求入工输入参数不但加重了用户的负担,而且也使聚类质量难以控制;
(5)对于输入记录顺序不敏感:
一些聚类算法对于输入数据的顺序是敏感的。
如对于同一个数据集合,以不同的顺序提交给同一个算法时,可能产生差别很大的聚类结果。
研究和开发对数据输入顺序不敏感的算法具有重要的意义;
(6)高维性:
一个数据库可能含有若干维或者属性。
很多聚类算法擅长处理低维数据,一般只涉及两到三维。
通常最多在三维的情况下能够很好地判断聚类的质量。
聚类数据对象在高维空间是非常有挑战性的,尤其是考虑到这样的数据可能高度偏斜,非常稀疏;
(7)处理噪声数据的能力:
在现实应用中绝大多数的数据都包含了孤立点,空缺、未知数据或者错误的数据。
有些聚类算法对于这样的数据敏感,将会导致质量较低的聚类结果;
(8)基于约束的聚类:
在实际应用中有可能需要在各种约束条件下进行聚类。
既要找到满足特定的约束,又要具有良好聚类特性的数据分组是一项具有挑战性的任务;
(9)可解释性和可用性:
通常用户希望聚类结果是可解释的,可理解的和可用的。
因此,应用目标如何影响聚类方法的选择也是一项重要的研究课题。
2.2现行研究存在的问题及解决办法
聚类就是根据最大化类内的相似性、最小化类间的相似性原则对数据对象进行分组的一个过程。
其结果就是一个个由数据对象组成的簇,每个簇内的对象之间具有很高的相似性,而簇间的对象则很不相似。
聚类的应用越来越广泛,在经济学、生物学、气象学、医药学、信息工程和工程技术等许多领域都有着十分重要的作用。
因此,对聚类的要求也越来越高,提出准确且又高效的聚类算法刻不容缓。
人们已经提出了很多聚类算法,比如有基于划分的K-MEANS算法、CLARANS算法;基于层次的BIRCH算法、CURE算法;基于网格的STING算法、WaveCluster算法等。
但是这些算法都存在着不足,所以就存在如何选择参数的问题,不适当的选择将会大大影响算法的结果。
2.2.1K-means的基本思想
给定类的个数k,随机挑选k个对象为初始聚类中心,利用距离最近的原则,将其余数据集对象分到k个类中去,聚类的结果由k个聚类中心来表达。
算法采用迭代更新的方法,通过判定给定的聚类目标函数,每一次迭代过程都向目标函数值减少的方向进行。
在每一轮中,依据k个参照点将其周围的点分别组成k个类,而每个类的几何中心将被作为下一轮迭代的参照点,迭代使得选取的参照点越来越接近真实的类几何中心,使得类内对象的相似性最大,类间对象的相似性最小。
2.2.2K-means的优点
K-means算法有三个优点:
(1)是解决聚类问题的一种经典算法,简单、快捷;
(2)对处理大数据集,该算法是相对可伸缩和高效率的。
因为它的复杂度是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。
通常k< (3)当结果簇是密集的,而簇与簇之间的区别明显时,它的效果较好。 2.2.3聚类分析中常用的距离计算函数 当前聚类分析中常用距离计算算法有明氏距离、马氏距离、兰氏距离。 1.明氏(Minkowski)距离 (2.1) 当q取1,2,∞。 时,则分别得绝对距离、欧式(Euclid)距离、切比雪夫(Chebyshev)距离。 本系统所应用的距离算法是欧氏距离。 2.马氏(Mahalanois)距离 (2.2) ∑是样本矩阵A的协方差阵,是总体分布的协差估计量。 马氏距离是明氏距离的改进,它对于一切线性变换是不变的,克服了明氏距离受量纲影响的缺点;马氏距离也部分克服了多重相关性。 3.兰氏(Lance)距离 (2.3) 兰氏距离克服了明氏距离受量纲影响的缺点,但没有考虑多重相关性。 2.2.4聚类方法分析 聚类分析是直接比较各事物之间的性质,将性质相近的归为一类,将性质差别较大的归入不同的类。 在医学实践中也经常需要做分类工作,如根据病人的一系列症状、体征和生化检查的结果,判断病人所患疾病的类型;或对一系列检查方法及其结果,将之划分成某几种方法适合用于甲类病的检查,另几种方法适合用于乙类病的检查,等等。 聚类分析被广泛研究了许多年。 基于聚类分析的工具已经被加入到许多统计分析软件包或系统中,如S-Plus、SPSS,以及SAS。 大体上,聚类算法可以划分为如下几类: (1)划分方法。 给定一个包含n个对象或数据行,划分方法将数据集划分为k个子集(划分)。 其中每个子集均代表一个聚类(k<=n)。 代表算法为K-means算法、K-medoids算法和CLARANS算法; (2)层次方法。 该方法就是通过分解所给定的数据对象集来创建一个层次。 它存在的缺陷就是在进行(组)分解或合并之后无法回溯。 将循环再定位与层次方法结合起来使用常常是有效的,如BIRCH和CURE,就是基于这种组合方法设计的; (3)基于密度的方法。 只要临近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类。 DBSCAN是一个有代表性的基于密度的方法。 它根据一个密度阈值来控制簇的增长; (4)基于网格的方法。 基于网格方法将对象空间划分为有限数目的单元以形成网格结构。 其主要优点是它的处理速度很快,其处理时间独立于数据对象的数目,只与量化空间中每一维的单元数目有关。 STING就是一个典型的基于网格的方法; (5)基于模型的方法。 该方法就是为每个聚类假设一个模型,然后再去发现符合相应模型的数据对象。 它根据标准统计方法并考虑到噪声或异常数据,可以自动确定聚类个数;因而它可以产生很多的聚类方法。 2.2.5其他聚类算法 1.K-medoid算法 K-medoid算法和K-means算法是最典型的划分方法,算法的处理思路基本相同,K-medoid算法有三种实现方式PAM,CLARA和CLARANS。 K-means算法后面我们会重点介绍。 PAM(PartitionAroundMedoid)方法: 对于一个数据库D,D中含有N个元素: 作为参数需给出要生成的簇的个数K(1≤k≤N)。 PAM方法首先随机选择k个对象作为簇的中心,对于每一个中心点O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Kmeans 算法 平面 集聚 系统 毕业设计 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)