数据挖掘概念与技术(hanjiawei)阅读笔记--第五章(数据立方体技术)
BUC
1.BUC(Botom-Up Construction)概念
从顶点方体向下计算冰山立方体
计算稀疏冰山立方体的算法
基于先验性质进行剪枝
### 2.算法计算
例A(a1,a2,a3),B(b1,b2),C(c1,c2).
(a1,,);(a1,b1,*);(a1,b1,c1);(a1,b1,c2)......
此过程运用先验性质节省时间。假如(a1,b1,*)不满足最小支持度,则后面的(a1,b1,c1)与(a1,b1.c2)不会计算。
BUC性能容易受到维度次序和倾斜数据的影响。一般地,维越均匀,剪枝效果越好。
BUC的贡献是分担开销的思想,但没有共享维度。
MultiWay 多路数组聚集
1.冰山立方体的相关概念
部分物化的立方体成为冰山立方体,其中部分物化所使用的标准或最小阈值称为最小支持度阈值或简称为最小支持度。
冰山立方体SQL查询语句:
conpute cube sales_ice as
select month,city,customer_group,count(*) from salesinfo
cube by month,city,customer_group having count(*)>=min
其中,cube by表示对给定维所有可能的自己形成聚集,having子句指定约束条件,在这里如果没有having子句,该例则得到完全立方体。
2.入闭覆盖与闭单元
目的:进一步系统的压缩数据立方体;
原理:对于某个立方体,由于在其他维固定的情况下,某一个或多个维上的数值为空,从而导致是否对该维聚集,度量值都不变,为了减少存储空间,不多次存储相同的度量值(进一步减少预计算的立方体数)。其中,对于最底层的立方体称为闭立方体。
闭单元的特点:在闭单元中,用替换其中对应维上的非值,度量值不变。如果将它们看为一个家族,则闭单元是该家族中,值最少的一个。即在该家族中,不存在替换闭单元中的值,切度量值不变的单元。
3.数据立方体计算的一般策略
1.排序,三列和分组。对维属性进行排序,三列和分组。其中的关键在于,对共享一组相同维值的元祖进行聚集,共享聚集计算。同样共享排序,共享划分在多个立方体之间。
2.同时聚集和共享中间结果.关键在于分治,然后合并中间结果。而不是从基本事实表计算较高层的聚集。
3.当存在多个子女方体时,由最小的子女聚集 。例如我可以通过年份销量或天销量来计算总销量,则选用年份来聚集。
4.可以使用先检验,剪枝方法有效的计算冰山立方体。如果给定单元不满足最小支持度,则它的特殊化更不能满足。特殊化是指将该单元中的用非替换。
4.完全立方体的多维数组聚集
计算策略所需注意的问题:
(1)尽量减少块反复调入内存的次数。
(2)尽量利用较少的内存空间完成计算。
因为要减少块调入调出内存的次数就要缓存中间的计算结果,又因为数据立方体有多维数据,所以块的计算顺序,决定聚集的顺序(满足问题1),从而决定计算所需的内存大小。
难点一:内存大小的计算:
一般情况下,一般先从基数小的维开始聚集。在本例中设A=40,B=400,C=4000,则先聚集A,计算2-D面BC.然后是AC,最后是AB.
因为计算刚开始的四个块1,2,3,4就可以得到BC面的第一块,并且之后每连续的四个块一组得到下一个BC面的块,则在计算BC面时只需要缓冲BC面一个块的大小
100*1000就可以,之后计算的16次均重复利用此内存块。
因为只有在调入块13的时候才可以计算得AC面的一块,则前面的12块都应该得到缓存,所以在计算AC面的时候,缓存的结果大小为AC面的一行,即40*1000;
因为只有调入第49块的时候才可以计算AB面,则前面计算结果均需保存,所需内存应为AB整个平面的面积,即40*400.
所以在此次计算中所需的内存为:1001000+401000+40*400。
5.多维数组聚集计算冰山立方体的缺点:
因为该计算方法从基本方体开始计算,逐步向上得到更加泛化的方体,所以不能通过先验剪枝的方法进行优化。
6.数组多维聚集相对于ROLAP(基于关系记录的)的优势:
(1)数组结构不需要空间来存放搜索码;
(2)使用数组直接寻址,比其基于关键字的寻址策略快;
(3)不直接使用表进行计算立方体,而是用数组计算立方体,然后再将结果转换成表,更加快速。
## Star-Cubing :使用动态星树结构计算冰山立方体
### 1.介绍
集成了BUC和MultiWay计算,利用多维聚集。在一个成为星树的数据结构上操作,对数据结构进行无损数据压缩,降低计算时间和内存需求
计算模式:
在全局计算次序上,使用自底向上模式。下面有自顶向下模式的子层,利用共享维概念。
如果共享维上的聚集值不满足冰山条件,则沿该共享维向下的所以单元都不满足冰山条件。其所有后代都被剪枝。
一些概念
1)方体树(cuboid tree)
树的每一层代表一个维,每个结点代表一个属性值。每个结点四个字段:属性值,聚集值,指向,指向第一个子女指针和指向第一个兄妹的指针。
DFS遍历与回溯
2)星节点:如果单个维在属性值p上的聚集不满足冰山条件,则该节点p可以用*号代替,称为星节点。
3)星树:使用星节点压缩过的方体树称为星树。