CURE算法详解

CURE(Clustering Using Representative)算法是一种可伸缩的聚类算法,它克服了“单链”和“组平均”层次聚类的不足,适用于大型数据、离群点和非球形簇。CURE通过选择代表点并根据参数α收缩来处理离群点,空间复杂度与数据集大小呈线性关系,时间复杂度为O(n2logn)。CURE算法包括采样、分割和离群点处理步骤,通过采样和分割加速聚类,减少对大型数据集的影响。在CURE层次聚类过程中,簇间的距离定义为最近的两个代表点之间的距离,采用随机采样和分割来加速算法,同时离群点处理提高了聚类质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CURE算法详解

第二十九次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。这一篇作为可伸缩聚类(Scalable Clustering)算法的第二篇,主要是对CURE(Clustering Using Representative)算法进行详细介绍,其他可伸缩聚类算法的链接可以从《可伸缩聚类算法综述(可伸缩聚类算法开篇)》这篇文章中找到。

CURE算法简介

  CURE(Clustering Using Representative)采用了一种新型的层次聚类算法,这种算法介于“单链”和“组平均”之间,他克服了这两种层次聚类算法的不足之处,如下图所示分别使用“单链”与“组平均”处理图1(a)中的数据,“单链”会将由低密度带连接的两个簇错误的合并为一个簇(如图1(c)所示),而“组平均”得到的簇偏向于球形,因此会将图中瘦长的簇拆散(如图1(b)所示),而CURE算法可以处理大型数据、离群点和具有非球形大小和非均匀大小的簇的数据。

图1 “单链”和“组平均”聚类

  该算法采用簇中的多个代表点来表示一个簇,首先选择簇中距离质心最远的点做为第一个点,然后依次选择距离已选到的点最远的点,直到选到 c c c个点为止(一般选择 c ≥ 10 c\geq{10} c10),这些点捕获了簇的形状和大小。然后将这些选取到的点根据参数 α \alpha α 0 ≤ α ≤ 1 0\leq{\alpha}\leq{1} 0α1)向该簇的质心收缩,距离质心越远的点(例如离群点)的收缩程度越大,因此CURE对离群点是不太敏感的,这种方法可以有效的降低离群点带来的不利影响。
  在得到上述缩减后的代表点后,两个簇之间的距离就可以定义为这两个簇中距离最近的两个代表点之间的距离,距离的数学定义如下

其中,簇 u u u的代表点集合表示为 u . r e p u.rep u.rep d i s t ( ⋅ , ⋅ ) dist\left(\cdot,\cdot\right) dist(,)可以采用 L p L_p Lp或其他距离度量方式。然后在CURE层次聚类算法的每一步中对距离最近的簇进行合并。可以看到,当 α = 0 \alpha=0 α=0时每个代表点都缩减到了该簇的质心上,这相当于“组平均”层次聚类,而当 α = 1 \alpha=1 α=1时每个代表点不会缩减,因此相当于“单链”层次聚类。
  CURE算法的空间复杂度与数据集大小 n n n呈线性关系,而时间复杂度高达 O ( n 2 log ⁡ n ) O\left(n^{2}\log{n}\right) O(n2logn),对于低维数据集该复杂度可以降低到 O ( n 2 ) O\left(n^{2}\right) O(n

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值