数据挖掘-聚类分析.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据挖掘-聚类分析

数据挖掘-聚类分析 什么是聚类? 聚类,顾名思义就是把一组对象划分成若干类,并且每个类里面对象之间的相似度较高,不同类里面对象之间相似度较低或差异明显。与分类不同的是聚类不依靠给定的类别对对象进行划分。 聚类算法的分类 聚类分析算法很多,大体上可以分为下面5类: 划分方法 层次的方法 基于密度的方法 基于网格的方法 基于模型的方法 划分方法 划分方法就是根据用户输入值K把给定对象分成K组(满足2个条件:1. 每个组至少包含一个对象。2. 每个对象必须且只属于一个组),每组都是一个聚类,然后利用循环再定位技术变换聚类里面的对象,直到客观划分标准(常成为相似函数,如距离)最优为止。典型代表:K-MEANS, K-MEDOIDS。 层次的方法 层次的方法对给定的对象集合进行层次分解。分为2类:凝聚的和分裂的。凝聚的方法也叫自底向上的方法,即一开始将每个对象作为一个单独的簇,然后根据一定标准进行合并,直到所有对象合并为一个簇或达到终止条件为止。分裂的方法也叫自顶向下的方法,即一开始将所有对象放到一个簇中,然后进行分裂,直到所有对象都成为单独的一个簇或达到终止条件为止。典型代表:CURE,BIRCH。 基于密度的方法 基于密度的方法即不断增长所获得的聚类直到邻近(对象)密度超过一定的阀值(如一个聚类中的对象数或一个给定半径内必须包含至少的对象数)为止。典型代表:DBSCAN,OPTICS。 基于网格的方法 基于网格的方法即将对象空间划分为有限数目的单元以形成网格结构。所有聚类操作都在这一网格结构上进行。典型代表:STING。 基于模型的方法 基于模型的方法即为每个聚类假设一个模型,然后按照模型去发现符合的对像。这样的方法经常基于这样的假设:数据是根据潜在的概率分布生成的。主要有2类:统计学方法和神经网络方法。典型代表:COBWEB,SOMS。 K-means算法是一种基于样本间相似性度量的间接聚类方法。 此算法以K为参数,把N个对象分为K个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。相似度的计算根据一个簇中对象的平均值来进行。 此算法的工作过程为:首先从N个数据对象任意选择K个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。 一般都采用均方差作为标准测度函数.K个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。 K-MEANS算法的具体流程如下: 1)从N个数据对象任意选择K个对象作为初始聚类中心; 2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分; 3)重新计算每个(有变化)聚类的均值(中心对象) 4)重复2/3步直到满足既定的条件,算法结束。 数据挖掘聚类算法之K-MEDOIDS 记得前一篇博文写过关于K-MEANS的内容,K-MEANS顾名思义K-均值,通过计算一类记录的均值来代表该类,但是受异常值或极端值的影响比较大,这里介绍另外一种算法K-medodis。 看起来和K-means比较相似,但是K-medoids和K-means是有区别的,不一样的地方在于中心点的选取,在K-means中,我们将中心点取为当前cluster中所有数据点的平均值,在 K-medoids算法中,我们将从当前cluster 中选取这样一个点——它到其他所有(当前cluster中的)点的距离之和最小——作为中心点。 K-MEANS算法的缺点: 产生类的大小相差不会很大,对于脏数据很敏感。 改进的算法:K-medoids方法。 这儿选取一个对象叫做mediod来代替上面的中心的作用,这样的一个medoid就标识了这个类。 K-MEDODIS的具体流程如下: 1)任意选取K个对象作为medoids(O1,O2,…Oi…Ok)。   2)将余下的对象分到各个类中去(根据与medoid最相近的原则);   3)对于每个类(Oi)中,顺序选取一个Or,计算用Or代替Oi后的消耗—E(Or)。选择E最小的那个Or来代替Oi。这样K个medoids就改变了。 4)重复2、3步直到K个medoids固定下来。   不容易受到那些由于误差之类的原因产生的脏数据的影响,但计算量显然要比K-means要大,一般只适合小数据量。

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档