Clustering Stream Data by Exploring the Evolution of Density Mountain
流聚类是许多流数据分析应用中的一个基本问题。与传统的批处理聚类方法相比,流聚类面临两个主要挑战:(1)输入数据是不断变化的,如何有效地增量更新其聚类结果?(ii)鉴于集群随着数据的演化而不断演化,如何捕捉集群演化活动?遗憾的是,现有的流聚类算法既不能实时更新聚类结果,也不能跟踪聚类的演化
本文通过对密度山演化的研究,提出了一种流聚类算法EDMStream。利用密度山对数据分布进行抽象,密度山的变化反映了数据分布的演化。我们通过监测密度山的变化来跟踪星团的演化。我们进一步提供了高效的数据结构和过滤方案,以确保密度山的更新是实时的,这使得在线聚类成为可能。在合成数据集和真实数据集上的实验结果表明,与目前最先进的流聚类算法如DStream、DenStream、DBSTREAM和MR-Stream相比,我们的算法能够更快地响应聚类更新(比最好的竞争对手快7-15倍),同时实现相当的聚类质量。此外,EDMStream还成功捕获了集群演化活动。
面临的问题:在流集群中还有两个额外的关键挑战。首先,流数据应该以高速到达。为了反映底层流数据的变化,流聚类算法需要快速、频繁地更新聚类结果。其次,多个集群可能合并成一个大集群,并且随着时间的推移,单个集群可能被分割成多个小集群。为了捕获聚类演化活动,要求流聚类算法具有跟踪聚类演化的能力。
本文提出了一种基于密度的流聚类算法EDMStream。我们依赖于第一个假设,即星团中心周围有低密度的邻居。然后我们可以画出如图1(a)所示的数据点的密度分布,即密度山。聚类中心在山顶,边界点在山脚下。注意,这是一个说明性的图,这些点在一维空间中。一般情况下,密度山应绘制在一个多维的plot中。我们依赖于第二个假设,即中心点与其他密度较高的点之间有一个相对较大的距离。如图1(b)所示,有两个簇对应两个密度山,两山之间有一个谷。右方密度山的峰距高密度点的距离较大,因为高密度点位于左(高)密度山上,而其他上升到密度峰的点距高密度点的距离较小。因此,在两个密度山之间会出现一个宽的密度谷,而到较高密度点的最近距离(图1(b)中标记为δ)在识别聚类中起着关键作用。只要到最近的高密度点的距离足够大或足够小,就可以检测到数据流的簇演化。
PROBLEM STATEMENT、
我们的目标是发现潜在的簇存在数据流基于这两个观察。1)稠密区被稀疏区分隔;2)最近到达的数据点比过时的数据点在簇表示中起着更重要的作用。在本节中,根据数据流的时效性和无限性,我们将介绍流聚类中使用的基本概念。
Decay Model
在大多数情况下,来自一个流的最新信息反映了新趋势的出现,例如天气监测和股票交易。数据的重要性(新鲜度)应该随着时间的推移而衰减,这样才能捕捉到流的演化特征。一个常见的解决方案是用一个指数依赖于时间的衰减函数来加权数据点
这是许多流聚类算法中广泛使用的衰减函数[5,15,7]。参数a和λ控制衰减函数的形式。λ的绝对值越大,遗忘旧数据的速度越快。