基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法
【專利摘要】本發(fā)明提出了基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法。該方法采用兩層樹形的通信結(jié)構(gòu),包括m個葉子節(jié)點和1個根節(jié)點。葉子節(jié)點負責處理數(shù)據(jù)流中的數(shù)據(jù)項,并在數(shù)據(jù)項頻率的增量超過閾值時向根節(jié)點發(fā)送頻率增量。根節(jié)點負責收集葉子節(jié)點傳遞的更新。該方法通信開銷小,同時可以實時響應用戶發(fā)起的頻繁項查詢請求。
【專利說明】
基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法
技術(shù)領域
[0001] 本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領域,涉及一種頻繁項挖掘方法,特別是涉及適用于分 布式架構(gòu)的頻繁項挖掘方法。
【背景技術(shù)】
[0002] 在關(guān)聯(lián)規(guī)則挖掘、序列模式挖掘、相關(guān)性挖掘、多層模式挖掘等數(shù)據(jù)挖掘問題中, 頻繁項挖掘既是基本步驟,也是關(guān)鍵步驟。目前有許多在單一節(jié)點上數(shù)據(jù)流的頻繁項挖掘 的研究,這些研究大致可以劃分兩類:基于計數(shù)器的方法和基于sketch的方法。
[0003] 基于計數(shù)器的頻繁項挖掘方法會維護一組計數(shù)器用來統(tǒng)計數(shù)據(jù)項的頻率。每個計 數(shù)器包含兩個參數(shù),分別是數(shù)據(jù)項名稱和數(shù)據(jù)項頻率。當數(shù)據(jù)流中有數(shù)據(jù)項到來時,如果維 護的計數(shù)器中存在這個數(shù)據(jù)項,則相應增加該計數(shù)器所記錄的頻率;否則增加一個新的計 數(shù)器用來存儲新數(shù)據(jù)項或者替換一個原有的計數(shù)器。通?;谟嫈?shù)器的頻繁項挖掘方法處 理單個數(shù)據(jù)項的開銷很低,但是需要周期性地對所有計數(shù)器進行排序?;谟嫈?shù)器的頻繁 項挖掘方法有Frequent、Space Saving和Lossy Counting等。
[0004] 基于sketch的方法采用由一維或者兩維計數(shù)器數(shù)組構(gòu)成的哈希表來估計數(shù)據(jù)流 中各個數(shù)據(jù)項的頻率。這類方法通常采用哈希技術(shù)將每個數(shù)據(jù)項映射到對應的多個計數(shù)器 上,單個計數(shù)器可能被多個數(shù)據(jù)項所共享,即具有相同哈希值的數(shù)據(jù)項共享同一個計數(shù)器。 當一個數(shù)據(jù)項到達時,只需修改對應的計數(shù)器的值。當用戶提交查詢請求時,使用對應的計 數(shù)器的值來估計頻率,能夠以較高的置信度將誤差控制在一定的范圍之內(nèi)。一般而言,基于 哈希的方法需要額外數(shù)據(jù)結(jié)構(gòu)的支持,如使用一個堆來跟蹤候選的頻繁項?;赟kech頻繁 項挖掘方法有CountSketch、CountMin Sketch和hCount等。
[0005] 傳統(tǒng)的頻繁項挖掘方法大多只考慮將單一數(shù)據(jù)源在單一節(jié)點上進行處理,然而目 前在很多實際應用中,需要挖掘的數(shù)據(jù)是大規(guī)模分布式的,例如網(wǎng)絡監(jiān)控中的流檢測、DD0S 攻擊檢測等。目前針對分布式流環(huán)境下的頻繁項挖掘方法的研究主要包括A.Man jhi提出的 適用于樹形或是多路徑圖形的拓撲結(jié)構(gòu)的Tributary-Delta方法;G.Cormode提出的一種可 以連續(xù)跟蹤高速度分布式流中的頻繁項的近似方法;B. Babcock和C.Olston提出的分布式 top-k監(jiān)聽的方法等。這些方法存在的主要不足包括:通信開銷過大以及不支持實時查詢。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明目的是解決現(xiàn)有方法存在通信開銷過大以及不支持實時查詢的問題,提供 一種基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法,可用以提高傳統(tǒng)頻繁項挖掘方法在分布式 架構(gòu)上的處理能力。
[0007] 本發(fā)明提供了基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法,該方法是一種帶權(quán)值的 分布式數(shù)據(jù)流頻繁項挖掘方法的近似方法。該方法采用2層樹形的通信結(jié)構(gòu),包括m個葉 子節(jié)點和1個根節(jié)點;所述葉子節(jié)點負責處理數(shù)據(jù)流中的數(shù)據(jù)項,將數(shù)據(jù)流中的數(shù)據(jù)項頻率 存儲在葉子節(jié)點的最小堆中,并在數(shù)據(jù)項頻率增量大于閾值時,將數(shù)據(jù)項頻率增量發(fā)送至 根節(jié)點;所述根節(jié)點負責計算數(shù)據(jù)項在整體架構(gòu)中的頻率估計值,將數(shù)據(jù)項頻率估計值存 儲在根節(jié)點的最小堆中;所述葉子節(jié)點的最小堆中存儲的條目包括數(shù)據(jù)項名稱、數(shù)據(jù)項頻 率以及數(shù)據(jù)項頻率增量;所述根節(jié)點的最小堆中存儲的條目包括數(shù)據(jù)項名稱以及數(shù)據(jù)項頻 率估計值。
[0008] 本發(fā)明技術(shù)方案:
[0009] 步驟1)、每個葉子節(jié)點i從所收到的數(shù)據(jù)流中依次取出數(shù)據(jù)項,所述數(shù)據(jù)項包括數(shù) 據(jù)項名稱Vt及數(shù)據(jù)項頻率Cv, t;
[0010] 步驟2)、更新所述葉子節(jié)點的數(shù)據(jù)項頻率之和化=化+(^以及數(shù)據(jù)項頻率之和的 增量A i= A i+Cv,t,其中的等號表述賦值,下同;
[0011] 步驟3)、根據(jù)步驟1)所取出的數(shù)據(jù)項的數(shù)據(jù)項名稱vt和數(shù)據(jù)項頻率~,*在所述的 葉子節(jié)點的最小堆出中找出合適的條目,并為該條目中的數(shù)據(jù)項名稱、數(shù)據(jù)項頻率以及數(shù) 據(jù)項頻率增量賦值;該步驟包括:
[0012] 步驟3-1)、判斷所述的葉子節(jié)點的最小堆中是否存在數(shù)據(jù)項名稱為vt的條目,若 存在執(zhí)行下一步,否則,執(zhí)行步驟3-5);
[0013]步驟3-2)、判斷所述的葉子節(jié)點的最小堆出是否已滿,若已滿,執(zhí)行下一步,否則, 執(zhí)行步驟3-4);
[0014]步驟3-3)、從所述的葉子節(jié)點的最小堆Hi中取出數(shù)據(jù)項頻率最小的條目itemmin, 對該條目重新賦值,然后執(zhí)行步驟4);其中,對該條目賦值包括:
[0015] 令v -Vt,Cv - Cv+Cv, t,A v -Cv, t ;
[0016] 所述的v表示取出條目的數(shù)據(jù)項名稱,所述的Vt表示取出的數(shù)據(jù)項的數(shù)據(jù)項名稱, 所述的cv表示取出條目的數(shù)據(jù)項頻率,所述的c v,t表示取出的數(shù)據(jù)項的數(shù)據(jù)項頻率,所述的 A v表示取出條目的數(shù)據(jù)項頻率增量;
[0017] 步驟3-4)、創(chuàng)建一個新條目并為新條目賦值,將新條目插入所述的葉子節(jié)點的最 小堆出中,然后執(zhí)行步驟4);其中,對新條目賦值包括:
[0018] 4'v = vt,Cv = cv,t, Av = cv,t;
[0019] 步驟3-5)、從所述的葉子節(jié)點的最小堆H沖取出已存在的條目并對該條目 進行更新,然后執(zhí)行步驟4);其中,對該條目更新包括:
[0020] 令Cv=Cv+Cv,t,A v= A v+cv,t;
[0021] 步驟4)、判斷所述的數(shù)據(jù)項頻率之和的增量以及所述條目的數(shù)據(jù)項頻率增量是否 大于閾值,如果大于閾值,向根節(jié)點傳遞更新;該步驟包括:
[0022]步驟4-1)、判斷所述的數(shù)據(jù)項頻率之和的增量A :是否滿足A ,如果滿足, 執(zhí)行下一步,否則,執(zhí)行步驟4-3);其中,
[0023]所述的隊表示用戶定義的葉子節(jié)點的更新延遲系數(shù),所述的化表示所述葉子節(jié)點 的數(shù)據(jù)項頻率之和;
[0024] 步驟4-2)、所述的葉子節(jié)點向根節(jié)點發(fā)送0-msg更新,然后將A啲值置為〇;其中
[0025] 所述的0-msg更新發(fā)送的內(nèi)容包括所述的數(shù)據(jù)項頻率之和的增量A 1;
[0026] 步驟4-3)、所述的條目的數(shù)據(jù)項頻率增量A v是否滿足A ¥>隊化,如果滿足,執(zhí)行 下一步,否則,執(zhí)行步驟5);
[0027]所述的隊表示用戶定義的葉子節(jié)點的更新延遲系數(shù),所述的化表示所述葉子節(jié)點 的數(shù)據(jù)項頻率之和;
[0028] 步驟4-4)、所述的葉子節(jié)點向根節(jié)點發(fā)送數(shù)據(jù)項更新,然后將A v的值置為〇;其中
[0029] 所述的數(shù)據(jù)項更新發(fā)送的內(nèi)容包括所述的條目的數(shù)據(jù)項名稱以及所述的條目的 數(shù)據(jù)項頻率增量A v;
[0030] 步驟5)、所述的根節(jié)點從所述的葉子節(jié)點發(fā)送的更新中依次取出更新,并根據(jù)取 出的更新維護相應的數(shù)據(jù);該步驟包括:
[0031] 步驟5-1)、判斷根節(jié)點取出的所述葉子節(jié)點發(fā)送的更新的類型,如果是0-msg更 新,執(zhí)行下一步,如果是數(shù)據(jù)項更新,執(zhí)行步驟5-3);
[0032]步驟5-2)、更新所述的根節(jié)點的數(shù)據(jù)項頻率之和的估計值N = N+A :,其中等號表 示賦值,然后執(zhí)行步驟6);其中,
[0033] 所述的N表示根節(jié)點的數(shù)據(jù)項頻率之和的估計值,所述的A :表示所述的葉子節(jié)點 發(fā)送的〇-msg更新的頻率;
[0034] 步驟5-3)、更新所述的根節(jié)點的最小堆Ho;該步驟包括:
[0035] 步驟5-3-1)、取出所述的葉子節(jié)點發(fā)送的更新中的數(shù)據(jù)項名稱vt以及數(shù)據(jù)項頻率 增量A v,t;
[0036]步驟5-3-2)、判斷所述的根節(jié)點的最小堆中是否存在數(shù)據(jù)項名稱為vt的條目 itemv,若存在執(zhí)行下一步,否則,執(zhí)行步驟5-3-4);
[0037]步驟5-3-3)、取出所述的條目itemv,對并對該條目進行更新,然后執(zhí)行步驟6);其 中,對該條目更新包括:
[0038] 令Cv=Cv+Av,t,其中等號表示賦值;
[0039] 所述的v表示取出條目的數(shù)據(jù)項名稱,所述的Cv表示取出條目的數(shù)據(jù)項頻率,所述 的A v,t表示取出數(shù)據(jù)項更新的數(shù)據(jù)項頻率增量;
[0040] 步驟5-3-4)、判斷所述的根節(jié)點的最小堆Ho是否已滿,若已滿,執(zhí)行下一步,否則 執(zhí)行5-3-6);
[00411步驟5-3-5)、取出所述的根節(jié)點的最小堆Ho中數(shù)據(jù)項頻率最小的條目itemmin,對 該條目重新賦值,然后執(zhí)行步驟6);其中,對該條目賦值包括:
[0042] 令v = vt,cv = cv+A v,t;
[0043] 所述的Vt表示取出的數(shù)據(jù)項更新的數(shù)據(jù)項名稱;
[0044] 步驟5-3-6 )、創(chuàng)建一個新條目并為新條目賦值,將新條目插入所述的根節(jié)點維護 的最小堆中,然后執(zhí)行步驟6);其中,對新條目賦值包括:
[0045] $v = Vt,Cv= A v,t;
[0046] 步驟6)、根據(jù)用戶的請求,根節(jié)點遍歷所述的最小堆Ho,返回所有數(shù)據(jù)項頻率 ,@的條目為所要挖掘的頻繁項。
[0047]本發(fā)明在所述的步驟4)和步驟5)之間還包括對葉子節(jié)點的最小堆出進行按照數(shù) 據(jù)項的頻率進行排序的操作步驟。
[0048]以及,在所述的步驟5)和步驟6)之間還包括對根節(jié)點的最小堆Ho進行按照數(shù)據(jù)項 的頻率進行排序的操作步驟。
[0049] 本發(fā)明的優(yōu)點和有益效果:
[0050] 本發(fā)明提供的方法輸出的頻繁項的數(shù)據(jù)項頻率的估計值與真實值之間的誤差不 大于_,單條鏈路上的最大通信開銷不大于
,可以支持用戶實時的頻繁項查詢。
【附圖說明】
[0051] 圖1是基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法的通信結(jié)構(gòu)。
[0052] 圖2是基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法的平均相對誤差。
[0053] 圖3是基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法的單鏈路通信開銷。
[0054] 圖4是基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法的初始化時間。
【具體實施方式】
[0055] 為了更清晰直觀的表達本發(fā)明的方法思路,下面對基于分布式架構(gòu)的數(shù)據(jù)流頻繁 項挖掘方法的細節(jié)進行詳細說明:
[0056] 1 ?確定參數(shù)
[0057]分布式頻繁項挖掘方法需要確定的參數(shù)包括:
[0058] (1)數(shù)據(jù)項支持度夢資供綠和誤差度似》綉《
[0059] (2)葉子節(jié)點數(shù)據(jù)m;
[0060] (3)每個葉子節(jié)點i和根節(jié)點的最小堆Hi和Ho的大小為;
[0061] (4)每個葉子節(jié)點i的延遲更新系數(shù)&(0<&<£)。
[0062]在本實施例中葉子節(jié)點數(shù)量m = 8,葉子節(jié)點和根節(jié)點的最小堆的大小均為10000, 即a0 = ai = 〇.〇〇〇1[0.001,0? 005],eG [0.0001,0? 0005],f =
[0063] 2.初始化
[0064] 確定每個葉子節(jié)點i的初始化時間為
為葉子節(jié)點i與根節(jié)點之間鏈 路的帶寬,單位為數(shù)據(jù)包/秒。在本發(fā)明方法運行的最初時刻,每個葉子節(jié)點i會處理收到的 來自數(shù)據(jù)流Si的數(shù)據(jù)項更新,但卻不會將任何消息傳遞給它的根節(jié)點直至初始化狀態(tài)結(jié) 束。
[0065] 3.葉子節(jié)點處理數(shù)據(jù)流中的數(shù)據(jù)項
[0066]當數(shù)據(jù)流S沖有新數(shù)據(jù)項(v,cv,t)到達葉子節(jié)點i時,首先更新數(shù)據(jù)流S沖數(shù)據(jù)項 頻率之和Ni = Ni+cv,t,其中等號表示賦值,下同,以及數(shù)據(jù)項頻率之和的頻率估計值增量A i =A 1+Cv, t。其次更新相應的數(shù)據(jù)項頻率:如果v G出,則增加相應數(shù)據(jù)項條目的頻率估計值 cv = cv+cv, t和數(shù)據(jù)項v的頻率估計值增量A v= A v+Cv, t;否則找到Hi中頻率估計值最小的數(shù) 據(jù)項itemmin,將itemmin的數(shù)據(jù)項名替換為V,并更新其數(shù)據(jù)項頻率Cv = cv+Cv,t和頻率估計值 增量A v = Cv,t。最后檢查是否滿足條件向根節(jié)點傳遞數(shù)據(jù)項更新:如果A 發(fā)送更 新(0, 給根節(jié)點,并重置頻率估計值增量A1 = 〇;如果,則發(fā)送更新(v,Av)給 根節(jié)點,并重置頻率估計值增量A v=0。
[0067] 4.根節(jié)點處理葉子節(jié)點發(fā)送的更新
[0068]當根節(jié)點收到葉子節(jié)點傳遞的數(shù)據(jù)項更新(v,A v)時,如果VGHo,則增加相應數(shù)據(jù) 項條目的頻率估計值Cv = cv+ A v;否則找到Ho中頻率估計值最小的數(shù)據(jù)項itemmin,將itemmin 的數(shù)據(jù)項名替換為V,并更新其數(shù)據(jù)項頻率cv = cv+A V。當根節(jié)點收到葉子節(jié)點傳遞的o-msg 更新(0,A i)時,更新根節(jié)點對數(shù)據(jù)項頻率之和的估計值No = No+ A i。
[0069] 5.根節(jié)點處理用戶發(fā)起的頻繁項查詢
[0070] 當用戶向根節(jié)點提交頻繁項查詢時,根節(jié)點掃描最小堆Ho中維護的每個數(shù)據(jù)項條 目(v,cv)。如果cv^coNo,則認為v是頻繁項并將v輸出,其中《為輸出閾值,有 穸4 +免《松玄麥認令爲織、),爹為用戶定義的數(shù)據(jù)項支持度,amax = max(ai),0max=max (f3i)0
[0071] 本發(fā)明采用現(xiàn)實數(shù)據(jù)與計算機模擬的方式實施。
[0072] 本發(fā)明選擇3組真實的網(wǎng)絡環(huán)境下采集的網(wǎng)絡流量數(shù)據(jù)集作為實施例中的數(shù)據(jù) 源。這3組數(shù)據(jù)集分別是:CERNET數(shù)據(jù)集,是在CERNET(China Education and Research Network)的OC-48鏈路上采集的TCP雙向數(shù)據(jù)集;CAIDA48數(shù)據(jù)集,是在0C-48west coast peering link上采集的匿名數(shù)據(jù)集;CAIDA192數(shù)據(jù)集,是在0C-192鏈路上采集的單項匿名 數(shù)據(jù)集。本發(fā)明將網(wǎng)絡流量數(shù)據(jù)集中IP數(shù)據(jù)包的五元組(源IP地址,目的IP地址,源端口,目 的端口,傳輸層協(xié)議)定義為數(shù)據(jù)項名,將數(shù)據(jù)包負載的長度定義為數(shù)據(jù)項頻率。
[0073] 定義更新延遲系數(shù)0的相對值為
,.圖2顯示了本發(fā)明方法處理3組不同的網(wǎng)絡數(shù)據(jù) 集的平均相對誤差??梢杂^測到,在ee [0.0001,0. 0005]時,方法的平均相對誤差均小于當 前e的值與N乘積。
[0074]圖3顯示了本發(fā)明方法處理3組不同的網(wǎng)絡數(shù)據(jù)集的單鏈路開銷。對于圖3的每幅 子圖,分別有4條曲線,由上至下每條曲線分別表示處理當前網(wǎng)絡數(shù)據(jù)集的單鏈路通信開銷 的理論最大值
單鏈路通信開銷的實際最大值、實際平均值以及實際最小值??梢杂^ 測到,單條鏈路上的實際最大通信開銷不大亍
[0075]圖4顯示了本發(fā)明方法的初始化時間。可以觀測到,更新延遲系數(shù)0的相對值越大, 本發(fā)明方法所需的初始化時間越少。
【主權(quán)項】
1. 一種基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法,該方法采用2層樹形的通信結(jié)構(gòu),包 括m個葉子節(jié)點和1個根節(jié)點;所述葉子節(jié)點負責處理數(shù)據(jù)流中的數(shù)據(jù)項,將數(shù)據(jù)流中的數(shù) 據(jù)項頻率存儲在葉子節(jié)點的最小堆中,并在數(shù)據(jù)項頻率增量大于閾值時,將數(shù)據(jù)項頻率增 量發(fā)送至根節(jié)點;所述根節(jié)點負責計算數(shù)據(jù)項在整體架構(gòu)中的頻率估計值,將數(shù)據(jù)項頻率 估計值存儲在根節(jié)點的最小堆中;所述葉子節(jié)點的最小堆中存儲的條目包括數(shù)據(jù)項名稱、 數(shù)據(jù)項頻率以及數(shù)據(jù)項頻率增量;所述根節(jié)點的最小堆中存儲的條目包括數(shù)據(jù)項名稱以及 數(shù)據(jù)項頻率估計值;該方法包括: 步驟1)、每個葉子節(jié)點i從所收到的數(shù)據(jù)流中依次取出數(shù)據(jù)項,所述數(shù)據(jù)項包括數(shù)據(jù)項 名稱vt及數(shù)據(jù)項頻率cv, t; 步驟2)、更新所述葉子節(jié)點的數(shù)據(jù)項頻率之和化=化+~,*以及數(shù)據(jù)項頻率之和的增量 Δ i= Δ i+Cv,t,其中的等號表述賦值,下同; 步驟3)、根據(jù)步驟1)所取出的數(shù)據(jù)項的數(shù)據(jù)項名稱vt和數(shù)據(jù)項頻率cv,t在所述的葉子節(jié) 點的最小堆出中找出合適的條目,并為該條目中的數(shù)據(jù)項名稱、數(shù)據(jù)項頻率以及數(shù)據(jù)項頻 率增量賦值;該步驟包括: 步驟3-1)、判斷所述的葉子節(jié)點的最小堆中是否存在數(shù)據(jù)項名稱為vt的條目,若存在執(zhí) 行下一步,否則,執(zhí)行步驟3-5); 步驟3-2)、判斷所述的葉子節(jié)點的最小堆出是否已滿,若已滿,執(zhí)行下一步,否則,執(zhí)行 步驟3-4); 步驟3-3)、從所述的葉子節(jié)點的最小堆Hi中取出數(shù)據(jù)項頻率最小的條目itemmin,對該條 目重新賦值,然后執(zhí)行步驟4);其中,對該條目賦值包括: - Vt,Cv-Cv+Cv,t,- Cv, t ; 所述的V表示取出條目的數(shù)據(jù)項名稱,所述的Vt表示取出的數(shù)據(jù)項的數(shù)據(jù)項名稱,所述 的Cv表示取出條目的數(shù)據(jù)項頻率,所述的Cv,t表示取出的數(shù)據(jù)項的數(shù)據(jù)項頻率,所述的Δν表 示取出條目的數(shù)據(jù)項頻率增量; 步驟3-4)、創(chuàng)建一個新條目并為新條目賦值,將新條目插入所述的葉子節(jié)點的最小堆出 中,然后執(zhí)行步驟4);其中,對新條目賦值包括: - Vt,Cv-Cv, t,Δ v -Cv, t ; 步驟3-5)、從所述的葉子節(jié)點的最小堆出中取出已存在的條目,并對該條目進行 更新,然后執(zhí)行步驟4);其中,對該條目更新包括: "^Cv - Cv+Cv, t,Αν - Δ v+Cv, t ; 步驟4)、判斷所述的數(shù)據(jù)項頻率之和的增量以及所述條目的數(shù)據(jù)項頻率增量是否大于 閾值,如果大于閾值,向根節(jié)點傳遞更新;該步驟包括: 步驟4-1)、判斷所述的數(shù)據(jù)項頻率之和的增量△1是否滿足,如果滿足,執(zhí)行下 一步,否則,執(zhí)行步驟4-3);其中, 所述的隊表示用戶定義的葉子節(jié)點的更新延遲系數(shù),所述的化表示所述葉子節(jié)點的數(shù) 據(jù)項頻率之和; 步驟4-2)、所述的葉子節(jié)點向根節(jié)點發(fā)送O-msg更新,然后將值置為0;其中 所述的Ο-msg更新發(fā)送的內(nèi)容包括所述的數(shù)據(jù)項頻率之和的增量Δ ,; 步驟4-3)、所述的條目的數(shù)據(jù)項頻率增量△ v是否滿足△ ¥>隊化,如果滿足,執(zhí)行下一 步,否則,執(zhí)行步驟5); 所述的隊表示用戶定義的葉子節(jié)點的更新延遲系數(shù),所述的化表示所述葉子節(jié)點的數(shù) 據(jù)項頻率之和; 步驟4-4)、所述的葉子節(jié)點向根節(jié)點發(fā)送數(shù)據(jù)項更新,然后將Δν的值置為0;其中 所述的數(shù)據(jù)項更新發(fā)送的內(nèi)容包括所述的條目的數(shù)據(jù)項名稱以及所述的條目的數(shù)據(jù) 項頻率增量Α ν; 步驟5)、所述的根節(jié)點從所述的葉子節(jié)點發(fā)送的更新中依次取出更新,并根據(jù)取出的 更新維護相應的數(shù)據(jù);該步驟包括: 步驟5-1)、判斷根節(jié)點取出的所述葉子節(jié)點發(fā)送的更新的類型,如果是0-msg更新,執(zhí) 行下一步,如果是數(shù)據(jù)項更新,執(zhí)行步驟5-3); 步驟5-2)、更新所述的根節(jié)點的數(shù)據(jù)項頻率之和的估計值N = N+Ai,其中等號表示賦 值,然后執(zhí)行步驟6);其中, 所述的N表示根節(jié)點的數(shù)據(jù)項頻率之和的估計值,所述的△ i表示所述的葉子節(jié)點發(fā)送 的0-msg更新的頻率; 步驟5-3 )、更新所述的根節(jié)點的最小堆Ho;該步驟包括: 步驟5-3-1)、取出所述的葉子節(jié)點發(fā)送的更新中的數(shù)據(jù)項名稱vt以及數(shù)據(jù)項頻率增量 Δ v, t; 步驟5-3-2)、判斷所述的根節(jié)點的最小堆中是否存在數(shù)據(jù)項名稱為vt的條目itemv,若 存在執(zhí)行下一步,否則,執(zhí)行步驟5-3-4); 步驟5-3-3)、取出所述的條目itemv,對并對該條目進行更新,然后執(zhí)行步驟6);其中,對 該條目更新包括: 令cv = cv+ Δ v,t,其中等號表示賦值; 所述的V表示取出條目的數(shù)據(jù)項名稱,所述的CV表示取出條目的數(shù)據(jù)項頻率,所述的 △ v,t表示取出數(shù)據(jù)項更新的數(shù)據(jù)項頻率增量; 步驟5-3-4)、判斷所述的根節(jié)點的最小堆Ho是否已滿,若已滿,執(zhí)行下一步,否則執(zhí)行5-3-6); 步驟5-3-5)、取出所述的根節(jié)點的最小堆Ho中數(shù)據(jù)項頻率最小的條目itemmin,對該條目 重新賦值,然后執(zhí)行步驟6);其中,對該條目賦值包括: - Vt,Cv - Cv+ Δ v, t; 所述的Vt表示取出的數(shù)據(jù)項更新的數(shù)據(jù)項名稱; 步驟5-3-6)、創(chuàng)建一個新條目并為新條目賦值,將新條目插入所述的根節(jié)點維護的最 小堆中,然后執(zhí)行步驟6);其中,對新條目賦值包括: 令V = Vt,Cv= Δ v,t; 步驟6)、根據(jù)用戶的請求,根節(jié)點遍歷所述的最小堆Ho,返回所有數(shù)據(jù)項頻率 玲凝的條目為所要挖掘的頻繁項。2. 根據(jù)權(quán)利要求1所述的基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法,其特征在于,在所 述的步驟4)和步驟5)之間還包括對葉子節(jié)點的最小堆出進行按照數(shù)據(jù)項的頻率進行排序 的操作步驟。3. 根據(jù)權(quán)利要求1所述的基于分布式架構(gòu)的數(shù)據(jù)流頻繁項挖掘方法,其特征在于,在所 述的步驟5)和步驟6)之間還包括對根節(jié)點的最小堆Ho進行按照數(shù)據(jù)項的頻率進行排序的 操作步驟。
【文檔編號】G06F17/30GK105930457SQ201610254621
【公開日】2016年9月7日
【申請日】2016年4月21日
【發(fā)明人】張玉, 徐敬東, 張建忠, 于博文, 陳正陽
【申請人】南開大學