一种改进的基于密度的DBSCAN聚类算法

一种改进的基于密度的DBSCAN聚类算法
一种改进的基于密度的DBSCAN聚类算法

第25卷 第4期2007年12月 广西师范大学学报:自然科学版Jo ur nal o f Guangx i No rma l U niv ersity:N atural Science Edition

V o l.25 No.4Dec.2007收稿日期:2007-06-25

基金项目:国家电网公司软课题研究项目(SG ZL [2003]229)

通讯联系人:王翠茹(1954—),女,河北保定人,华北电力大学教授。E -ma il :https://www.360docs.net/doc/f816049954.html,

一种改进的基于密度的DBSCAN 聚类算法

王翠茹,朵春红

(华北电力大学计算机学院,河北保定071003)

摘 要:主要讨论数据挖掘领域中一种基于密度的D BSCA N 聚类算法,并对算法进行改进。利用取样技术缩

小数据库的规模,减少算法的运行时间。利用遗传算法对聚类结果进行优化,保证聚类的质量。给出了一种基

于取样的D BSCA N 算法及其遗传优化。最后实验证明了算法的有效性。

关键词:数据挖掘;聚类;DBSCA N 算法;取样;遗传算法

中图分类号:T P 301.6 文献标识码:A 文章编号:1001-6600(2007)04-0104-04

近年来,大量数据被存储到空间数据库中,如何提高查询效率和从大量数据中提取有用的模式显得尤为重要。聚类分析是数据挖掘领域广为研究的课题之一[1]。其基本思想是:按照数据的相似性和差异性,将数据划分为若干组,同组的数据尽量相似,不同组的数据尽量相异[2]。迄今为止,已经提出了许多聚类算法,主要有分割法、层次法、密度法、网格法和模型法等[3]

。1 DBSCA N 聚类算法

Ester M artin 等人提出的DBSCAN 聚类算法[4,5]是一种基于密度的聚类算法。该算法将具有足够高

密度的区域划分为一类,并可以在带有噪声的空间数据库中发现任意形状的聚类。DBSCAN 算法首先从数据库中选择任意的一个对象p ,然后查找该对象p 关于Ep s 和M inPts 的可密度到达的所有对象。如果对象p 关于Ep 1s 的邻域内所有对象个数大于某个阀值MinPts ,则该对象p 为核心对象,邻域中的点将作为下一次的考察对象,否则对象p 被暂时标记为噪声点。若对象p 是核心对象,则在数据库中存在一个关于Ep s 和M inPts 的类C ,类C 能够被其中的任意一个核心对象所确定。

在DBSCAN 算法中,从一个核心对象密度可达的所有数据对象是通过反复进行区域查询来获取,这种查询由R *-树帮助实现。因此,在进行聚类之前,必须建立R *-树,并把结果按距离排序,产生k -dist 图。建立R *

-树和绘制k -dist 图都是非常耗时的工作,大规模数据库尤其如此。由于DBSCAN 直接对整个数据库进行操作,且进行聚类时使用了一个全局性的表征密度的参数,因此具有比较明显的弱点: 当数据量增大时,要求较大的内存支持,I /O 消耗也很大。 变量Ep s 、MinPts 是全局唯一的,因此当数据分布不均匀或参数选取不当时聚类质量较差。2 SDGO 算法

SDGO 算法(sampling DBSCA N w ith genetic optimization )的基本思想是:首先确定最小的数据取样量,按取样率从数据集中随机选取数据,对取样数据应用DBSCAN 算法,然后应用遗传算法对聚类结果进行优化,最后进行遗漏点处理及类合并。由于取样技术显著压缩了问题规模,而遗传算法又可以对结果进行全局最优化处理,因此在时间性能和聚类质量上都能获得较满意的结果。

2.1 数据取样

取样数据库应能够有效代表原数据库,若取样率太低,必然会丢失原数据库的某些特质,导致聚类效果失真。取样率必须不小于某一阀值。本文选取Cherno ff bounds 确定的最小取样数据量

[6,7]

m in N s =f N +N u nu m log 1 +N u num log 1 2+2f u nu m log 1 ,(1)

其中N 为整个数据库包含的数据量; u nu m 为最小类包含的数据量。式(1)表示当取样数据量不少于m in N s 时,u num 中被取到f u num 个数据的概率不低于 ,0≤f ≤1。

2.2 遗传算法

遗传算法[8,9]

的主要思想是基于C.R.Darw in 的生物进化论和G.M endel 的遗传学。它从某一随机产生的或是特定的初始群体出发(作为父本),按照一定的操作规则,如选择、交叉、变异等,不断地迭代计算,并根据每一个个体的适应度值,保留优良品种,淘汰次品,引导搜索过程向最优解逼近。

染色体编码方式。本文采用二进制的编码方式。每条染色体包含N ×M 个基因链,其中每个基因链代表一维的数据.由于原始数据中各个属性的取值范围可能相差很大,因此需要首先对数据进行变换以统一基因链的长度。对数据进行正规化处理,即将各维数据都变换到相同的区间,确定基因链的长度为S ,此时,每条染色体的长度为:N ×M ×S 。

适应度函数。对于每个个体,与离它最近的核心对象的距离差的平方记做 。 越小,表示聚类划分的质量越好。遗传算法的目的是搜索使 值最小的聚类中心,因此适应度函数f 应该与 值成反比。本文采用的适应度函数为F (k )=1。

遗传操作数。选择操作采用带最优保存策略的随机联赛选择。首先将上一代种群中适应度最高的个体保存到下一代种群中,然后从种群中随机选取n 个个体(0

交叉操作采用单点交叉,对于编码长度为L 的个体,首先随机生成交叉点位置cp (1

变异操作仅对发生变异的位进行“非”运算即可。变异概率一般取值为0.001~0.1。

2.3 遗漏点处理及类合并

取样数据库毕竟不能完全代表原数据库,取样的多少和取样的均匀度都会对最终聚类结果产生影响。有两种不利情况可能会出现,即点遗漏和类分裂。对于遗漏点,先得到它的邻域,然后查找邻域中是不是存在已属于某一类的数据点,如果存在这样的点,则离遗漏点最近的那个点所在的类就是遗漏点所在的类;若不存在这样的数据点,则表示遗漏点为真正的噪声。对于类合并,对其中一个类的边界点进行区域查询,得到这些边界点的邻域。如果某一边界点为核心点且包含有另一个类的点(这些点中存在核心点),则这两个类合并为一个类。

2.4 SDGO 算法描述

输入:控制参数、聚类数据集 输出:聚类结果

初始化控制参数。包括样本集大小,交叉概率p c ,变异概率p m ,迭代次数T ,设置进化代数计数器t =0,Ep s 和MinPts ;

根据式(1)计算最小取样量min N s 并确定取样率(保证取样数据量大于最小取样量);

对数据集进行取样,依Ep s 和M inPts 对取样数据应用DBSCAN 算法,将产生的核心对象作为初始种群;

对数据进行正规化处理并用二进制编码;

计算群体P (t )中各个个体的适应度;

群体P (t )经过选择、交叉和变异操作后得到下一代群体P (t +1);

若t ≤T ,则t :=t +1,转到 ;否则得到群体P (t ),即优化的核心对象; 遗漏点处理及类合并;

输出聚类结果,算法结束。105

第4期 王翠茹等:一种改进的基于密度的DBSCA N 聚类算法

FU NCTION Ex pand Cluster (p ,D ,Ep s ,MinPts )

{ retriev e the Eps-neig hbor ho od N Eps (p )of p ;

IF N Eps (p )

mark p as noise and RET URN;

ELSE

select a new cluster-id and mark all objeets in N Eps (p )w ith current cluster-id;

push all objects fr om N Eps (p )\{p }onto the stack seeds;

WHILE NOT seeds .em pty ()DO

{ CurrentObject :=seeds .top ();

retr ieve the Eps-neighborhood N Ep s (currentObject)of cur rentobject;

IF N Ep s (currentObject) ≥M inpts

select all objeets in N Eps (currento bject )no t yet classified o r aremarked as noise ;

push the unclassified objects o nto seeds and m ar k all o f these objects w ith current

cluster-id;

seeds .pop ();

RET URN

}

}

Expand Cluster (p ,D ,Ep s ,M inpts )函数用来检查p 邻域中的核心对象,并进行类的扩展。在算法中使用了堆栈,把对象p 的邻域中的对象全部放入堆栈中,然后分别考察这些对象是否是核心对象。3 仿真试验

本文的测试数据集来自Dr .JSrg Sander 提供的仿照DBSCAN 中DataBase 2生成的数据集(DB 2)[10],数据量为300(图1)。将SDGO 算法与DBSCAN 算法的聚类结果进行了比较,对比实验聚类结果见图2和图3。算法的参数取值为:取样率:30%,最大进化代数:50,交叉概率:0.8,变异概率:0.01,Ep s :10,M inPts:10

图1 Dat aBase2F ig.1 D ataBase 2 图2 SD GO 算法聚类结果Fig.2 Cluster ing result o f SDG O 图3 DBSCA N 算法聚类结果F ig.3 Clust ering result of DBSCA N 表1是数据库规模为50000时,SDGO 和DBSCAN 两种算法的对比。由此可知,SDGO 算法的聚类结果优于DBSCAN 算法,而且SDGO 算法的时间复杂度要低于DBSCAN 算法。

表1 SDGO 与DBSCAN 聚类质量比较

Tab .1 Comparison of clustering quality between SDGO and DBSCAN

类 别

DBSCA N SDG O (20%)SDG O (30%)SD GO (50%)聚类数

35262732噪音点

020816072遗漏点

0539412196

106广西师范大学学报:自然科学版 第25卷

4 结论

聚类分析是数据挖掘中广为研究的课题之一。本文从DBSCAN 算法出发,针对其局限性,提出了一种基于取样的DBSCAN 算法及其遗传优化,并对其进行了测试。取样技术显著压缩了问题规模,降低了对硬件的要求,而遗传算法又可以对结果进行全局最优化处理,避免陷入局部最优解,保证聚类质量,并能在时间性能上获得较满意的结果。

随着空间数据库规模的日益增大,数据信息日渐复杂,在许多应用中很难选取合适的聚类参数。因此,开发自适应的聚类算法将成为我们今后研究的一项重要内容。

参 考 文 献:

[1]石陆魁,何丕廉.一种基于密度的高效聚类算法[J].计算机应用,2005,25(8):1824-1826,1839.

[2]周水庚,周傲英,曹晶.基于数据分区的D BSCA N 算法[J ].计算机研究与发展,2000,37(10):1153-1159.

[3]荣秋生,颜君彪,郭国强.基于DBSCA N 聚类算法的研究与实现[J].计算机应用,2004,24(4):45-46,61.

[4]ZHO U Ao -y ing ,Z HO U Shui-g eng ,CA O Jing ,et al.A ppro aches for scaling DBSCA N alg or ithm to lar ge spatial

databases[J].Jo ur nal of Computer Science and T echno lo gy ,2000,15(6):509-526.

[5]周水庚,周傲英,金文,等.F DBSCA N :一种快速DBSCA N 算法[J ].软件学报,2000,11(6):735-744.

[6]周水庚,范晔,周傲英.基于数据取样的D BSCA N 算法[J].小型微型计算机系统,2000,21(12):1270-1273.

[7]张曙红,孙建勋,诸克军.基于遗传优化的采样模糊C 均值聚类算法[J].系统工程理论与实践,2004(5):121-125.

[8]陈国良.遗传算法及其应用[M ].北京:人民邮电出版社,1996.

[9]孙思.利用遗传思想进行数据划分的D BSCA N 算法研究[D ].重庆:重庆大学计算机学院,2005.

[10]陈卓,孟庆春,魏振钢,等.一种基于网格和密度凝聚点的快速聚类算法[J].哈尔滨工业大学学报,2005,37(12):1654-

1657.

An Improved Density-based DBSCA N Clustering A lgorithm

WANG Cui -ru ,DUO Chun -hong

(Computer I nstitute ,N o rth China Elect ric P ow er U niver sity ,Baoding 071003,China )

Abstract :The paper mainly discusses a clustering algo rithm based on density in data mining ,and improves DBSCAN alg orithm.Sampling -based DBSCAN can reduce the size of the database,and save a lot of time.Genetic algor ithm can o ptimize cluster ing result,and ensure cluster ing quality.It presents SDGO alg orithm (a Sampling -based DBSCAN alg orithm w ith Genetic Optimization ).The end of the paper is the ex perimentation for the alg orithm's efficiency .

Key words :data mining;clustering ;DBSCAN ;sampling ;genetic algo rithm

(责任编辑 李小玲)107第4期 王翠茹等:一种改进的基于密度的DBSCA N 聚类算法

(完整word版)各种聚类算法介绍及对比

一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchical methods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法和分裂的层次聚类算法(agglomerative和divisive),也可以理解为自下而上法(bottom-up)和自上而下法(top-down)。自下而上法就是一开始每个个体(object)都是一个 类,然后根据linkage寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的“类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据Linkage判断“类” 的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张/浓缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如循环定位。 2)Hierarchical methods中比较新的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用,而且数据类型是numerical。首先利用树的结构对对象集进行划分,然后再利用其它聚类方法对这些聚类进行优化;ROCK(A Hierarchical Clustering Algorithm for Categorical Attributes)主要用在categorical的数据类型上;Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂度很高,O(n^2)。 2、层次聚类的流程 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。这里给出采用最小距离的凝聚层次聚类算法流程: (1) 将每个对象看作一类,计算两两之间的最小距离; (2) 将距离最小的两个类合并成一个新类; (3) 重新计算新类与所有类之间的距离; (4) 重复(2)、(3),直到所有类最后合并成一类。

各种聚类算法及改进算法的研究

论文关键词:数据挖掘;聚类算法;聚类分析论文摘要:该文详细阐述了数据挖掘领域的常用聚类算法及改进算法,并比较分析了其优缺点,提出了数据挖掘对聚类的典型要求,指出各自的特点,以便于人们更快、更容易地选择一种聚类算法解决特定问题和对聚类算法作进一步的研究。并给出了相应的算法评价标准、改进建议和聚类分析研究的热点、难点。上述工作将为聚类分析和数据挖掘等研究提供有益的参考。 1 引言随着经济社会和科学技术的高速发展,各行各业积累的数据量急剧增长,如何从海量的数据中提取有用的信息成为当务之急。聚类是将数据划分成群组的过程,即把数据对象分成多个类或簇,在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。它对未知数据的划分和分析起着非常有效的作用。通过聚类,能够识别密集和稀疏的区域,发现全局的分布模式,以及数据属性之间的相互关系等。为了找到效率高、通用性强的聚类方法人们从不同角度提出了许多种聚类算法,一般可分为基于层次的,基于划分的,基于密度的,基于网格的和基于模型的五大类。 2 数据挖掘对聚类算法的要求(1)可兼容性:要求聚类算法能够适应并处理属性不同类型的数据。(2)可伸缩性:要求聚类算法对大型数据集和小数据集都适用。(3)对用户专业知识要求最小化。(4)对数据类别簇的包容性:即聚类算法不仅能在用基本几何形式表达的数据上运行得很好,还要在以其他更高维度形式表现的数据上同样也能实现。(5)能有效识别并处理数据库的大量数据中普遍包含的异常值,空缺值或错误的不符合现实的数据。(6)聚类结果既要满足特定约束条件,又要具有良好聚类特性,且不丢失数据的真实信息。(7)可读性和可视性:能利用各种属性如颜色等以直观形式向用户显示数据挖掘的结果。(8)处理噪声数据的能力。(9)算法能否与输入顺序无关。 3 各种聚类算法介绍随着人们对数据挖掘的深入研究和了解,各种聚类算法的改进算法也相继提出,很多新算法在前人提出的算法中做了某些方面的提高和改进,且很多算法是有针对性地为特定的领域而设计。某些算法可能对某类数据在可行性、效率、精度或简单性上具有一定的优越性,但对其它类型的数据或在其他领域应用中则不一定还有优势。所以,我们必须清楚地了解各种算法的优缺点和应用范围,根据实际问题选择合适的算法。 3.1 基于层次的聚类算法基于层次的聚类算法对给定数据对象进行层次上的分解,可分为凝聚算法和分裂算法。 (1)自底向上的凝聚聚类方法。这种策略是以数据对象作为原子类,然后将这些原子类进行聚合。逐步聚合成越来越大的类,直到满足终止条件。凝聚算法的过程为:在初始时,每一个成员都组成一个单独的簇,在以后的迭代过程中,再把那些相互邻近的簇合并成一个簇,直到所有的成员组成一个簇为止。其时间和空间复杂性均为O(n2)。通过凝聚式的方法将两簇合并后,无法再将其分离到之前的状态。在凝聚聚类时,选择合适的类的个数和画出原始数据的图像很重要。 [!--empirenews.page--] (2)自顶向下分裂聚类方法。与凝聚法相反,该法先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终结条件。其主要思想是将那些成员之间不是非常紧密的簇进行分裂。跟凝聚式方法的方向相反,从一个簇出发,一步一步细化。它的优点在于研究者可以把注意力集中在数据的结构上面。一般情况下不使用分裂型方法,因为在较高的层很难进行正确的拆分。 3.2 基于密度的聚类算法很多算法都使用距离来描述数据之间的相似性,但对于非凸数据集,只用距离来描述是不够的。此时可用密度来取代距离描述相似性,即基于密度的聚类算法。它不是基于各种各样的距离,所以能克服基于距离的算法只能发现“类圆形”的聚类的缺点。其指导思想是:只要一个区域中的点的密度(对象或数据点的数目)大过某个阈值,就把它加到与之相近的聚类中去。该法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而可发现任意形状的簇,并可用来过滤“噪声”数据。常见算法有DBSCAN,DENCLUE 等。[1][2][3]下一页 3.3 基于划分的聚类算法给定一个N个对象的元组或数据库,根据给定要创建的划分的数目k,将数据划分为k个组,每个组表示一个簇类(<=N)时满足如下两点:(1)每个组至少包含一个对象;(2)每个对

基于密度的最佳聚类数确定方法.

基于密度的最佳聚类数确定方法 [关键字]聚类评估,聚类数,聚类有效性指标 0 引言 聚类是数据挖掘研究中重要的分析手段,其目的是将数据集中对象聚集成类,使得同一类中的对象是相似的,而不同类中的对象是不同的。迄今研究者已经提出了为数众多的聚类算法,并已经在商务智能、图形分析、生物信息等领域得到了广泛应用。作为一种非监督学习的方法,对学习得到的聚类结果进行评估是非常有必要的。因为许多聚类算法需要用户给定数据集的聚类数量,而在实际应用中这通常是事先不知道的。确定数据集的聚类数问题目前仍是聚类分析研究中的基础性难题之一 [1][2]。 聚类评估用于评价聚类结果的质量,这被认为是影响聚类分析成功与否的重要因素之一[3]。它在聚类分析过程中的位置如图1所示。聚类评估的一些重要问题包括确定数据集的聚类趋势、确定正确的类个数、将聚类分析结果与已知的客观结果比较等,本文主要研究其中的最佳聚类数的确定。 通常最佳聚类数的确定是通过以下计算过程来确定的。在给定的数据集上,通过使用不同的输入参数(如聚类数)运行特定的聚类算法,对数据集进行不同的划分,计算每种划分的聚类有效性指标,最后比较各个指标值的大小或变化情况,符合预定条件的指标值所对应的算法参数被认为是最佳的聚类数 [4]。 迄今为止,已有各种类型的度量指标从不同角度来评估数据集划分的有效性,这些指标称为聚类有效性指标(Clustering Validation Indices)。一般地,用于评估聚类的各方面的评估度量指标可分成以下两类[5]。 1)外部指标(External index):指聚类分析的评价函数是针对基准问题的,其簇的个数及每个数据对象的正确分类均为已知。代表性外部指标有熵、纯度、F-measure等。 2)内部指标(Internal index):指数据集结构未知的情况下,聚类结果的评价只依靠数据集自身的特征和量值。在这种情况下,聚类分析的度量追求两个目标:类内紧密度和类间分离度。这也是本文的主要研究领域,代表性内部指标有DB,CH,XB,SD等。 从其他不同角度,聚类有效性指标又可分为分割指标与层次指标,模糊指标与非模糊指标,统计指标与几何指标。 用内部指标来评估聚类有效性,获取数据集最佳划分或最佳聚类数的过程一般分为以下4步[6]:

改进的K-means聚类算法及应用

改进的K-means聚类算法及应用 摘要:传统的k-means算法需要事先确定初始聚类中心,聚类精确程度不高。针对以上问题,本文结合熵值法和动态规划算法来对传统的k-means算法进行改进,提出了基于熵值法及动态规划的改进k-means算法。熵值法用来修订算法的距离计算公式,以提高算法的聚类精确程度, 动态规划算法用来确定算法的初始聚类中心。将改进算法应用于矿井监测传感器聚类中,结果显示较传统的k-means算法,改进算法效率有了明显提高,聚类精确程度有较大增强。 关键词:k-means;动态规划;熵值法;聚类精确度;矿井监测传感器 【abstract】the traditional k-means has sensitivity to the initial clustering centers, and its clustering accuracy is low. to against these short comings, an improved k-means algorithm based on the combination of dynamic programming algorithm and entropy method is proposed. the entropy method is used to amend the distance calculating formula to improve the clustering accuracy, and dynamic programming algorithm is used to define the initial cluster centers. the result of the simulation on the clustering in the mine monitoring sensors shows that the proposed algorithm has better

各种密度聚类算法

什么是聚类?聚类:- 将一个对象的集合分割成几个类,每个类内的对象之间是相似的,但与其他类的对象是不相似的。评判聚类好坏的标准:1 ,能够适用于大数据量。 2 ,能应付不同的数据类型。 3 ,能够发现不同类型的聚类。 4 ,使对专业知识的要求降到最低。 5 ,能应付脏数据。 6 ,对于数据不同的顺序不敏感。 7 ,能应付很多类型的数据。 8 ,模型可解释,可使用。 二,聚类所基于的数据类型。 聚类算法通常基于“数据矩阵”和“ Dissimilarity 矩阵”。 怎么样计算不同对象之间的距离? 1 ,数值连续的变量(体重,身高等):度量单位的选取对于聚类的结果的很重要的。例如将身高的单位从米变为尺,将体重的单位从公斤变为磅将对聚类的结果产生很大的影响。为了避免出现这种情况,我们必须将数据标准化:将数据中的单位“去掉”。 A, 计算绝对背离度。B, 计算标准量度。下面我们考虑怎样来计算两个对象之间的差异。 1 ,欧几里得距离。 2 ,曼哈顿距离。这两种算法有共同之处:d(i,j)>=0,d(i,i)=0, d(i,j)=d(j,i),d(i,j)=

[改进的聚类算法在农业经济类型划分中的应用] kmeans聚类算法改进

[改进的聚类算法在农业经济类型划分中的应用] kmeans聚类算法改进 一、引言 吉林省各地自然、经济、社会条件各有差异,对农业经济的 影响很大。为了稳定提高粮食综合生产能力,促进农业经济结构 进一步优化。就需要准确地对省内各市县农业经济类型进行划 分,以期做到合理的资源优化配置。本文采用一种改进的k-均值 聚类分析技术对所采集的吉林省各县市农业生产的相关数据进行 分析,目的是对吉林省各地农业经济类型进行划分,揭示各地区 农业生产的特点和优势,为加快全省农业经济发展提供依据。 二、改进的聚类算法基本原理 改进的聚类算法的基本思想是:首先对数据集合进行系统聚 类分析,得到聚类树及相应的聚类中心矩阵;接着从聚类树中查 找较早形成的大类,并计算其聚类中心,这样我们就得到了较好 的聚类数k及比较具有代表性的初试聚类中心集合;最后通过k- 均值算法进行聚类分析。 虽然此改进算法需要我们人为的设定条件,但是这些条件都 是在进行系统聚类分析之后的数据基础上得来的,比经典的k-均 值算法的直接判断聚类数和随机抽取初始聚类中心要具有明显的 优势。根据本文待挖掘的数据量和系统聚类的结果,初始条件设

定如下:被判定为较早形成的大类聚类,其包含的数据对象应大于4,与下一次合并的聚类间距越小越好,且应小于所有聚类过程中的聚类间距均值。 三、改进的聚类算法在吉林农业经济类型划分中的应用 分类指标的选择 农业经济系统是一个多因素、多层次、结构复杂的系统,要正确地划分农业经济类型,首先必须选择一套能全面反映当前农业经济状况的指标体系。为此我们根据吉林农业的实际情况,选择对农业经济发展起主导作用的因子作为聚类指标,通过实地调查和对统计资料的综合分析,选定以下10个指标:X1 ,年平均降水量;X2 ,年平均温度;X3 ,农业人口;X4 ,每公顷粮食产量;X5 ,农业机械总动力;X6 ,粮食面积占耕地面积比例; X7 ,林业产值占农业总产值比例;X8 ,牧业产值占农业总产值比例;X9,渔业产值占农业总产值比例;X10 ,人均收入。 数据准备 根据以上10项指标,我们通过查阅xx年《吉林省统计年鉴》可以得到吉林省各地区农业经济各项指标的原始数据,如表1所示。 数据来源:根据xx年《吉林省统计年鉴》整理。 数据挖掘结果 首先对以上数据进行标准化转换,之后采用系统聚类分析法得到聚类树,分析聚类树及聚类间距我们可以得到初始聚类数为

改进C均值聚类算法

改进C 均值聚类算法 C 均值算法属于聚类技术中一种基本的划分方法,具有简单、快速的优点。其基本思想是选取c 个数据对象作为初始聚类中心,通过迭代把数据对象划分到不同的簇中,使簇内部对象之间的相似度很大,而簇之间对象的相似度很小。对C 均值算法的初始聚类中心选择方法进行了改进,提出了一种从数据对象分布出发动态寻找并确定初始聚类中心的思路以及基于这种思路的改进算法。 1、C-均值聚类算法 ① 给出n 个混合样本,令1=I ,表示迭代运算次数,选取c 个初始聚合中心)1(j Z ,c j ,...,2,1=; ② 计算每个样本与聚合中心的距离))(,(I Z x D j k ,n k ,....,2,1=,c j ,...,2,1=。 若},...,2,1)),(,({min ))(,(,...,2,1n k I Z x D I Z x D j k c j i k ===,则i k w x ∈。 ③ 计算c 个新的集合中心:∑== +j n k j k j j x n I Z 1 )(1)1(,c j ,...,2,1=。 ④ 判断:若)()1(I Z I Z j j ≠+,c j ,...,2,1=,则1+=I I ,返回②,否则算法结束。 2、C-均值改进算法的思想 在C-均值算法中,选择不同的初始聚类中心会产生不同的聚类结果且有不同的准确率,此方法就是如何找到与数据在空间分布上尽可能相一致的初始聚类中心。对数据进行划分,最根本的目的是使得一个聚类中的对象是相似的,而不同聚类中的对象是不相似的。如果用距离表示对象之间的相似性程度,相似对象之间的距离比不相似对象之间的距离要小。如果能够寻找到C 个初始中心,它们分别代表了相似程度较大的数据集合,那么就找到了与数据在空间分布上相一致的初始聚类中心。 目前,初始聚类中心选取的方法有很多种,在此仅介绍两种: 1)基于最小距离的初始聚类中心选取法 其主要思想: (1) 计算数据对象两两之间的距离; (2) 找出距离最近的两个数据对象,形成一个数据对象集合A1 ,并将它们从总的数据集合U 中删除; (3) 计算A1 中每一个数据对象与数据对象集合U 中每一个样本的距离,找出在U 中与A1 中最近的数据对象,将它并入集合A1 并从U 中删除, 直到A1 中的数据对象个数到达一定阈值; (4) 再从U 中找到样本两两间距离最近的两个数据对象构成A2 ,重复上面的过程,直到形成k 个对象集合; (5) 最后对k 个对象集合分别进行算术平均,形成k 个初始聚类中心。 这种方法和Huffman 算法一样。后一种算法介绍是是基于最小二叉树的方法,看

各种密度聚类算法

一,什么是聚类? 聚类: - 将一个对象的集合分割成几个类,每个类内的对象之间是相似的,但与其他类的对象是不相似的。评判聚类好坏的标准: 1 ,能够适用于大数据量。 2 ,能应付不同的数据类型。 3 ,能够发现不同类型的聚类。 4 ,使对专业知识的要求降到最低。 5 ,能应付脏数据。 6 ,对于数据不同的顺序不敏感。 7 ,能应付很多类型的数据。 8 ,模型可解释,可使用。 二,聚类所基于的数据类型。 聚类算法通常基于“数据矩阵”和“ Dissimilarity 矩阵”。 怎么样计算不同对象之间的距离? 1 ,数值连续的变量(体重,身高等):度量单位的选取对于聚类的结果的很重要的。例如将身高的单位从米变为尺,将体重的单位从公斤变为磅将对聚类的结果产生很大的影响。为了避免出现这种情况,我们必须将数据标准化:将数据中的单位“去掉”。 A, 计算绝对背离度。 B, 计算标准量度。 下面我们考虑怎样来计算两个对象之间的差异。 1 ,欧几里得距离。 2 ,曼哈顿距离。这两种算法有共同之处: d(i,j)>=0,d(i,i)=0, d(i,j)=d(j,i),d(i,j)=

一种基于密度的快速聚类算法

第37卷第11期 2000年11月计算机研究与发展JOU RNAL O F COM PU T ER R ESEA RCH &D EV ELO PM EN T V o l 137,N o 111N ov .2000 原稿收到日期:1999209220;修改稿收到日期:1999212209.本课题得到国家自然科学基金项目(项目编号69743001)和国家教委博士点教育基金的资助.周水庚,男,1966年生,博士研究生,高级工程师,主要从事数据库、数据仓库和数据挖掘以及信息检索等的研究.周傲英,男,1965年生,教授,博士生导师,主要从事数据库、数据挖掘和W eb 信息管理等研究.曹晶,女,1976年生,硕士研究生,主要从事数据库、数据挖掘等研究.胡运发,男,1940年生,教授,博士生导师,主要从事知识工程、数字图书馆、信息检索等研究. 一种基于密度的快速聚类算法 周水庚 周傲英 曹 晶 胡运发 (复旦大学计算机科学系 上海 200433) 摘 要 聚类是数据挖掘领域中的一个重要研究方向.聚类技术在统计数据分析、模式识别、图像处理等领域有广泛应用.迄今为止人们提出了许多用于大规模数据库的聚类算法.基于密度的聚类算法DBSCAN 就是一个典型代表.以DBSCAN 为基础,提出了一种基于密度的快速聚类算法.新算法以核心对象邻域中所有对象的代表对象为种子对象来扩展类,从而减少区域查询次数,降低I O 开销,实现快速聚类.对二维空间数据测试表明:快速算法能够有效地对大规模数据库进行聚类,速度上数倍于已有DBSCAN 算法. 关键词 空间数据库,数据挖掘,聚类,密度,快速算法,代表对象 中图法分类号 T P 311.13;T P 391 A FAST D ENSIT Y -BASED CL USTER ING AL G OR ITH M ZHOU Shu i 2Geng ,ZHOU A o 2Y ing ,CAO J ing ,and HU Yun 2Fa (D ep a rt m en t of Co mp u ter S cience ,F ud an U n iversity ,S hang ha i 200433) Abstract C lu stering is a p rom ising app licati on area fo r m any fields including data m in ing ,statistical data analysis ,p attern recogn iti on ,i m age p rocessing ,etc .In th is paper ,a fast den sity 2based clu stering algo rithm is developed ,w h ich con siderab ly speeds up the o riginal DB SCAN algo rithm .U n like DB SCAN ,the new DB SCAN u ses on ly a s m all num ber of rep resen tative ob jects in a co re ob ject’s neighbo rhood as seeds to exp and the clu ster so that the execu ti on frequency of regi on query can be decreased ,and con sequen tly the I O co st is reduced .Experi m en tal resu lts show that the new algo rithm is effective and efficien t in clu stering large 2scale databases ,and it is faster than the o riginal DB SCAN by several ti m es . Key words spatial database ,data m in ing ,clu stering ,den sity ,fast algo rithm ,rep resen tative ob jects 1 概 述 近10多年来,数据挖掘逐渐成为数据库研究领域的一个热点[1].其中,聚类分析就是广为研究的问题之一.所谓聚类,就是将数据库中的数据进行分组,使得每一组内的数据尽可能相似而不同组内的数据尽可能不同.聚类技术在统计数据分析、模式识别、图像处理等领域都有广泛的应用前景.迄今为止,人们已经提出了许多聚类算法[2~7].所有这些算法都试图解决大规模数据的聚类问题.以基于密度的聚类算法DB SCAN [4]为基础,本文提出一种基于密度的快速聚类算法.通过选用核心对象附近区域包含的所有对象的代表对象作为种子对象来扩展类,快速算法减少了区域查询的次数,从而减低了聚类时间和I O 开销 .本文内容安排如下:首先在第2节中介绍基于密度的聚类算法DB SCAN 的基本思想,并分析它的局限

(完整版)X-means:一种针对聚类个数的K-means算法改进

X-means:一种针对聚类个数的K-means算法改进 摘要 尽管K-means很受欢迎,但是他有不可避免的三个缺点:1、它的计算规模是受限的。2、它的聚类个数K必须是由用户手动指定的。3、它的搜索是基于局部极小值的。在本文中,我们引入了前两种问题的解决办法,而针对最后一个问题,我们提出了一种局部补救的措施。根据先前有关算法改进的工作,我们引入了一种根据BIC(Bayesian Information Criterion)或者AIC(Akaike information criterion)得分机制而确定聚类个数的算法,本文的创新点包括:两种新的利用充分统计量的方式,还有一种有效地测试方法,这种方法在K-means算法中可以用来筛选最优的子集。通过这样的方式可以得到一种快速的、基于统计学的算法,这种算法可以实现输出聚类个数以及他们的参量值。实验表明,这种技术可以更科学的找出聚类个数K值,比利用不同的K值而重复使用K-means算法更快速。 1、介绍 K-means算法在处理量化数据中已经用了很长时间了,它的吸引力主要在于它很简单,并且算法是局部最小化收敛的。但是它有三点不可避免的缺点:首先,它在完成每次迭代的过程中要耗费大量的时间,并且它所能处理的数据量也是很少的。第二,聚类个数K值必须由用户自身来定义。第三,当限定了一个确定的K值时,K-means算法往往比一个动态K值的算法表现的更差。我们要提供针对这些问题的解决办法,通过嵌入树型的数据集以及将节点存储为充分统计变量的方式来大幅度提高算法的计算速度。确定中心的分析算法要考虑到泰森多边形边界的几何中心,并且在估计过程的任何地方都不能存在近似的方法。另外还有一种估计方法,“黑名单”,这个列表中将会包含那些需要在指定的区域内被考虑的图心。这种方法不仅在准确度上以及处理数据的规模上都表现的非常好,而这个快速算法在X-means 聚类算法当中充当了结构算法的作用,通过它可以很快的估计K值。这个算法在每次使用 K-means算法之后进行,来决定一个簇是否应该为了更好的适应这个数据集而被分开。决定的依据是BIC得分。在本文中,我们阐述了“黑名单”方法如何对现有的几何中心计算BIC 得分,并且这些几何中心所产生的子类花费不能比一个单纯的K-means聚类算法更高。更进一步的,我们还通过缓存状态信息以及估计是否需要重新计算的方法来改善估计方法。 我们已经用X-means算法进行了实验,验证了它的确比猜K值更加科学有效。X-means 算法可以在人造的或者是真实数据中表现的更好,通过BIC得分机制。它的运行速度也是比K-means更快的。 2、定义 我们首先描述简单的K-means算法应该考虑哪些因素。通过K-means可以把一定量的数据集分为K个数据子集,这K个数据子集分别围绕着K个聚类中心。这种算法保持着K个聚类中心不变,并且通过迭代不断调整这K个聚类中心。在第一次迭代开始之前,K个聚类中心都是随机选取的,算法当聚类中心不再变化的时候返回最佳的结果,在每一次迭代中,算法都要进行如下的动作: 1、对于每一个节点向量,找到距离它最近的聚类中心,归入此类。 2、重新评估每一个图心的位置,对于每一个图心,必须是簇的质心。 K-means聚类算法通过局部最小化每个向量到对应图心的距离来实现聚类。同时,它处理真实数据时是非常慢的。许多情况下,真实的数据不能直接用K-means进行聚类,而要经过二次抽样筛选之后再进行聚类。Ester曾经提出了一种可以从树形数据中获得平衡的抽样数据的方法。Ng和Han曾经提出了一种可以指导概率空间对输入向量的检索模拟模型。

各种聚类算法的比较

各种聚类算法的比较 聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法和用于高维度的聚类算法。摘自数据挖掘中的聚类分析研究综述这篇论文。 1、层次聚类算法 1.1聚合聚类 1.1.1相似度依据距离不同:Single-Link:最近距离、Complete-Link:最远距离、Average-Link:平均距离 1.1.2最具代表性算法 1)CURE算法 特点:固定数目有代表性的点共同代表类 优点:识别形状复杂,大小不一的聚类,过滤孤立点 2)ROCK算法 特点:对CURE算法的改进 优点:同上,并适用于类别属性的数据 3)CHAMELEON算法 特点:利用了动态建模技术 1.2分解聚类 1.3优缺点 优点:适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力 缺点:大大延长了算法的执行时间,不能回溯处理 2、分割聚类算法 2.1基于密度的聚类 2.1.1特点 将密度足够大的相邻区域连接,能有效处理异常数据,主要用于对空间数据的聚类

1)DBSCAN:不断生长足够高密度的区域 2)DENCLUE:根据数据点在属性空间中的密度进行聚类,密度和网格与处理的结合 3)OPTICS、DBCLASD、CURD:均针对数据在空间中呈现的不同密度分不对DBSCAN作了改进 2.2基于网格的聚类 2.2.1特点 利用属性空间的多维网格数据结构,将空间划分为有限数目的单元以构成网格结构; 1)优点:处理时间与数据对象的数目无关,与数据的输入顺序无关,可以处理任意类型的数据 2)缺点:处理时间与每维空间所划分的单元数相关,一定程度上降低了聚类的质量和准确性 2.2.2典型算法 1)STING:基于网格多分辨率,将空间划分为方形单元,对应不同分辨率2)STING+:改进STING,用于处理动态进化的空间数据 3)CLIQUE:结合网格和密度聚类的思想,能处理大规模高维度数据4)WaveCluster:以信号处理思想为基础 2.3基于图论的聚类 2.3.1特点 转换为组合优化问题,并利用图论和相关启发式算法来解决,构造数据集的最小生成数,再逐步删除最长边 1)优点:不需要进行相似度的计算 2.3.2两个主要的应用形式 1)基于超图的划分 2)基于光谱的图划分 2.4基于平方误差的迭代重分配聚类 2.4.1思想 逐步对聚类结果进行优化、不断将目标数据集向各个聚类中心进行重新分配以获最优解

一种基于K-Means局部最优性的高效聚类算法

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.360docs.net/doc/f816049954.html, Journal of Software, Vol.19, No.7, July 2008, pp.1683?1692 https://www.360docs.net/doc/f816049954.html, DOI: 10.3724/SP.J.1001.2008.01683 Tel/Fax: +86-10-62562563 ? 2008 by Journal of Software. All rights reserved. ? 一种基于K-Means局部最优性的高效聚类算法 雷小锋1,2+, 谢昆青1, 林帆1, 夏征义3 1(北京大学信息科学技术学院智能科学系/视觉与听觉国家重点实验室,北京 100871) 2(中国矿业大学计算机学院,江苏徐州 221116) 3(中国人民解放军总后勤部后勤科学研究所,北京 100071) An Efficient Clustering Algorithm Based on Local Optimality of K-Means LEI Xiao-Feng1,2+, XIE Kun-Qing1, LIN Fan1, XIA Zheng-Yi3 1(Department of Intelligence Science/National Laboratory on Machine Perception, Peking University, Beijing 100871, China) 2(School of Computer Science and Technology, China University of Mining and Technology, Xuzhou 221116, China) 3(Logistics Science and Technology Institute, P.L.A. Chief Logistics Department, Beijing 100071, China) + Corresponding author: E-mail: leiyunhui@https://www.360docs.net/doc/f816049954.html, Lei XF, Xie KQ, Lin F, Xia ZY. An efficient clustering algorithm based on local optimality of K-Means. Journal of Software, 2008,19(7):1683?1692. https://www.360docs.net/doc/f816049954.html,/1000-9825/19/1683.htm Abstract: K-Means is the most popular clustering algorithm with the convergence to one of numerous local minima, which results in much sensitivity to initial representatives. Many researches are made to overcome the sensitivity of K-Means algorithm. However, this paper proposes a novel clustering algorithm called K-MeanSCAN by means of the local optimality and sensitivity of K-Means. The core idea is to build the connectivity between sub-clusters based on the multiple clustering results of K-Means, where these clustering results are distinct because of local optimality and sensitivity of K-Means. Then a weighted connected graph of the sub-clusters is constructed using the connectivity, and the sub-clusters are merged by the graph search algorithm. Theoretic analysis and experimental demonstrations show that K-MeanSCAN outperforms existing algorithms in clustering quality and efficiency. Key words: K-MeanSCAN; density-based; K-Means; clustering; connectivity 摘要: K-Means聚类算法只能保证收敛到局部最优,从而导致聚类结果对初始代表点的选择非常敏感.许多研究 工作都着力于降低这种敏感性.然而,K-Means的局部最优和结果敏感性却构成了K-MeanSCAN聚类算法的基 础.K-MeanSCAN算法对数据集进行多次采样和K-Means预聚类以产生多组不同的聚类结果,来自不同聚类结果的 子簇之间必然会存在交集.算法的核心思想是,利用这些交集构造出关于子簇的加权连通图,并根据连通性合并子 簇.理论和实验证明,K-MeanScan算法可以在很大程度上提高聚类结果的质量和算法的效率. 关键词: K-MeanSCAN;基于密度;K-Means;聚类;连通性 中图法分类号: TP18文献标识码: A ? Supported by the National High-Tech Research and Development Plan of China under Grant No.2006AA12Z217 (国家高技术研究发 展计划(863)); the Foundation of China University of Mining and Technology under Grant No.OD080313 (中国矿业大学科技基金) Received 2006-10-09; Accepted 2007-07-17

聚类算法比较

聚类算法: 1. 划分法:K-MEANS算法、K-M EDOIDS算法、CLARANS算法; 1)K-means 算法: 基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后按平均法重新计算各个簇的质心,从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值。 K-Means聚类算法主要分为三个步骤: (1)第一步是为待聚类的点寻找聚类中心 (2)第二步是计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中去 (3)第三步是计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 反复执行(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到要求为止 下图展示了对n个样本点进行K-means聚类的效果,这里k取2: (a)未聚类的初始点集 (b)随机选取两个点作为聚类中心 (c)计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去 (d)计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 (e)重复(c),计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去 (f)重复(d),计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 优点: 1.算法快速、简单; 2.对大数据集有较高的效率并且是可伸缩性的; 3.时间复杂度近于线性,而且适合挖掘大规模数据集。 缺点: 1. 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。 2. 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响。

数据挖掘层次聚类算法研究综述

数据挖掘层次聚类算法研究综述 摘要聚类问题是数据挖掘中的重要问题之一,是一种非监督的学习方法。分层聚类技 术在图像处理、入侵检测和生物信息学等方面有着极为重要的应用,是数据挖掘领域的研究热点之一。本文总结了分层聚类算法技术的研究现状,分析算法性能的主要差异,并指出其今后的发展趋势。 关键词层次聚类,数据挖掘,聚类算法 Review of hierarchical clustering algorithm in Data Mining Abstract Clustering problem of data mining is one of important issues, it is a kind of unsupervised learning methods. Stratified cluster technology in image processing, intrusion detection and bioinformatics has extremely important application and is data mining area of research one of the hotspots. This paper summarizes the layered clustering algorithm technology research, analyzes the main difference arithmetic performance, and pointed out the future development trend. Keywords Hierarchical clustering,Data mining,Clustering algorithm 1引言 随着计算机技术的发展,信息数据越来越多,如何从海量数据中提取对人们有价值的信息已经成为一个非常迫切的问题。由此产生了数据挖掘技术,它是一门新兴的交叉学科,汇集了来自机器学习、模式识别、数据库、统计学、人工智能等各领域的研究成果。聚类分析是数据挖掘中的一个重要研究领域。它在图像处理、入侵检测和生物信息学等方面有着极为重要的应用。数据挖掘是从大量数据中提取出可信、新颖、有效并能被人理解的模式的高级处理过程。其目标是从数据库中发现隐含的、有意义的知识。聚类分析作为一个独立的工具来获得数据分布的情况,是数据挖掘的一个重要研究分支。 在数据挖掘领域,研究工作己经集中在为大型数据库的有效和实际的聚类分析寻找适当的方法。活跃的主题集中在聚类方法的可伸缩性,方法对聚类复杂形状和类型的数据的有效性,高维聚类分析技术,以及针对大型数据库中混合数值和分类数据的聚类方法。迄今为止,人们己经提出了很多聚类算法,它们可以分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法和基于模型的方法,这些算法对于不同的研究对象各有优缺点。在聚类算法当中,划分方法和层次方法是最常见的两类聚类技术,其中划分方法具有较高的执行效率,而层次方法在算法上比较符合数据的特性,所以相对于划分方法聚类的效果比较好。[1] 层次聚类算法和基于划分的K-Means聚类算法是实际应用中聚类分析的支柱,算法简单、快速而且能有效地处理大数据集。层次聚类方法是通过将数据组织为若干组并形成一个相应的树来进行聚类的。根据层是自底而上还是自顶而下形成。一个完全层次聚类的质量由于无法对己经做的合并或分解进行调整而受到影响。但是层次聚类算法没有使用准则函数,它所潜含的对数据结构的假设更少,所以它的通用性更强。 2 基于层次的聚类算法 2.1 凝聚的和分裂的层次聚类 层次聚类是聚类问题研究中一个重要的组成部分。分层聚类的基本原则可以表述为:如

相关文档
最新文档