Clustering Analysis -- 聚类分析

目录

 

相似系数度量:

1.数量积法

2.夹角余弦

3.相关系数

4.最大最小法

5.算数平均最小法

6.几何平均最小法

7.绝对值指数法

8.指数相似系数法

9.绝对值倒数法

10.绝对值减数法

11.非参数法

12.贴近度法

13.专家打分法

划分聚类方法(PAM)

K均值聚类分析

层次聚类方法

最小距离法(single linkage method)广泛采用的类间距离

最短距离法

最大距离法(complete linkage method)

类平均距离法(average linkage method)

中间距离法

重心法(centroid hierarchical method)

离差平方和(ward method)

类平均法

可变类平均法

可变法

离差平方和法

系统聚类法参数表

BIRCH算法

CURE算法

ROCK算法

基于密度的方法(density-based method)

DBSCAN算法

基于网格的方法(grid-based method)

STING算法

基于模型方法(model-based method)

COBWEB方法(model-based method)

AutoClass方法


聚类分析(cluster analysis)是将样品个体或指标变量按其具有的特性进行分类的一种统计分析方法。

典型的数据聚类基本步骤如下:

l     (1) 对数据集进行表示和预处理,包括数据清洗、特征选择或特征抽取;
l     (2) 给定数据之间的相似度或相异度及其定义方法;
l     (3) 根据相似度,对数据进行划分,即聚类;
l     (4) 对聚类结果进行评估。

 

相似系数度量:

体现对象间的相似程度

1.数量积法

Clustering Analysis -- 聚类分析_第1张图片

2.夹角余弦

Clustering Analysis -- 聚类分析_第2张图片

3.相关系数

Clustering Analysis -- 聚类分析_第3张图片

4.最大最小法

Clustering Analysis -- 聚类分析_第4张图片

5.算数平均最小法

Clustering Analysis -- 聚类分析_第5张图片

6.几何平均最小法

Clustering Analysis -- 聚类分析_第6张图片

7.绝对值指数法

Clustering Analysis -- 聚类分析_第7张图片

8.指数相似系数法

Clustering Analysis -- 聚类分析_第8张图片

9.绝对值倒数法

Clustering Analysis -- 聚类分析_第9张图片

10.绝对值减数法

Clustering Analysis -- 聚类分析_第10张图片

11.非参数法

12.贴近度法

13.专家打分法

划分聚类方法(PAM)

是给定一个有n个对象或元组的的数据库构建k个划分的方法。每个划分为一个类(或簇),并且k<=n

每个类至少包含一个对象,

每个对象必须属于而且只能属于一个类(模糊划分计算除外)

使得一个聚类中对象是“相似”的,而不同聚类中的对象是“不相似”的

K均值聚类分析

   (1)n个数据对象随机选取k个对象作为初始簇中心。

    (2)计算每个簇的平均值,并用该平均值代表相应的簇。

    (3)计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分。

    (4)转步骤(2),重新计算每个(自变化)簇的平均值。这个过程不断重复直到某个准则函数不再明显变化或者聚类的对象不再变化为止。

层次聚类方法

对给定的数据进行层次的分解

凝聚方法( agglomerative )(自底向上)
思想:一开始将每个对象作为单独的一组,然后根据同类相近,异类相异的原则,合并对象,直到所有的组合并成一个,或达到一个终止条件为止。
 
分裂方法( divisive )(自顶向下)
思想:一开始将所有的对象置于一类,在迭代的每一步中,一个类不断地分为更小的类,直到每个对象在单独的一个类中,或达到一个终止条件。
 
l 特点:
l 类的个数不需事先定好
l 需确定距离矩阵
l 运算量要大,适用于处理小样本数据

 

层次的方法缺陷一旦一个步骤(合并或分裂)完成,就不能被撤销或修正,因此产生了改进的层次聚类方法,如

l BIRCH(balanced iterative reducing and clustering using hierarchies) 算法
l CURE(clustering using representatives) 算法
l ROCK( robua clustering using links) 算法等

最小距离法(single linkage method)广泛采用的类间距离

l极小异常值在实际中不多出现,避免极大值的影响

Clustering Analysis -- 聚类分析_第11张图片

最短距离法

定义类与之间的距离为两类最近样品的距离,即为

设类与合并成一个新类记为,则任一类与的距离为

Clustering Analysis -- 聚类分析_第12张图片

l 最短距离法进行聚类分析的步骤如下:

  (1)定义样品之间距离,计算样品的两两距离,得一距离    阵记为D0 ,开始每个样品自成一类,显然这时Dij = dij

  (2)找出距离最小元素,设为Dpq,则将GpGq合并成一个新类,记为Gr,即Gr = GpGq}。合并完距离最短的 选取 取这两个中到点的最短的那个

  (3)按(5.12)计算新类与其它类的距离。

  (4)重复(2)、(3)两步,直到所有元素。并成一类为止。如果某一步距离最小的元素不止一个,则对应这些 最小元素的类可以同时合并。

最大距离法complete linkage method

l 可能被极大值扭曲,删除这些值之后再聚类
Clustering Analysis -- 聚类分析_第13张图片
Clustering Analysis -- 聚类分析_第14张图片
Clustering Analysis -- 聚类分析_第15张图片
再找距离最小两类并类,直至所有的样品全归为一类为止。可以看出最长距离法与最短距离法只有两点不同:
一是类与类之间的距离定义不同;
另一是计算新类与其它类的距离所用的公式不同

类平均距离法(average linkage method

       类平均距离法(average linkage method)类间所有样本点的平均距离

       该法利用了所有样本的信息,被认为是较好的系统聚类法

Clustering Analysis -- 聚类分析_第16张图片

中间距离法

        最短、最长距离定义表示都是极端情况,我们定义类间距离可以既不采用两类之间最近的距离也不采用两类之间最远的距离,

而是采用介于两者之间的距离,称为中间距离法。

 中间距离将类Gp与Gq类合并为类Gr,则任意的类Gk和Gr的距离公式为

设Dkq>Dkp,如果采用最短距离法,则Dkr = Dkp,如果采用
 最长距离法,则Dkr = Dkq。如图式就是取它们(最长距离与最短距离)的中间一点作为计算Dkr的根据。 
l特别当b = - 14,它表示取中间点算距离,公式为

Clustering Analysis -- 聚类分析_第17张图片

重心法centroid hierarchical method

l类的重心之间的距离

l对异常值不敏感,结果更稳定

Clustering Analysis -- 聚类分析_第18张图片

Clustering Analysis -- 聚类分析_第19张图片

Clustering Analysis -- 聚类分析_第20张图片

Clustering Analysis -- 聚类分析_第21张图片

Clustering Analysis -- 聚类分析_第22张图片

离差平方和ward method

Clustering Analysis -- 聚类分析_第23张图片

类平均法

Clustering Analysis -- 聚类分析_第24张图片

可变类平均法

Clustering Analysis -- 聚类分析_第25张图片

可变法

Clustering Analysis -- 聚类分析_第26张图片

离差平方和法

Clustering Analysis -- 聚类分析_第27张图片

Clustering Analysis -- 聚类分析_第28张图片

Clustering Analysis -- 聚类分析_第29张图片

系统聚类法参数表

Clustering Analysis -- 聚类分析_第30张图片

BIRCH算法

通过引入了聚类特征和聚类特征树概念,Zhang 等人提出BIRCH算法[Zhang et al.  1996] 。聚类特征是一个包含关于簇的二元组,给出对象子聚类的信息汇总描述。如果某个子聚类中有Nd维的点或对象,则该子聚类的定义为CF=(NLSSS),其中,N是子类中点的个数,LSN个点的线性和,SS是点的平方和。聚类特征树中所存储的是关于聚类的信息,这些信息是计算聚类和有效利用存储的关键度量。每个叶节点包含一个或多个子聚类,每个子聚类中包含一个或多个对象。一个聚类特征树有两个参数:分支因子B和阈值T,分支因子B定义了每个非叶节点后代的最大数目,阈值参数T给出了存储在树的叶子节点中的子聚类的最大直径。BIRCH算法主要包括扫描数据库和聚类两个阶段。

    (1)扫描数据库,建立一个初始存放于内存的聚类特征树,可以看作数据的多层压缩,试图保留数据内在的聚类结构。一个对象被插入到距其最近的叶节点(子聚类)中时,如果在插入对象后,存储在叶节点中的子聚类的直径大于阈值,那么该叶节点被分裂,也可能有其他节点被分裂。新对象插入后,关于该对象的信息向根节点传递。通过修改阈值,聚类特征树的大小可以改变。如果存储聚类特征树需要的内存大于主存的大小,可以定义一个较大的阈值,并重建聚类特征树。重建过程从旧树的叶子节点建造一个新树。这样,重建树的过程不需要重读所有的对象。因此为了建树,只需读一次数据。采用一些启发式规则和方法。通过额外的数据扫描来处理孤立点和改进CF树的质量。聚类特征树建好后,可以在阶段二被用于任何聚类算法

 (2)BIRCH采用某个聚类算法对聚类特征树的叶节点进行聚类。B1RCH算法具有可伸缩性,算法的时间复杂度为O(n)(不重建聚类特征树时),通过对数据集的首次扫描产生一个基本聚类,二次扫描进一步改进聚类质量并处理异常点。BIRCH算法的处理速度较快,但对非球形簇处理效果不好。

CURE算法

l Guha 等人提出 CURE(clustering using representatives) 算法利用代表点进行聚类,解决了大多数聚类算法偏好球形和相似大小的问题,并且容易处理异常点 [Guha et al.1998] CURE 算法选用数据空间中固定数目的、具有代表性的点代表簇,然后根据一个特定的分数或收缩因子向簇中心“收缩”或将其移动。如果两个簇的代表点距离最近,则将这两个簇合并。
l    由于每个簇有一个以上的代表点,使 CURE 算法可以适应非球形的几何形状,而且簇的收缩或凝聚可以控制异常点的影响,因此 CURE 算法对异常点的处理更健壮。对于大型数据库, CURE 算法有良好的伸缩性,不会降低聚类的质量
l (1) 从源数据集中抽取一个随机样本 S ,包含 s 个对象。
l (2) 将样本 S 分为 p 个划分,每个划分大小为 s p
l     (3) 将每个划分局部聚类成 s pq 聚类,其中 q >l
l     (4) 通过随机采样消除异常数据,若一个簇增长太慢,就删除该簇。
l     (5) 对局部的簇进行再聚类,落在每个新形成的聚类中的代表点,则根据用户定义的收缩因子 a 收缩或向簇中心移动。这些点将用于代表并描绘出聚类的边界。
l     (6) 对簇中的数据标记上相应簇标记。

CURE算法的时间复杂度为O(n),最大问题是无法处理分类属性。

ROCK算法

l Guha 等人于 1999 年提出了一个面向分类属性数据的聚类算法 ROCK [Guha et al. 2000] 。其突出贡献是采用公共近邻(链接)数的全局信息作为评价数据点间相关性的度量标准,而不是传统的基于两点间距离的局部度量函数。
l 算法 11.5 ROCK 算法
l Procedure cluster( S,k )
l ( 1 ) begin
l (2)  link: = compute_links ( S )
l ( 3 ) for each s S do
l (4)    q [ s ]: = build_local_heap ( link, s )
l (5) Q : = build_global_heap ( S,q )
l (6) while size( Q )> k do {
l (7)    u : = extract_max ( Q )
l (8)    v : = max( q [ u ])
l (9)    delete( Q,v )
l (10)    w : = merge( u,v )
l (11)   for each x q [ u ] q [ v ] {
l (12)      link[ x,w ]:=link[ x,u ] + link[ x,v ]
l (13)      delete( q [ x ], u ); delete( q [ x ], v )
l (14)      insert( q [ x ], w , g ( x,w ));insert( q [ w ], x,g ( x,w ))
l (15)      update( Q,x,q [ x ]) 
l (16)    }
l (17) insert( Q,w,q [ w ])
l (18) deallocate( q [ u ]); deallocate( q [ v ])
l (19)  }
l (20) end
l 注意到算法中有两种队列,全局队列 Q 和普通队列 q [ i ] 。算法中 compute_links ( S ) 是预处理计算公共点的数量。

 

l procedure compute_links ( S )
l begin
l Compute inlist [ i ] for every point I in S
l Set link[ I,j ] to be zero for all i,j
l for i : = 1 to n do {
l    N : = inlist[ i ];
l for j : = 1 to | N |-1 do
l    for l : = j +1 to |N| do
l          link[ N [ j ], N[ l ] ]: = link[ N [ j ], N [ l ] ] + 1
l }
l end
在以往的算法中,两个对象之间的距离或相似性只与这两个对象本身有关,而与其他对象无关。 ROCK 算法将这一局部运算扩展成一种全局运算,在计算两个对象之间的距离或相似性时,不仅考虑两个对象本身,还考虑周围邻居的影响,增强了算法的抗噪声能力。为了能够处理大规模的数据, ROCK 也采用随机抽样的方法
 

基于密度的方法(density-based method)

l 主要有 DBSCAN OPTICS
l 思想:
l 只要临近区域的密度超过一定的阈值,就继续聚类
l 特点:
l 可以过滤噪声和孤立点 outlier ,发现任意形状的类

 

l 以空间中的一点为中心,单位体积内点的个数称为该点的密度。基于密度的聚类( density- basedclustering )根据空间密度的差别,把具有相似密度的相邻的点作为一个聚类。密度聚类只要邻近区域的密度 ( 对象或数据点的数目 ) 超过某个阈值,就能够继续聚类。
l 也就是说,对给定类中的每个数据点,在一个给定的区域内必须至少包含某个数目的点。这样,密度聚类方法就可以用来过滤“噪声”异常点数据,发现任意形状的簇。
l    在密度聚类算法中,有基于高密度连接区域的 DBSCAN(Density-based Spatial Clustedng ofApplication with Noise) 算法、通过对象排序识别聚类结构的 OPTICS(Ordering Points To Identify the Clustering Structure) 算法和基于密度分布函数聚类的 DENCLUE( DENsity based CLUstEring ) 算法。
 

DBSCAN算法

Clustering Analysis -- 聚类分析_第31张图片

Clustering Analysis -- 聚类分析_第32张图片

Clustering Analysis -- 聚类分析_第33张图片

基于网格的方法(grid-based method)

Clustering Analysis -- 聚类分析_第34张图片

STING算法

Clustering Analysis -- 聚类分析_第35张图片

基于模型方法(model-based method

Clustering Analysis -- 聚类分析_第36张图片

COBWEB方法(model-based method

Clustering Analysis -- 聚类分析_第37张图片

AutoClass方法

Clustering Analysis -- 聚类分析_第38张图片

Clustering Analysis -- 聚类分析_第39张图片

Clustering Analysis -- 聚类分析_第40张图片

 

你可能感兴趣的:(ᕦ,机器学习,ᕤ,聚类,算法,神经网络,机器学习)