【数据挖掘笔记五】数据立方体技术
5.數(shù)據(jù)立方體技術(shù)
數(shù)據(jù)倉庫系統(tǒng)在各種粒度上為多維數(shù)據(jù)的交互分析提供OLAP工具,OLAP工具使用數(shù)據(jù)立方體和多維數(shù)據(jù)模型對(duì)匯總數(shù)據(jù)提供靈活的訪問,因此重點(diǎn)要關(guān)注數(shù)據(jù)立方體的技術(shù)。數(shù)據(jù)立方體技術(shù)包括數(shù)據(jù)立方體的計(jì)算方法方法和多維數(shù)據(jù)分析方法。
數(shù)據(jù)立方體技術(shù)對(duì)于數(shù)據(jù)挖掘也是有用的。多維數(shù)據(jù)挖掘是基于OLAP的數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn)技術(shù)集成再一起的。多維數(shù)據(jù)挖掘,通過探查多維空間中的數(shù)據(jù)來搜索有趣的模式,賦予用戶動(dòng)態(tài)地關(guān)注感興趣的任何維子集的自主權(quán),用戶可以交互地下鉆或上卷到各抽象層,發(fā)現(xiàn)分類模型、聚類、預(yù)測(cè)規(guī)則和離群點(diǎn)。
5.1?數(shù)據(jù)立方體計(jì)算:基本概念
數(shù)據(jù)立方體有利于多維數(shù)據(jù)的聯(lián)機(jī)分析處理,數(shù)據(jù)立方體預(yù)計(jì)算是終點(diǎn)。
1)立方體物化:完全立方體、冰山立方體、閉立方體和立方體外殼
基本方體的單元是基本單元,非基本方體的單元是聚集單元。聚集單元在一個(gè)或多給維上聚集,其中每個(gè)聚集維用單元記號(hào)的*指示。
單元之間存在祖先-后代關(guān)系的定義:在n維數(shù)據(jù)立方體中,i-D單元a=(a1,a2,…,an,measuresa)是j-D單元b=(b1,b2,…,bn,measuresb)的祖先,而b是a的后臺(tái),當(dāng)且僅當(dāng)i<j,且1≤k≤n,只要ak≠*,就有ak=bk。
為快速OLAP,最好是預(yù)計(jì)算完全立方體,但其復(fù)雜度是維數(shù)的指數(shù),即n維數(shù)據(jù)立方體包含2n個(gè)方體,如果在考慮每個(gè)維的概念分層,則顯然大的多。完全立方體的計(jì)算,可以計(jì)算較小的立方體,包含給定維集合的一個(gè)子集,或者某些維的可能值的一個(gè)較小的值域;這樣較小的立方體是給定維子集和維值的完全立方體。探索計(jì)算數(shù)據(jù)立方體的所有方體(完全物化)的可伸縮方法,必須考慮可用于計(jì)算方體的內(nèi)存容量的限制、所計(jì)算的數(shù)據(jù)立方體的總體大小,以及計(jì)算所需要的時(shí)間。
數(shù)據(jù)立方體的部分物化則在存儲(chǔ)空間和OLAP響應(yīng)時(shí)間上進(jìn)行折中,不是計(jì)算完全立方體,而是計(jì)算立方體的方體的一個(gè)子集,或者計(jì)算由各種方體的單元子集組成的子立方體。
當(dāng)相對(duì)于存放在方體中的非零值元組的數(shù)量,方體維的基數(shù)的乘積很大時(shí),該方體是稀疏的。如果一個(gè)立方體包含許多稀疏方體,則該立方體是稀疏的。考慮到相當(dāng)多的立方體空間可能被大量具有很低度量值的單元所占據(jù)(立方體單元在多維空間中的分布常常是想當(dāng)稀疏的),考慮部分物化的立方體,即冰山立方體(iceberg?cube),定義最小閾值,或最小支持度閾值,或最小支持度。一種計(jì)算冰山立方體的樸素方法是首先計(jì)算完全立方體,然后剪去不滿足冰山條件的單元。顯然這個(gè)代價(jià)也是高昂的。最有效的當(dāng)然是直接計(jì)算冰山立方體。
引入冰山立方體將減輕計(jì)算數(shù)據(jù)立方體中不重要聚集單元的負(fù)擔(dān),然而仍有大量不感興趣的單元要計(jì)算,為系統(tǒng)地壓縮數(shù)據(jù)立方體,需引入閉覆蓋(closed?coverage)概念。一單元c是閉單元(closed?cell),如果不存在單元d,使得d是單元c的特殊化(后代),即d通過將c中的*值用非*值替換得到,并且d與c具有相同的度量值。閉立方體(closed?cube)是一個(gè)僅由閉單元組成的數(shù)據(jù)立方體。
部分物化的另一種策略是只預(yù)計(jì)算涉及少數(shù)維(如3到5個(gè)維)的方體,這些方體形成對(duì)應(yīng)的數(shù)據(jù)立方體的立方體外殼(cube?cell)。這種情況下,在附加的維組合上查詢需要臨時(shí)計(jì)算。
2)數(shù)據(jù)立方體計(jì)算的策略
有兩種基本數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)方體,一種是關(guān)系OLAP使用關(guān)系表,另一種是多維OLAP使用多維數(shù)組。有多種有效計(jì)算數(shù)據(jù)立方體的方法,一般優(yōu)化技術(shù)包括:
a.排序、散列和分組
對(duì)維屬性使用排序、散列和分組操作,以便對(duì)相關(guān)元組重新定序和聚類。在立方體計(jì)算中,對(duì)共享一組相同維值的元組(或單元)進(jìn)行聚集,重要的是利用排序、散列和分組操作對(duì)這樣的數(shù)據(jù)進(jìn)行訪問和分組,以便有利于聚集的計(jì)算。這些技術(shù)可進(jìn)一步擴(kuò)展,進(jìn)行共享排序(當(dāng)使用基于排序的方法時(shí),在多個(gè)方體之間共享排序開銷),或進(jìn)行共享劃分(當(dāng)使用基于散列的方法時(shí),在多個(gè)方體之間共享劃分開銷)。
b.同時(shí)聚集和緩存中間結(jié)果
在立方體計(jì)算中,從先前計(jì)算的較低層聚集而不是從基本事實(shí)表計(jì)算較高層聚集是有效的。此外,從緩存的中間計(jì)算結(jié)果同時(shí)聚集可能導(dǎo)致減少開銷很大的磁盤IO操作。這種技術(shù)可進(jìn)一步擴(kuò)展,進(jìn)行平攤掃描(同時(shí)計(jì)算盡可能多的方體,分?jǐn)偞疟P讀)。
c.當(dāng)存在多個(gè)子女方體時(shí),由最小的子女聚集
當(dāng)存在多個(gè)子女方體時(shí),由先前計(jì)算的最小子女方體計(jì)算父母方體(即更泛化的方體)更有效。
d.使用先驗(yàn)剪枝方法有效地計(jì)算冰山立方體
對(duì)于數(shù)據(jù)立方體,先驗(yàn)性質(zhì)(Apriori?property)表述如下:如果給定的單元不滿足最小支持度,則該單元的后代(即更特殊的單元)也不滿足最小支持度。該性質(zhì)可顯著降低冰山立方體的計(jì)算量。如果某個(gè)單元c違反冰山立方體設(shè)定的最小支持度這個(gè)條件,則c的每個(gè)后代也將違反該條件,遵守這一性質(zhì)的度量成為反單調(diào)的(anti-monotonic),當(dāng)然單調(diào)性就是滿足條件。剪枝在頻繁模式挖掘中很流行,有助于數(shù)據(jù)立方體的計(jì)算,減少處理時(shí)間和磁盤空間的需求。
5.2?數(shù)據(jù)立方體計(jì)算方法
數(shù)據(jù)立方體計(jì)算是數(shù)據(jù)倉庫實(shí)現(xiàn)的一項(xiàng)基本任務(wù)。完全或部分?jǐn)?shù)據(jù)立方體的預(yù)計(jì)算可以大幅度降低響應(yīng)時(shí)間,提高聯(lián)機(jī)分析處理的性能。
1)完全立方體計(jì)算的多路數(shù)組聚集
多路數(shù)組聚集(MultiWay)方法使用多維數(shù)組作為基本的數(shù)據(jù)結(jié)構(gòu),計(jì)算完全數(shù)據(jù)立方體。MultiWay是一種使用數(shù)組直接尋址的典型MOLAP方法,其中維值通過位置或?qū)?yīng)數(shù)組位置的下標(biāo)訪問,不能使用基于值的重新排序作為優(yōu)化技術(shù)。基于數(shù)組的立方體結(jié)構(gòu)構(gòu)造方法:
a.把數(shù)組分成塊。塊是一個(gè)子立方體,足夠小,可以放入立方體計(jì)算時(shí)可用的內(nèi)存。分塊是一種把n維數(shù)組劃分成小的n維塊的方法,其中每個(gè)塊作為一個(gè)對(duì)象存放在磁盤上。塊被壓縮,以避免空數(shù)組單元所導(dǎo)致的空間浪費(fèi)。一個(gè)單元為空,如果它不含有任何有效數(shù)據(jù)(其單元計(jì)數(shù)為零)。如為了壓縮稀疏數(shù)組結(jié)構(gòu),在塊內(nèi)搜索單元時(shí)可以用chunkID+offset作為單元的尋址機(jī)制。
b.通過訪問立方體單元(即訪問立方體單元的值)來計(jì)算聚集。可以優(yōu)化訪問單元的次序,使得每個(gè)單元必須重復(fù)訪問的次數(shù)最小化,從而減少內(nèi)存訪問開銷和存儲(chǔ)開銷。技巧是使用這樣的一種次序,使得多個(gè)方體的聚集單元可以同時(shí)計(jì)算,避免不必要的單元再次訪問。
由于分塊技術(shù)涉及重疊某些聚集計(jì)算,因此稱該技術(shù)未多路數(shù)組聚集(multiway?array?aggregation),執(zhí)行同時(shí)聚集,即同時(shí)在多個(gè)維組合上計(jì)算聚集。
MultiWay使用直接數(shù)組尋址,比ROLAP基于關(guān)鍵字的尋址搜索策略快,不過MultiWay計(jì)算從基本方體開始,逐步向上到更泛化的祖先方體,因此不能利用先驗(yàn)剪枝。
2)BUC:從頂點(diǎn)方體向下計(jì)算冰山立方體
BUC是一種計(jì)算稀疏冰山立方體的算法。和MultiWay不同,BUC從頂點(diǎn)方體向下到基本方體構(gòu)造冰山立方體,這使得BUC可以分擔(dān)數(shù)據(jù)劃分開銷,這種處理次序也使得BUC在構(gòu)造立方體時(shí)使用先驗(yàn)性質(zhì)進(jìn)行剪枝。
方體格一般采用頂點(diǎn)方體在頂部基本方體在底部的表示,將下鉆(從高聚集單元向較低、更細(xì)化的單元移動(dòng))和上卷(從細(xì)節(jié)的、低層單元向較高層、更聚集的單元移動(dòng))概念一致起來。BUC是指自頂向上構(gòu)造(Bottom-Up?Construction),采用頂點(diǎn)方體在底部而基本方體在頂部的表示,下鉆表示從頂點(diǎn)方體向下到基本方體,那么反過來表示的BUC就是自頂向下,正好相反。BUC算法如下:
算法:BUC,計(jì)算稀疏冰山立方體的算法。
輸入:input:待聚集的關(guān)系。
??????dim:本次迭代的起始維。
全程量:
??????常量numDims:維的總數(shù)。
??????常量cardinality[numDims]:每個(gè)維的基數(shù)。
?????常量min_sup:分區(qū)中的元組的最少個(gè)數(shù),滿足它的分區(qū)才輸出。
?????outputRec:當(dāng)前輸出記錄。
?????dataCount[numDims]:存放每個(gè)分區(qū)的大小。dataCount[i]是大小為cardinality[i]的整數(shù)列表。
輸出:遞歸地輸出滿足最小支持度的冰山立方體單元。
方法:
??????Aggregate(input);//掃描整個(gè)input,計(jì)算度量(如count),并將結(jié)果存入outputRec
??????if?input.count()?==1?then?//優(yōu)化
??????????WriteAncestors(input[0],dim);return;
??????end?if
??????write?outputRec;
??????for(d=dim;d<numDims;d++)?do?//劃分每個(gè)維
??????????C=cardinality[d];
??????????Partition(input,d,C,dataCount[d]);//對(duì)維d創(chuàng)建數(shù)據(jù)的C個(gè)分區(qū)
??????????k=0;
??????????for(i=0;i<C;i++)do?//對(duì)每個(gè)分區(qū)(維d的每個(gè)值)
??????????????c=dataCount[d][i]
??????????????if?c>=min_sup?then?//檢查冰山條件
??????????????????outputRec.dim[d]=input[k].dim[d];
??????????????????BUC(intput[k..k+c-1],d+);//在下一維上聚集
??????????????end?if
??????????????k+=c
??????????end?for
??????????outputRec.dim[d]=all;
??????end?for
BUC的性能容易受維的次序和傾斜數(shù)據(jù)的影響。理想地,應(yīng)當(dāng)首先處理最有區(qū)分能力的維。維應(yīng)當(dāng)以基數(shù)遞減序處理。基數(shù)越高,分區(qū)越小,因?yàn)榉謪^(qū)越多,從而為BUC剪枝提供更多機(jī)會(huì)。維越均勻(即具有較小的傾斜),對(duì)剪枝越好。
BUC的主要貢獻(xiàn)是分擔(dān)劃分開銷的思想。不過,與MultiWay不同,BUC不在父母與子女的分組之間共享聚集計(jì)算。
3)Star-Cubing:使用動(dòng)態(tài)星樹結(jié)構(gòu)計(jì)算冰山立方體
Star-Cubing集成自頂向下和自底向上立方體計(jì)算,并利用多維聚集(類似MultiWay)和類Apriori剪枝(類似BUC),在一個(gè)稱為星樹(star-tree)的數(shù)據(jù)結(jié)構(gòu)上操作,對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行無損數(shù)據(jù)壓縮,從而降低計(jì)算時(shí)間和內(nèi)存需求量。
Star-Cubing算法利用自底向上和自頂向下的計(jì)算模式:在全局計(jì)算次序上,使用自底向上模式;同時(shí)有一個(gè)基于自頂向下模式的子層,利用共享維的概念。如果共享維上的聚集值不滿足冰山條件,則沿該共享維向下的所有單元也不可能滿足冰山條件。
方體樹(cuboid?tree),樹的每一層代表一個(gè)維,每個(gè)結(jié)點(diǎn)代表一個(gè)屬性值;每個(gè)結(jié)點(diǎn)有四個(gè)字段:屬性值、聚集值、指向第一個(gè)子女的指針和指向第一個(gè)兄弟的指標(biāo);方體中的元組逐個(gè)插入組中,一條從根到樹葉結(jié)點(diǎn)的路徑代表一個(gè)元組。如果單個(gè)維在屬性值p上的聚集不滿足冰山條件,則在冰山立方體計(jì)算中識(shí)別這樣的節(jié)點(diǎn)沒有意義。這樣的結(jié)點(diǎn)p用*替換,使方體樹可以進(jìn)一步壓縮。如果單個(gè)維p上的聚集不滿足冰山條件,則稱屬性A中的結(jié)點(diǎn)p是星結(jié)點(diǎn)(star?node);否則,稱p為非星結(jié)點(diǎn)(non-star?node)。使用星結(jié)點(diǎn)壓縮的方體樹稱為星樹(star-tree)。
先構(gòu)造星樹,在應(yīng)用Star-Cubing算法計(jì)算冰山立方體,算法如下:
算法:Star-Cubing,通過Star-Cubing計(jì)算冰山立方體。
輸入:R:關(guān)系表;
??????min_support:冰山立方體條件的最小支持度閾值(取count作為度量)。
輸出:計(jì)算的冰山立方體
方法:每顆星樹對(duì)應(yīng)于一個(gè)方體樹結(jié)點(diǎn),反之亦然。
??????Begin
???????????掃描R兩次,創(chuàng)建星表S和星樹T;
???????????輸出T.root的count;
???????????調(diào)用starcubing(T,T.root);
??????End
??????Procedure?starcubing(T,cnode)?//cnode:當(dāng)前結(jié)點(diǎn)
??????{
??????????for?T的方體樹的每個(gè)非空子女C
??????????????插入或聚集cnode到C的星樹的對(duì)應(yīng)位置或結(jié)點(diǎn);
??????????if?(cnode.count≥min_support)?then?{
??????????????if?(cnode≠root)?then
??????????????????output?cnode.count;
??????????????if?(cnode?是葉結(jié)點(diǎn))?then?
??????????????????output?cnode.count;
??????????????else{//初始化新的方體樹
??????????????????create?Cc作為T的方體樹子女;
??????????????????令Tc為Cc的星樹;
??????????????????Tc.root的count=cnode.count;
??????????????}
???????????}
??????????if?(cnode不是樹葉)?then?
??????????????starcubing(T,cnode.first_child);
??????????if(Cc非空)?then{
??????????????starcubing(Tc,Tc.root);
??????????????將Cc從T的方體樹刪除;}
??????????if?(cnode有兄弟)?then
??????????????starcubing(T,cnode.sibling);
??????????刪除T;
???????}
Star-Cubing也可用來計(jì)算完全立方體。當(dāng)計(jì)算稠密數(shù)據(jù)集的完全立方體時(shí),Star-Cubing性能與MultiWay相當(dāng),比BUC快。如果數(shù)據(jù)集是稀疏的,則比MultiWay快,且大部分情況下比BUC快。對(duì)于冰山立方體計(jì)算,Star-Cubing比BUC快,其中數(shù)據(jù)是傾斜的,并且加速因子隨min_sup減小而增加。
4)為快速高維OLAP預(yù)計(jì)算殼片段
數(shù)據(jù)立方體有利于多維數(shù)據(jù)空間的快速OLAP,不過高維完全數(shù)據(jù)立方體需要海量存儲(chǔ)空間和不切司機(jī)的計(jì)算時(shí)間。冰山立方體是一個(gè)替代方案。但是冰山立方體本身的計(jì)算和存儲(chǔ)開銷還是比較高。于是提出計(jì)算一個(gè)很薄的立方體外殼(cube?shell),但這個(gè)方法不吃之在4維及以上OLAP。
這里關(guān)注的是OLAP查詢處理的外殼片段方法,方法基于一個(gè)觀察的事實(shí):數(shù)據(jù)立方體有很多的維,不過大部分OLAP操作只在少數(shù)維上執(zhí)行。如果可以在高維空間內(nèi)部的少數(shù)維上快速計(jì)算多維聚集,則可以獲得快速OLAP,而不必物化原來的高維數(shù)據(jù)立方體。計(jì)算完全立方體(甚至冰山立方體或外殼立方體)都可能是多余的,利用一定預(yù)處理的半聯(lián)機(jī)計(jì)算模型是比較可行的解。給定基本方法,首先做一些快速預(yù)計(jì)算(即脫機(jī)),然后查詢可以使用預(yù)處理的數(shù)據(jù)上聯(lián)機(jī)計(jì)算。
外殼片段方法遵循半聯(lián)機(jī)計(jì)算策略,涉及兩個(gè)算法:一個(gè)計(jì)算外殼片段立方體;另一個(gè)用立方體片段處理查詢。外殼片段方法可以處理維度非常高的數(shù)據(jù)庫,并且可以快速聯(lián)機(jī)計(jì)算小的局部立方體,利用信息檢索和基于Web的信息系統(tǒng)中的倒排索引結(jié)構(gòu)。
外殼片段方法基本思想:給定一個(gè)高維數(shù)據(jù)集,把維劃分成互不相交的維片段,把每個(gè)片段轉(zhuǎn)換成倒排索引表示,然后構(gòu)造立方體外殼片段,并保持與立方體單元相關(guān)聯(lián)的倒排索引。使用預(yù)計(jì)算的立方體外殼片段,可以聯(lián)機(jī)動(dòng)態(tài)地組裝和計(jì)算所需要的數(shù)據(jù)立方體的方體單元,可通過倒排索引上的集合交(set?intersection)操作有效地完成。
外殼片段計(jì)算方法:
算法:Frag-Shells,計(jì)算給定的高維基本表(即基本方體)的外殼片段。
輸入:n維(A1,...,An)上的基本方體B。
輸出:
??????片段劃分的集合{P1,...,Pk}和它們對(duì)應(yīng)的局部片段立方體{S1,...,Sk},其中Pi表示維的集合,并且P1U...UPk形成所有n個(gè)維。
??????ID_measure數(shù)組,如果度量不是元組計(jì)數(shù)count();
方法:
??????將維集合(A1,...,An)劃分成k個(gè)片段的集合(P1,...,Pk)(基于數(shù)據(jù)和查詢分布)
??????掃描基本方體B一次,并做如下工作{
??????????將每個(gè)<TID,measure>插入ID_measure數(shù)組
??????????for?每個(gè)維Ai的每個(gè)屬性值aj
??????????????建立一個(gè)倒排索引項(xiàng):<aj,TIDList>
???????}
???????for?每個(gè)片段Pi
???????????取它們對(duì)應(yīng)的ITD列表的交并計(jì)算它們的度量,構(gòu)造局部片段立方體Si
案例可參考原書,關(guān)鍵是倒排索引結(jié)構(gòu)的原理。
與完全立方體相比,外殼片段的存儲(chǔ)空間和計(jì)算時(shí)間開銷都可以忽略。通過在單個(gè)片段中包含所有的維,也可使用Frag-Shells算法計(jì)算完全數(shù)據(jù)立方體。由于方體格的計(jì)算次序是自頂向下和深度優(yōu)先(類似于BUC),所以如果用來構(gòu)造冰山立方體,那算法可以進(jìn)行Apriori剪枝。
給定預(yù)計(jì)算的外殼片段,可將立方體空間看做虛擬立方體,并且聯(lián)機(jī)進(jìn)行關(guān)于該立方體的OLAP查詢,有兩種可能查詢類型:點(diǎn)查詢和子立方體查詢。
點(diǎn)查詢顯示地提供相關(guān)維上被例示的變量集,通過找出最合適的(即逐維完全匹配的)片段,取出并與相關(guān)聯(lián)的TID列表取交,可最大限度地利用預(yù)計(jì)算的外殼片段。
子立方體查詢返回一個(gè)基于例示維和被詢問的維的局部數(shù)據(jù)立方體。這種數(shù)據(jù)立方體需要以多為方式聚集,使得用戶可以使用聯(lián)機(jī)分析處理(如鉆取、切塊、轉(zhuǎn)軸等),靈活地操縱和分析。
5.3?使用探索立方體技術(shù)處理高級(jí)查詢
基本數(shù)據(jù)立方體可擴(kuò)充到各種復(fù)雜的數(shù)據(jù)類型和新的應(yīng)用。如用于地理數(shù)據(jù)倉庫設(shè)計(jì)與實(shí)現(xiàn)的空間數(shù)據(jù)立方體,用于多媒體數(shù)據(jù)(包括圖像和視頻)多維分析的多媒體立方體,RFID數(shù)據(jù)立方體處理射頻識(shí)別(RFID)的壓縮和多維分析。文本立方體和論題立方體是分別為多維文本數(shù)據(jù)庫(包括結(jié)構(gòu)屬性和敘事文本屬性)中向量空間模型和生成語言模型的應(yīng)用開發(fā)。
1)抽樣立方體:樣本數(shù)據(jù)上基于OLAP的挖掘
傳統(tǒng)上,OLAP擁有整個(gè)數(shù)據(jù)總體,而用樣本數(shù)據(jù)只是一個(gè)小的子集,如果把OLAP工具用于樣本數(shù)據(jù),會(huì)面臨兩類問題:第一,在多維意義下,樣本數(shù)據(jù)過于稀疏,樣本中的單個(gè)離群點(diǎn)或微小偏移都可能顯著影響結(jié)果;第二,使用樣本數(shù)據(jù),統(tǒng)計(jì)學(xué)方法將用來提供可靠性度量,如置信區(qū)間,指出總體質(zhì)量,而傳統(tǒng)?OLAP并無提供。
抽樣立方體旨在解決上面兩類問題。抽樣立方體(sampling?cube)是一種存儲(chǔ)樣本數(shù)據(jù)及其多維聚集的數(shù)據(jù)立方體結(jié)構(gòu),支持在樣本數(shù)據(jù)上的OLAP。抽樣立方體計(jì)算置信區(qū)間,作為多維查詢的質(zhì)量度量。給定一個(gè)樣本數(shù)據(jù)關(guān)系R(即基本方體),抽樣立方體CR通常計(jì)算樣本均值、樣本標(biāo)準(zhǔn)差和其他針對(duì)任務(wù)的度量。
影響置信區(qū)間大小有兩個(gè)主要因素:樣本數(shù)據(jù)的方差和樣本大小。解決小樣本問題可以通過獲得更多的數(shù)據(jù)。可以通過鄰近單元中的數(shù)據(jù)來擴(kuò)充,方體內(nèi)查詢擴(kuò)展考慮同一方體內(nèi)的鄰近單元;方體間查詢擴(kuò)展考慮查詢單元的更一般版本。
在精確地度量維與立方體的相關(guān)性上,計(jì)算維值域它們聚集立方體度量之間的相關(guān)性。通常,對(duì)數(shù)據(jù)數(shù)據(jù)用皮爾遜相關(guān)系數(shù),而標(biāo)稱數(shù)據(jù)使用卡方相關(guān)檢驗(yàn),也可使用協(xié)方差。t-檢驗(yàn)是一種相對(duì)簡(jiǎn)單的統(tǒng)計(jì)方法,可用來確定兩個(gè)樣本是否具有相同的均值。
2)排序立方體:top-K查詢的有效計(jì)算
top-K查詢(或排序查詢)根據(jù)用戶指定的優(yōu)選條件,只返回最好的k個(gè)結(jié)果作為查詢的回答,而不是返回大量不加區(qū)分的結(jié)果。
給定按排定的序返回,使得最好的結(jié)果在頂部。通常,用戶指定的優(yōu)選條件由兩部分組成:一個(gè)選擇條件和一個(gè)排序函數(shù)。
排序立方體一般原理是物化選擇屬性集上的立方體。使用排序維上基于區(qū)間的劃分使得排序立方體可以有效而靈活地支持用戶的臨時(shí)查詢。
5.4?數(shù)據(jù)立方體空間的多維數(shù)據(jù)分析
立方體空間的多維數(shù)據(jù)挖掘在各種粒度上把感興趣的數(shù)據(jù)組織成直觀的區(qū)域,在這些區(qū)域上系統(tǒng)地應(yīng)用各種數(shù)據(jù)挖掘技術(shù)分析和挖掘數(shù)據(jù)。
融合OLAP分析和數(shù)據(jù)挖掘技術(shù)的方法有:使用立方體空間為數(shù)據(jù)挖掘定義數(shù)據(jù)空間;使用OLAP查詢?yōu)橥诰虍a(chǎn)生特征和目標(biāo);使用數(shù)據(jù)立方體計(jì)算技術(shù)加快重復(fù)模型的構(gòu)建。
1)預(yù)測(cè)立方體:立方體空間的預(yù)測(cè)挖掘
預(yù)測(cè)立方體(prediction?cube)是一種立方體結(jié)構(gòu),存儲(chǔ)多維數(shù)據(jù)空間中的預(yù)測(cè)模型,并以O(shè)LAP方式支持預(yù)測(cè)。預(yù)測(cè)立方體的每個(gè)單元值都是通過對(duì)建立在該單元數(shù)據(jù)子集上的預(yù)測(cè)模型求值計(jì)算的,表示了對(duì)該數(shù)據(jù)子集行為的預(yù)測(cè);不同于在數(shù)據(jù)立方體中,是在單元中的數(shù)據(jù)子集上計(jì)算聚集數(shù)值來獲得單元值。
預(yù)測(cè)立方體不是把預(yù)測(cè)模型看做最終結(jié)果,而是使用預(yù)測(cè)模型作為構(gòu)件來定義數(shù)據(jù)子集的興趣度,即它們識(shí)別指示更準(zhǔn)確預(yù)測(cè)的數(shù)據(jù)子集。
在預(yù)測(cè)立方體上支持OLAP上卷和下鉆操作需要在不同的粒度物化單元值。一種完全物化預(yù)測(cè)立方體的樸素方法是對(duì)每個(gè)單元和每個(gè)粒度評(píng)估。如果基本數(shù)據(jù)集很大,這這種方法開銷很大,采用基于概率的組合方法(probability-Based?Ensemble,PBE),只要求對(duì)最細(xì)粒度的單元構(gòu)建模型,然后使用OLAP風(fēng)格的自底向上的聚集產(chǎn)生粗粒度單元的值。預(yù)測(cè)模型的預(yù)測(cè)可以看做找出最大化評(píng)分函數(shù)的類標(biāo)號(hào)。PBE方法要求任何預(yù)測(cè)模型的評(píng)分函數(shù)都是可分可解的。
2)多特征立方體:多粒度上的復(fù)雜聚集
????多特征立方體(multifeature?clube)計(jì)算更復(fù)雜的查詢,依賴于變化粒度層上多個(gè)聚集的分組,支持復(fù)雜的數(shù)據(jù)挖掘查詢。
3)基于異常的、發(fā)現(xiàn)驅(qū)動(dòng)的立方體空間探查
探索數(shù)據(jù)立方體的發(fā)現(xiàn)驅(qū)動(dòng)方法,幫助用戶智能地探查數(shù)據(jù)立方體巨大的聚集空間,指示數(shù)據(jù)異常的預(yù)計(jì)算的度量,在所有的聚集層來指導(dǎo)用戶的數(shù)據(jù)分析過程。異常(exception)是一個(gè)數(shù)據(jù)立方體單元值,基于某種統(tǒng)計(jì)模型,顯著地不同于預(yù)期值。
一個(gè)單元值是否異常要根據(jù)它與它的期望值相差多少判定,其中期望值使用統(tǒng)計(jì)模型確定。給定單元的值和它的期望值之間的差稱為殘差(residual)。直觀地,殘差越大,給定單元的值越異常。
發(fā)現(xiàn)驅(qū)動(dòng)的探查構(gòu)造數(shù)據(jù)立方體分三個(gè)階段:單元聚集計(jì)算,發(fā)現(xiàn)異常;模型擬合,計(jì)算標(biāo)準(zhǔn)殘差;基于標(biāo)準(zhǔn)殘差計(jì)算異常值。
5.5?小結(jié)
1)數(shù)據(jù)立方體的計(jì)算和探查在數(shù)據(jù)倉庫構(gòu)建中扮演至關(guān)重要的角色,并且對(duì)于多維空間的靈活挖掘是重要的。
2)數(shù)據(jù)立方體由方體的格組成。每個(gè)方體都對(duì)應(yīng)于給定多維數(shù)據(jù)的不同程度的匯總。完全物化是指計(jì)算數(shù)據(jù)立方體格中的所有方體。部分物化是指選擇性地計(jì)算格中方體單元的子集。冰山立方體和外殼片段都是部分物化的例子。冰山立方體是一種數(shù)據(jù)立方體,它僅存儲(chǔ)其聚集值(如count)大于某最小支持度閾值的立方體單元。對(duì)于數(shù)據(jù)立方體的外殼片段而言,只計(jì)算涉及少數(shù)維的某些方體。在附加維組合上的查詢可以臨時(shí)計(jì)算。
3)有效的數(shù)據(jù)立方體計(jì)算方法:多路數(shù)組聚集multiway,基于稀疏數(shù)組的、自底向上的、共享計(jì)算的物化整個(gè)數(shù)據(jù)立方體;BUC,通過探查有效的自頂向下計(jì)算次序和排序計(jì)算冰山立方體;Star-Cubing,使用星樹結(jié)構(gòu),集成自頂向下和自底向上計(jì)算,計(jì)算冰山立方體;外殼片段立方體,通過僅預(yù)計(jì)算劃分的立方體外殼片段,支持進(jìn)行高維OLAP。
4)立方體空間中的多維數(shù)據(jù)挖掘是知識(shí)發(fā)現(xiàn)與多維數(shù)據(jù)立方體技術(shù)的集成。它有利于在大型結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)集中系統(tǒng)和聚焦地發(fā)現(xiàn)知識(shí)。它將繼續(xù)為分析者的多維和多粒度分析提供極大的靈活性和能力。對(duì)于構(gòu)建功能強(qiáng)大的、復(fù)雜的數(shù)據(jù)挖掘機(jī)制的研究者而言,這是一個(gè)尚需大量研究的領(lǐng)域。
5)利用立方體進(jìn)行高級(jí)查詢的技術(shù),包括用于樣本數(shù)據(jù)的多維分析的抽樣立方體,用于大型關(guān)系數(shù)據(jù)庫中top-k查詢有效處理的排序立方體。
6)利用數(shù)據(jù)立方體進(jìn)行多維數(shù)據(jù)分析的三種方法:預(yù)測(cè)立方體計(jì)算多維立方體空間的預(yù)測(cè)模型,幫助用戶識(shí)別變化的粒度級(jí)別上的數(shù)據(jù)的有趣子集;多特征立方體計(jì)算涉及多粒度上多個(gè)依賴的聚集的復(fù)雜查詢;立方體空間中基于異常的、發(fā)現(xiàn)驅(qū)動(dòng)的探查顯示可視化提示,指示在所有聚集層上發(fā)現(xiàn)的異常,從而指導(dǎo)用戶的數(shù)據(jù)分析。
總結(jié)
以上是生活随笔為你收集整理的【数据挖掘笔记五】数据立方体技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据平台】同一mysql主机不同数据库
- 下一篇: 【数据平台】python数据集连接和组合