数据挖掘概念与技术14--Star-Cubing

1.产生的原因           

  为了集成自顶向下立方体计算类Apriori剪枝和自底向上多维聚集的两个优点而设计。算法在一个称为星树的数据结构上进行操作,对该数据结构进行无损数据压缩,从而降低计算的事件和内存需求量。

2.共享维剪枝

  如果共享维A的值a1,不满足冰山条件,则以a1CD/a1为根的整颗子树(包括a1CD/a1C,a1D/a1,a1/a1)都可以剪枝,因为他们都是a1的更特殊化的版本。

3.方体树

  基本方体ABCD的方体树,包括四层,每层表示一个维,每层有n个节点表示每个维所能取的不同值。每个节点有四个字段:属性值,聚集值,指向子女的指针和指向第一个兄妹的指针。

4.星树构造

  星节点:如果单个维在属性值p上的聚集不满足冰山条件,则该节点p可以用*号代替,称为星节点。

  星树:使用星节点压缩过的方体树称为星树。

5.星树创建过程

  

    

6.利用星树的计算过程,即Star-Cubing算法思想

  (1)总体过程

    深度优先遍历星树,通过自底向上聚集,在聚集过程中,利用共享维的概念(相当于自顶向下)剪枝。

  (2)遍历过程

    对上述基本星树按照深度优先遍历(BCD,ACD/A,ABD/AB,ABC/ABC):

    首先最左子树一次遍历a1,b*,c*,d*得到下图结果(BCD,a1CD/a1,a1b*D/a1b*,a1b*c*/a1b*c*):

    

    注途中:destroyed表示在回溯过程中,因为c*,d*没有兄弟节点,所以没有必要保留计算结果,删除。

        另,在实际计算过程中因为a1不满足生成子女数的节点的条件,所以ACD/A后面的三个树不会生成,即不用计算。

        能产生子女树的节点条件为:(1)节点的度量必须满足冰山条件;(2)产生的数必须包含至少一个非星节点。

  第二棵子树遍历结果:

      

  第三棵子树遍历结果:

  

     注:此过程树的变化情况解释:

    对于上次创建并未销毁的,而且本次又重新创建的一样的两棵子树,应将两次结果进行合并,即:将每个节点的聚集值进行相加。例:第1,2次创建的ACD/A树。

    对于上次创建并未销毁,而且本次也创建该树,但两棵树不一样的,应将两棵树合并在同一根下。例:BCD树。

7.与MultiWay和BUC性能分析

  当计算稠密数据完全立方体时:

    其能与M的性能相媲美,比BUC快的多(划分时开销较大,计算耗时间较大),

  当计算稀疏完全立方体时:

    其比M快的多,大部分情况下比BUC快。

  当计算冰山立方体时:

    比BUC快。

原文地址:https://www.cnblogs.com/zjh225901/p/6123022.html