DenStream算法

阅读更多

思想:DenStream可以说是针对Clustream的缺陷进行改进的,通过引入CMC(核心微簇),PMC(潜在核心微簇)以及OMC(离群微簇)以及时间衰减函数f(t)=2-λ来对不同时间的数据点的重要性进行加权。对微簇micro-cluster的定义也加入了时间权重。

 

方法:在线阶段,同时维护PMC和OMC两个队列,根据在两个队列的权重变化来对微簇的在潜在核心和离群两个角色进行调整变化。在线下阶段,通过改进的DBSCAN算法对 PMC进行聚类,最终获得聚类结果。

 

步骤:

on-line phase:

Merging (p)
1: Try to merge p into its nearest p-micro-cluster cp;
2: if rp (the new radius of cp) εthen
3: Merge p into cp;
4: else
5: Try to merge p into its nearest o-micro-cluster co;
6: if ro (the new radius of co) εthen
7: Merge p into co;
8: if w (the new weight of co) > βµ then
9: Remove co from outlier-buffer and create a
 new p-micro-cluster by co;
10: end if
11: else
12: Create a new o-micro-cluster by p and insert it
into the outlier-buffer;
13: end if
14: end if

 DenStream (DS,ε, β, µ, λ)

1: Tp = (1/λ)[(βµ/βµ-1)];
2: Get the next point p at current time t from data
 stream DS;
3: Merging(p);
4: if (t mod Tp)=0 then
5: for each p-micro-cluster cp do
6: if Wp(the weight of cp)< βµ then
7: Delete cp;
8: end if
9: end for
10: for each o-micro-cluster co do
11: ξ = (2λ(tto+Tp))/(2λTp1) ;
12: if wo(the weight of co)< ξ then
13: Delete co;
14: end if
15: end for
16: end if

 

off-line phase:

17: if a clustering request arrives then
18: Generating clusters;
19: end if


其中Tp是根据一个PMC或者OMC变成小于或者大于阈值βµ的最短时间间隔,ξ 是决定是否将不争气的OMC踢出OMC队列的阈值。

 

优点和不足:

对Clustream的缺陷进行了弥补,能够在线对outlier和real data进行区分,对进化的数据流的聚类结果有了很大的提升是现在主流的基于micro-cluster和密度的数据流聚类算法。

但是也有以下不足:

1.由于没有限制micro-cluster数量,同时也没有相应删除或者减少micro-cluster的方法,会导致大量的内存开 销。

2.同时在removing outlier阶段计算量相对比较大。

 

 

你可能感兴趣的:(DenStream算法)