什么是CURE算法?


CURE代表“使用代表点的聚类”。它是一种聚类算法,使用多种技术来构建一种能够处理大型数据集、异常值以及具有非球形结构和非均匀大小的聚类的方法。CURE通过使用聚类中的几个代表点来定义聚类。

这些点将捕捉聚类的几何形状和结构。第一个代表点被选择为距离聚类中心最远的点,而其余的点则被选择为距离所有先前选择的点最远的点。通过这种方法,代表点是关联性地良好分布的。选择的多个点是一个参数,但发现10或更多个值运行良好。

由于选择了代表点,因此它们会向中心收缩一个因子𝛼。这有助于缓和异常值的影响,异常值通常距离中心更远,因此收缩幅度更大。例如,距离中心10个单位的代表点可以移动3个单位(对于𝛼 = 0.7),而距离中心1个单位的代表点可以移动0.3个单位。

CURE利用层次聚类过程的特定特性,在聚类阶段的两个多个点处去除异常值。首先,如果一个聚类增长缓慢,那么这可能意味着它主要包含异常值,因为根据定义,异常值远离其他值,并且不会经常与其他点合并。

在CURE中,这种第一个异常值消除过程通常出现在聚类数量为初始点数的1/3时。第二个异常值消除过程出现在多个聚类数量达到K(所需的多个聚类数量)的级别时。此时,会移除小聚类。

由于CURE的最坏情况复杂度为$\mathrm{O(m^2logm)}$,因此它不能精确地用于大型数据集。CURE使用两种方法来加速聚类过程。第一种方法是获取一个随机样本,并在样本数据点上执行层次聚类。接下来进行最后一步,将数据集中每个剩余点分配到一个聚类中,方法是选择具有最近代表点的聚类。

在某些情况下,聚类所需的样本量很大,需要第二种更高级的技术。在这种情况下,CURE将样本数据进行分区,并在每个分区中对点进行聚类。此预聚类过程之后是中间聚类的聚类,以及最后一步,将数据集中每个点分配到一个聚类中。

更新时间: 2022年2月14日

2K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

立即开始
广告