• 数据挖掘概念与技术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快。

  • 相关阅读:
    分类在使用runtime做方法交换时
    打包自己Framework中含有第三方库的解决方案分CocoaPods与手动导入两种方式
    iOS 百分比圆环曲线swift4.0实现
    最新swift4.0 图片进行尺寸大小及体积压缩
    swift 密码由6-16数字和字母组合组成
    Android 7.0 之后相机/文件读写等权限获取方式改变,导致开启相机闪退
    Android Manifest 中 uses-feature 和 uses-permission的作用 关系和区别
    Android studio 3.1.3真机调试报错,no target device found
    如何用Java实现条件编译
    Missing android.support.FILE_PROVIDER_PATHS meta-data 报错原因分析
  • 原文地址:https://www.cnblogs.com/zjh225901/p/6123022.html
Copyright © 2020-2023  润新知