日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据挖掘笔记五】数据立方体技术

發布時間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据挖掘笔记五】数据立方体技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

5.數據立方體技術

數據倉庫系統在各種粒度上為多維數據的交互分析提供OLAP工具,OLAP工具使用數據立方體和多維數據模型對匯總數據提供靈活的訪問,因此重點要關注數據立方體的技術。數據立方體技術包括數據立方體的計算方法方法和多維數據分析方法。

數據立方體技術對于數據挖掘也是有用的。多維數據挖掘是基于OLAP的數據分析與知識發現技術集成再一起的。多維數據挖掘,通過探查多維空間中的數據來搜索有趣的模式,賦予用戶動態地關注感興趣的任何維子集的自主權,用戶可以交互地下鉆或上卷到各抽象層,發現分類模型、聚類、預測規則和離群點。

5.1?數據立方體計算:基本概念

數據立方體有利于多維數據的聯機分析處理,數據立方體預計算是終點。

1)立方體物化:完全立方體、冰山立方體、閉立方體和立方體外殼

基本方體的單元是基本單元,非基本方體的單元是聚集單元。聚集單元在一個或多給維上聚集,其中每個聚集維用單元記號的*指示。

單元之間存在祖先-后代關系的定義:在n維數據立方體中,i-D單元a=(a1,a2,…,an,measuresa)是j-D單元b=(b1,b2,…,bn,measuresb)的祖先,而b是a的后臺,當且僅當i<j,且1≤k≤n,只要ak≠*,就有ak=bk

為快速OLAP,最好是預計算完全立方體,但其復雜度是維數的指數,即n維數據立方體包含2n個方體,如果在考慮每個維的概念分層,則顯然大的多。完全立方體的計算,可以計算較小的立方體,包含給定維集合的一個子集,或者某些維的可能值的一個較小的值域;這樣較小的立方體是給定維子集和維值的完全立方體。探索計算數據立方體的所有方體(完全物化)的可伸縮方法,必須考慮可用于計算方體的內存容量的限制、所計算的數據立方體的總體大小,以及計算所需要的時間。

數據立方體的部分物化則在存儲空間和OLAP響應時間上進行折中,不是計算完全立方體,而是計算立方體的方體的一個子集,或者計算由各種方體的單元子集組成的子立方體。

當相對于存放在方體中的非零值元組的數量,方體維的基數的乘積很大時,該方體是稀疏的。如果一個立方體包含許多稀疏方體,則該立方體是稀疏的。考慮到相當多的立方體空間可能被大量具有很低度量值的單元所占據(立方體單元在多維空間中的分布常常是想當稀疏的),考慮部分物化的立方體,即冰山立方體(iceberg?cube),定義最小閾值,或最小支持度閾值,或最小支持度。一種計算冰山立方體的樸素方法是首先計算完全立方體,然后剪去不滿足冰山條件的單元。顯然這個代價也是高昂的。最有效的當然是直接計算冰山立方體。

引入冰山立方體將減輕計算數據立方體中不重要聚集單元的負擔,然而仍有大量不感興趣的單元要計算,為系統地壓縮數據立方體,需引入閉覆蓋(closed?coverage)概念。一單元c是閉單元(closed?cell),如果不存在單元d,使得d是單元c的特殊化(后代),即d通過將c中的*值用非*值替換得到,并且d與c具有相同的度量值。閉立方體(closed?cube)是一個僅由閉單元組成的數據立方體。

部分物化的另一種策略是只預計算涉及少數維(如3到5個維)的方體,這些方體形成對應的數據立方體的立方體外殼(cube?cell)。這種情況下,在附加的維組合上查詢需要臨時計算。

2)數據立方體計算的策略

有兩種基本數據結構用于存儲方體,一種是關系OLAP使用關系表,另一種是多維OLAP使用多維數組。有多種有效計算數據立方體的方法,一般優化技術包括:

a.排序、散列和分組

對維屬性使用排序、散列和分組操作,以便對相關元組重新定序和聚類。在立方體計算中,對共享一組相同維值的元組(或單元)進行聚集,重要的是利用排序、散列和分組操作對這樣的數據進行訪問和分組,以便有利于聚集的計算。這些技術可進一步擴展,進行共享排序(當使用基于排序的方法時,在多個方體之間共享排序開銷),或進行共享劃分(當使用基于散列的方法時,在多個方體之間共享劃分開銷)。

b.同時聚集和緩存中間結果

在立方體計算中,從先前計算的較低層聚集而不是從基本事實表計算較高層聚集是有效的。此外,從緩存的中間計算結果同時聚集可能導致減少開銷很大的磁盤IO操作。這種技術可進一步擴展,進行平攤掃描(同時計算盡可能多的方體,分攤磁盤讀)。

c.當存在多個子女方體時,由最小的子女聚集

當存在多個子女方體時,由先前計算的最小子女方體計算父母方體(即更泛化的方體)更有效。

d.使用先驗剪枝方法有效地計算冰山立方體

對于數據立方體,先驗性質(Apriori?property)表述如下:如果給定的單元不滿足最小支持度,則該單元的后代(即更特殊的單元)也不滿足最小支持度。該性質可顯著降低冰山立方體的計算量。如果某個單元c違反冰山立方體設定的最小支持度這個條件,則c的每個后代也將違反該條件,遵守這一性質的度量成為反單調的(anti-monotonic),當然單調性就是滿足條件。剪枝在頻繁模式挖掘中很流行,有助于數據立方體的計算,減少處理時間和磁盤空間的需求。

5.2?數據立方體計算方法

數據立方體計算是數據倉庫實現的一項基本任務。完全或部分數據立方體的預計算可以大幅度降低響應時間,提高聯機分析處理的性能。

1)完全立方體計算的多路數組聚集

多路數組聚集(MultiWay)方法使用多維數組作為基本的數據結構,計算完全數據立方體。MultiWay是一種使用數組直接尋址的典型MOLAP方法,其中維值通過位置或對應數組位置的下標訪問,不能使用基于值的重新排序作為優化技術。基于數組的立方體結構構造方法:

a.把數組分成塊。塊是一個子立方體,足夠小,可以放入立方體計算時可用的內存。分塊是一種把n維數組劃分成小的n維塊的方法,其中每個塊作為一個對象存放在磁盤上。塊被壓縮,以避免空數組單元所導致的空間浪費。一個單元為空,如果它不含有任何有效數據(其單元計數為零)。如為了壓縮稀疏數組結構,在塊內搜索單元時可以用chunkID+offset作為單元的尋址機制。

b.通過訪問立方體單元(即訪問立方體單元的值)來計算聚集。可以優化訪問單元的次序,使得每個單元必須重復訪問的次數最小化,從而減少內存訪問開銷和存儲開銷。技巧是使用這樣的一種次序,使得多個方體的聚集單元可以同時計算,避免不必要的單元再次訪問。

由于分塊技術涉及重疊某些聚集計算,因此稱該技術未多路數組聚集(multiway?array?aggregation),執行同時聚集,即同時在多個維組合上計算聚集。

MultiWay使用直接數組尋址,比ROLAP基于關鍵字的尋址搜索策略快,不過MultiWay計算從基本方體開始,逐步向上到更泛化的祖先方體,因此不能利用先驗剪枝。

2)BUC:從頂點方體向下計算冰山立方體

BUC是一種計算稀疏冰山立方體的算法。和MultiWay不同,BUC從頂點方體向下到基本方體構造冰山立方體,這使得BUC可以分擔數據劃分開銷,這種處理次序也使得BUC在構造立方體時使用先驗性質進行剪枝。

方體格一般采用頂點方體在頂部基本方體在底部的表示,將下鉆(從高聚集單元向較低、更細化的單元移動)和上卷(從細節的、低層單元向較高層、更聚集的單元移動)概念一致起來。BUC是指自頂向上構造(Bottom-Up?Construction),采用頂點方體在底部而基本方體在頂部的表示,下鉆表示從頂點方體向下到基本方體,那么反過來表示的BUC就是自頂向下,正好相反。BUC算法如下:

算法:BUC,計算稀疏冰山立方體的算法。

輸入:input:待聚集的關系。

??????dim:本次迭代的起始維。

全程量:

??????常量numDims:維的總數。

??????常量cardinality[numDims]:每個維的基數。

?????常量min_sup:分區中的元組的最少個數,滿足它的分區才輸出。

?????outputRec:當前輸出記錄。

?????dataCount[numDims]:存放每個分區的大小。dataCount[i]是大小為cardinality[i]的整數列表。

輸出:遞歸地輸出滿足最小支持度的冰山立方體單元。

方法:

??????Aggregate(input);//掃描整個input,計算度量(如count),并將結果存入outputRec

??????if?input.count()?==1?then?//優化

??????????WriteAncestors(input[0],dim);return;

??????end?if

??????write?outputRec;

??????for(d=dim;d<numDims;d++)?do?//劃分每個維

??????????C=cardinality[d];

??????????Partition(input,d,C,dataCount[d]);//對維d創建數據的C個分區

??????????k=0;

??????????for(i=0;i<C;i++)do?//對每個分區(維d的每個值)

??????????????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的性能容易受維的次序和傾斜數據的影響。理想地,應當首先處理最有區分能力的維。維應當以基數遞減序處理。基數越高,分區越小,因為分區越多,從而為BUC剪枝提供更多機會。維越均勻(即具有較小的傾斜),對剪枝越好。

BUC的主要貢獻是分擔劃分開銷的思想。不過,與MultiWay不同,BUC不在父母與子女的分組之間共享聚集計算。

3)Star-Cubing:使用動態星樹結構計算冰山立方體

Star-Cubing集成自頂向下和自底向上立方體計算,并利用多維聚集(類似MultiWay)和類Apriori剪枝(類似BUC),在一個稱為星樹(star-tree)的數據結構上操作,對該數據結構進行無損數據壓縮,從而降低計算時間和內存需求量。

Star-Cubing算法利用自底向上和自頂向下的計算模式:在全局計算次序上,使用自底向上模式;同時有一個基于自頂向下模式的子層,利用共享維的概念。如果共享維上的聚集值不滿足冰山條件,則沿該共享維向下的所有單元也不可能滿足冰山條件。

方體樹(cuboid?tree),樹的每一層代表一個維,每個結點代表一個屬性值;每個結點有四個字段:屬性值、聚集值、指向第一個子女的指針和指向第一個兄弟的指標;方體中的元組逐個插入組中,一條從根到樹葉結點的路徑代表一個元組。如果單個維在屬性值p上的聚集不滿足冰山條件,則在冰山立方體計算中識別這樣的節點沒有意義。這樣的結點p用*替換,使方體樹可以進一步壓縮。如果單個維p上的聚集不滿足冰山條件,則稱屬性A中的結點p是星結點(star?node);否則,稱p為非星結點(non-star?node)。使用星結點壓縮的方體樹稱為星樹(star-tree)。

先構造星樹,在應用Star-Cubing算法計算冰山立方體,算法如下:

算法:Star-Cubing,通過Star-Cubing計算冰山立方體。

輸入:R:關系表;

??????min_support:冰山立方體條件的最小支持度閾值(取count作為度量)。

輸出:計算的冰山立方體

方法:每顆星樹對應于一個方體樹結點,反之亦然。

??????Begin

???????????掃描R兩次,創建星表S和星樹T;

???????????輸出T.root的count;

???????????調用starcubing(T,T.root);

??????End

??????Procedure?starcubing(T,cnode)?//cnode:當前結點

??????{

??????????for?T的方體樹的每個非空子女C

??????????????插入或聚集cnode到C的星樹的對應位置或結點;

??????????if?(cnode.count≥min_support)?then?{

??????????????if?(cnode≠root)?then

??????????????????output?cnode.count;

??????????????if?(cnode?是葉結點)?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也可用來計算完全立方體。當計算稠密數據集的完全立方體時,Star-Cubing性能與MultiWay相當,比BUC快。如果數據集是稀疏的,則比MultiWay快,且大部分情況下比BUC快。對于冰山立方體計算,Star-Cubing比BUC快,其中數據是傾斜的,并且加速因子隨min_sup減小而增加。

4)為快速高維OLAP預計算殼片段

數據立方體有利于多維數據空間的快速OLAP,不過高維完全數據立方體需要海量存儲空間和不切司機的計算時間。冰山立方體是一個替代方案。但是冰山立方體本身的計算和存儲開銷還是比較高。于是提出計算一個很薄的立方體外殼(cube?shell),但這個方法不吃之在4維及以上OLAP。

這里關注的是OLAP查詢處理的外殼片段方法,方法基于一個觀察的事實:數據立方體有很多的維,不過大部分OLAP操作只在少數維上執行。如果可以在高維空間內部的少數維上快速計算多維聚集,則可以獲得快速OLAP,而不必物化原來的高維數據立方體。計算完全立方體(甚至冰山立方體或外殼立方體)都可能是多余的,利用一定預處理的半聯機計算模型是比較可行的解。給定基本方法,首先做一些快速預計算(即脫機),然后查詢可以使用預處理的數據上聯機計算。

外殼片段方法遵循半聯機計算策略,涉及兩個算法:一個計算外殼片段立方體;另一個用立方體片段處理查詢。外殼片段方法可以處理維度非常高的數據庫,并且可以快速聯機計算小的局部立方體,利用信息檢索和基于Web的信息系統中的倒排索引結構

外殼片段方法基本思想:給定一個高維數據集,把維劃分成互不相交的維片段,把每個片段轉換成倒排索引表示,然后構造立方體外殼片段,并保持與立方體單元相關聯的倒排索引。使用預計算的立方體外殼片段,可以聯機動態地組裝和計算所需要的數據立方體的方體單元,可通過倒排索引上的集合交(set?intersection)操作有效地完成。

外殼片段計算方法:

算法:Frag-Shells,計算給定的高維基本表(即基本方體)的外殼片段。

輸入:n維(A1,...,An)上的基本方體B。

輸出:

??????片段劃分的集合{P1,...,Pk}和它們對應的局部片段立方體{S1,...,Sk},其中Pi表示維的集合,并且P1U...UPk形成所有n個維。

??????ID_measure數組,如果度量不是元組計數count();

方法:

??????將維集合(A1,...,An)劃分成k個片段的集合(P1,...,Pk)(基于數據和查詢分布)

??????掃描基本方體B一次,并做如下工作{

??????????將每個<TID,measure>插入ID_measure數組

??????????for?每個維Ai的每個屬性值aj

??????????????建立一個倒排索引項:<aj,TIDList>

???????}

???????for?每個片段Pi

???????????取它們對應的ITD列表的交并計算它們的度量,構造局部片段立方體Si

案例可參考原書,關鍵是倒排索引結構的原理。

與完全立方體相比,外殼片段的存儲空間和計算時間開銷都可以忽略。通過在單個片段中包含所有的維,也可使用Frag-Shells算法計算完全數據立方體。由于方體格的計算次序是自頂向下和深度優先(類似于BUC),所以如果用來構造冰山立方體,那算法可以進行Apriori剪枝。

給定預計算的外殼片段,可將立方體空間看做虛擬立方體,并且聯機進行關于該立方體的OLAP查詢,有兩種可能查詢類型:點查詢和子立方體查詢。

點查詢顯示地提供相關維上被例示的變量集,通過找出最合適的(即逐維完全匹配的)片段,取出并與相關聯的TID列表取交,可最大限度地利用預計算的外殼片段。

子立方體查詢返回一個基于例示維和被詢問的維的局部數據立方體。這種數據立方體需要以多為方式聚集,使得用戶可以使用聯機分析處理(如鉆取、切塊、轉軸等),靈活地操縱和分析。

5.3?使用探索立方體技術處理高級查詢

基本數據立方體可擴充到各種復雜的數據類型和新的應用。如用于地理數據倉庫設計與實現的空間數據立方體,用于多媒體數據(包括圖像和視頻)多維分析的多媒體立方體,RFID數據立方體處理射頻識別(RFID)的壓縮和多維分析。文本立方體和論題立方體是分別為多維文本數據庫(包括結構屬性和敘事文本屬性)中向量空間模型和生成語言模型的應用開發。

1)抽樣立方體:樣本數據上基于OLAP的挖掘

傳統上,OLAP擁有整個數據總體,而用樣本數據只是一個小的子集,如果把OLAP工具用于樣本數據,會面臨兩類問題:第一,在多維意義下,樣本數據過于稀疏,樣本中的單個離群點或微小偏移都可能顯著影響結果;第二,使用樣本數據,統計學方法將用來提供可靠性度量,如置信區間,指出總體質量,而傳統?OLAP并無提供。

抽樣立方體旨在解決上面兩類問題。抽樣立方體(sampling?cube)是一種存儲樣本數據及其多維聚集的數據立方體結構,支持在樣本數據上的OLAP。抽樣立方體計算置信區間,作為多維查詢的質量度量。給定一個樣本數據關系R(即基本方體),抽樣立方體CR通常計算樣本均值、樣本標準差和其他針對任務的度量。


影響置信區間大小有兩個主要因素:樣本數據的方差和樣本大小。解決小樣本問題可以通過獲得更多的數據。可以通過鄰近單元中的數據來擴充,方體內查詢擴展考慮同一方體內的鄰近單元;方體間查詢擴展考慮查詢單元的更一般版本。

在精確地度量維與立方體的相關性上,計算維值域它們聚集立方體度量之間的相關性。通常,對數據數據用皮爾遜相關系數,而標稱數據使用卡方相關檢驗,也可使用協方差。t-檢驗是一種相對簡單的統計方法,可用來確定兩個樣本是否具有相同的均值。

2)排序立方體:top-K查詢的有效計算

top-K查詢(或排序查詢)根據用戶指定的優選條件,只返回最好的k個結果作為查詢的回答,而不是返回大量不加區分的結果。

給定按排定的序返回,使得最好的結果在頂部。通常,用戶指定的優選條件由兩部分組成:一個選擇條件和一個排序函數。

排序立方體一般原理是物化選擇屬性集上的立方體。使用排序維上基于區間的劃分使得排序立方體可以有效而靈活地支持用戶的臨時查詢。

5.4?數據立方體空間的多維數據分析

立方體空間的多維數據挖掘在各種粒度上把感興趣的數據組織成直觀的區域,在這些區域上系統地應用各種數據挖掘技術分析和挖掘數據。

融合OLAP分析和數據挖掘技術的方法有:使用立方體空間為數據挖掘定義數據空間;使用OLAP查詢為挖掘產生特征和目標;使用數據立方體計算技術加快重復模型的構建。

1)預測立方體:立方體空間的預測挖掘

預測立方體(prediction?cube)是一種立方體結構,存儲多維數據空間中的預測模型,并以OLAP方式支持預測。預測立方體的每個單元值都是通過對建立在該單元數據子集上的預測模型求值計算的,表示了對該數據子集行為的預測;不同于在數據立方體中,是在單元中的數據子集上計算聚集數值來獲得單元值。

預測立方體不是把預測模型看做最終結果,而是使用預測模型作為構件來定義數據子集的興趣度,即它們識別指示更準確預測的數據子集。

在預測立方體上支持OLAP上卷和下鉆操作需要在不同的粒度物化單元值。一種完全物化預測立方體的樸素方法是對每個單元和每個粒度評估。如果基本數據集很大,這這種方法開銷很大,采用基于概率的組合方法(probability-Based?Ensemble,PBE),只要求對最細粒度的單元構建模型,然后使用OLAP風格的自底向上的聚集產生粗粒度單元的值。預測模型的預測可以看做找出最大化評分函數的類標號。PBE方法要求任何預測模型的評分函數都是可分可解的。

2)多特征立方體:多粒度上的復雜聚集

????多特征立方體(multifeature?clube)計算更復雜的查詢,依賴于變化粒度層上多個聚集的分組,支持復雜的數據挖掘查詢。

3)基于異常的、發現驅動的立方體空間探查

探索數據立方體的發現驅動方法,幫助用戶智能地探查數據立方體巨大的聚集空間,指示數據異常的預計算的度量,在所有的聚集層來指導用戶的數據分析過程。異常(exception)是一個數據立方體單元值,基于某種統計模型,顯著地不同于預期值。

一個單元值是否異常要根據它與它的期望值相差多少判定,其中期望值使用統計模型確定。給定單元的值和它的期望值之間的差稱為殘差(residual)。直觀地,殘差越大,給定單元的值越異常。

發現驅動的探查構造數據立方體分三個階段:單元聚集計算,發現異常;模型擬合,計算標準殘差;基于標準殘差計算異常值。

5.5?小結

1)數據立方體的計算和探查在數據倉庫構建中扮演至關重要的角色,并且對于多維空間的靈活挖掘是重要的。

2)數據立方體由方體的格組成。每個方體都對應于給定多維數據的不同程度的匯總。完全物化是指計算數據立方體格中的所有方體。部分物化是指選擇性地計算格中方體單元的子集。冰山立方體和外殼片段都是部分物化的例子。冰山立方體是一種數據立方體,它僅存儲其聚集值(如count)大于某最小支持度閾值的立方體單元。對于數據立方體的外殼片段而言,只計算涉及少數維的某些方體。在附加維組合上的查詢可以臨時計算。

3)有效的數據立方體計算方法:多路數組聚集multiway,基于稀疏數組的、自底向上的、共享計算的物化整個數據立方體;BUC,通過探查有效的自頂向下計算次序和排序計算冰山立方體;Star-Cubing,使用星樹結構,集成自頂向下和自底向上計算,計算冰山立方體;外殼片段立方體,通過僅預計算劃分的立方體外殼片段,支持進行高維OLAP。

4)立方體空間中的多維數據挖掘是知識發現與多維數據立方體技術的集成。它有利于在大型結構化和半結構化的數據集中系統和聚焦地發現知識。它將繼續為分析者的多維和多粒度分析提供極大的靈活性和能力。對于構建功能強大的、復雜的數據挖掘機制的研究者而言,這是一個尚需大量研究的領域。

5)利用立方體進行高級查詢的技術,包括用于樣本數據的多維分析的抽樣立方體,用于大型關系數據庫中top-k查詢有效處理的排序立方體。

6)利用數據立方體進行多維數據分析的三種方法:預測立方體計算多維立方體空間的預測模型,幫助用戶識別變化的粒度級別上的數據的有趣子集;多特征立方體計算涉及多粒度上多個依賴的聚集的復雜查詢;立方體空間中基于異常的、發現驅動的探查顯示可視化提示,指示在所有聚集層上發現的異常,從而指導用戶的數據分析。

總結

以上是生活随笔為你收集整理的【数据挖掘笔记五】数据立方体技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。