專利名稱:一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)業(yè)務(wù)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法和裝置。
背景技術(shù):
網(wǎng)絡(luò)數(shù)據(jù)流是有序到達(dá)的數(shù)據(jù)包集合。它的無限性、連續(xù)性和速度快等特點(diǎn)使得網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)要同時(shí)統(tǒng)計(jì)所有的數(shù)據(jù)流信息是不現(xiàn)實(shí)的。已有對(duì)網(wǎng)絡(luò)數(shù)據(jù)流性質(zhì)的研究表明,數(shù)據(jù)流分布具有重尾分布特征(heavy-tailed distribution),即少量的IP流占據(jù)大部分的網(wǎng)絡(luò)流量。此少量的IP流稱為大流(heavy hitters)或頻繁項(xiàng)(frequententry)。假定當(dāng)前數(shù)據(jù)流長度為N,給定支持度s G (0,I),則所有頻率計(jì)數(shù)超過sN的數(shù)據(jù)項(xiàng)即為頻繁項(xiàng)。事實(shí)上,許多應(yīng)用,如網(wǎng)絡(luò)計(jì)費(fèi),負(fù)載均衡,拒絕服務(wù)攻擊檢測(cè)等僅需要頻繁項(xiàng)流量信息,丟棄小流信息。近年來,數(shù)據(jù)流頻繁項(xiàng)挖掘已成為ー個(gè)研究熱點(diǎn),并取得了一些研究成果。 Manku 和 Motwani 在又獻(xiàn)“Approximate frequency counts over data streams.In Proceedings of the 28th International conference on Very Large Data Base,August 2002”中提出基于確定區(qū)間的e近似數(shù)據(jù)流頻繁項(xiàng)挖掘算法-損耗計(jì)數(shù)(LossyCounting, LC)算法。該算法在內(nèi)存中維護(hù)ー個(gè)數(shù)據(jù)流表,記錄數(shù)據(jù)流的頻率估計(jì)值和誤差邊界。具體地,該算法將數(shù)據(jù)流均勻分片,某數(shù)據(jù)包到達(dá)時(shí),查詢數(shù)據(jù)流表中是否存在相應(yīng)的數(shù)據(jù)項(xiàng),有則相應(yīng)頻率計(jì)數(shù)值加1,否則在流表中插入新數(shù)據(jù)項(xiàng),初始頻率計(jì)數(shù)值為1,誤差邊界為上個(gè)分片結(jié)束時(shí)記錄的誤差邊界。當(dāng)?shù)竭_(dá)分片末尾吋,LC算法刪除頻率估計(jì)值和誤差邊界小于當(dāng)前分片索引的流,并記錄新的誤差邊界為當(dāng)前分片索引。LC算法對(duì)各個(gè)分片的處理方法相同。當(dāng)用戶發(fā)出數(shù)據(jù)頻繁項(xiàng)查詢吋,LC算法返回其頻率估計(jì)值和誤差邊界大于等于選定門限SN的數(shù)據(jù)項(xiàng)。LC算法實(shí)現(xiàn)簡單,可快速檢測(cè)數(shù)據(jù)流頻繁項(xiàng)。但LC算法指定誤差邊界為當(dāng)前分片索引,即數(shù)據(jù)流表中出現(xiàn)過的數(shù)據(jù)項(xiàng)的最大頻率計(jì)數(shù)值。LC算法的誤差邊界過大地估計(jì)了數(shù)據(jù)流大小,使算法具有較高的誤報(bào)率。Dimitropoulos和Hurley在又獻(xiàn)“Probabilistic lossy counting An efficientalgorithm for finding heavy hitters. ACM SIGCOMM Computer Communications Review,2008”中改進(jìn)了 LC算法中的誤差邊界估計(jì)方法,提出基于概率誤差區(qū)間的e近似算法ー概率損耗計(jì)數(shù)(Probabilistic Lossy Counting, PLC)算法。該算法源于數(shù)據(jù)流分布具有重尾分布特征,其基本思想是利用重尾分布特征估計(jì)滿足P(X> A) ^ 6的誤差邊界A。PLC算法在每個(gè)分片的結(jié)束,用pareto分布(最簡單的重尾分布模型)模擬重尾分布,計(jì)算新的誤差邊界值。當(dāng)網(wǎng)絡(luò)流量分布完全模擬重尾分布吋,PLC算法估計(jì)的誤差邊界反映了網(wǎng)絡(luò)流量的統(tǒng)計(jì)特性,小于LC算法估計(jì)的誤差邊界,降低誤報(bào)率,提高算法準(zhǔn)確率。且由于網(wǎng)絡(luò)流量中90-98%的流均為小流,PLC算法對(duì)誤差邊界的估計(jì)使它更大膽的移除小流,從而極大地減小空間消耗。但重尾分布變量具有高可變性和強(qiáng)烈的局部突發(fā),且與重尾分布的尾部指數(shù)密切相關(guān)。當(dāng)尾部指數(shù)變化吋,網(wǎng)絡(luò)流量分布背離重尾分布,不再適合用pareto分布模擬。因此,PLC算法估計(jì)的誤差邊界出現(xiàn)偏差,對(duì)數(shù)據(jù)流大小的估計(jì)會(huì)極不準(zhǔn)確,誤報(bào)率和漏報(bào)率增加,算法準(zhǔn)確率下降??梢?,如何提高挖掘數(shù)據(jù)流頻繁項(xiàng)的準(zhǔn)確率,是當(dāng)前亟待解決的技術(shù)問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法和裝置,以便提高挖掘數(shù)據(jù)流頻繁項(xiàng)的準(zhǔn)確性。本發(fā)明采用的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法,該方法包括
初始化樣本表和歷史信息表;根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息;根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng);其中,在樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息,歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息,所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí)。一種數(shù)據(jù)流頻繁項(xiàng)挖掘裝置,該裝置包括存儲(chǔ)模塊、更新模塊和確定模塊;所述存儲(chǔ)模塊,用于存儲(chǔ)樣本表和歷史信息表;其中,在樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息;歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息;所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí);所述更新模塊,用于根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息;所述確定模塊,用于根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng)。由上述技術(shù)方案可見,本發(fā)明存儲(chǔ)有樣本表和歷史信息表,根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,特別地,可以根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息,使得在估計(jì)數(shù)據(jù)項(xiàng)在數(shù)據(jù)流中出現(xiàn)的頻率時(shí),可以綜合考慮該數(shù)據(jù)項(xiàng)以往出現(xiàn)的頻率信息對(duì)當(dāng)前分片中出現(xiàn)的頻率信息的影響,從而使得樣本表中記錄的數(shù)據(jù)項(xiàng)頻率信息能夠更加真實(shí)地反映數(shù)據(jù)項(xiàng)在數(shù)據(jù)流中實(shí)際出現(xiàn)的頻率,因此使得根據(jù)樣本表中的頻率信息確定數(shù)據(jù)流頻繁項(xiàng)時(shí),其準(zhǔn)確性能夠得到提高。
圖I是本發(fā)明提供的數(shù)據(jù)流頻繁項(xiàng)挖掘方法流程圖。圖2是本發(fā)明進(jìn)行數(shù)據(jù)流頻繁項(xiàng)挖掘時(shí)的數(shù)據(jù)流處理流程圖。圖3是本發(fā)明根據(jù)當(dāng)前分片中的數(shù)據(jù)項(xiàng)信息對(duì)樣本表和歷史信息表進(jìn)行更新的方法流程圖。
圖4是本發(fā)明提供的查詢數(shù)據(jù)流頻繁項(xiàng)的方法流程圖。圖5是本發(fā)明實(shí)驗(yàn)的誤報(bào)率對(duì)比圖。圖6是本發(fā)明實(shí)驗(yàn)的漏報(bào)率對(duì)比圖。圖7是本發(fā)明實(shí)驗(yàn)的空間消耗對(duì)比圖。圖8是本發(fā)明提供的數(shù)據(jù)流頻繁項(xiàng)挖掘裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式圖I是本發(fā)明提供的數(shù)據(jù)流頻繁項(xiàng)挖掘方法流程圖。 如圖I所示,該方法包括
步驟101,初始化樣本表和歷史信息表。本步驟中,可以將樣本表和歷史信息表初始化為空。步驟102,根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息。本步驟中,通過更新樣本表和歷史信息表,使得樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息;使得歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息。其中,所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí)。步驟103,根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng)。本發(fā)明圖I所述方法通過引入數(shù)據(jù)項(xiàng)的歷史信息增強(qiáng)記憶性,以預(yù)保護(hù)候選的數(shù)據(jù)流頻繁項(xiàng),從而提高檢測(cè)準(zhǔn)確度。圖I所示方法需要維護(hù)兩個(gè)數(shù)據(jù)流表一,樣本表,用于保存最近出現(xiàn)的數(shù)據(jù)項(xiàng)信息;ニ,歷史信息表,用于記錄候選的數(shù)據(jù)流頻繁項(xiàng)的信息,即記錄可能成為數(shù)據(jù)流頻繁項(xiàng)的數(shù)據(jù)項(xiàng)。在對(duì)圖I所示方法進(jìn)行進(jìn)一步地詳細(xì)闡述前,先對(duì)后續(xù)將要用到的術(shù)語定義如下樣本表,用于存儲(chǔ)最近出現(xiàn)的數(shù)據(jù)項(xiàng)的信息,一般包括頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息,以及在數(shù)據(jù)流當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息。樣本表中數(shù)據(jù)項(xiàng)的信息具體包括數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、頻率估計(jì)值^和誤差邊界值A(chǔ),其數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)可以為(e,5, A)。歷史信息表,用于存儲(chǔ)候選的數(shù)據(jù)流頻繁項(xiàng)的信息,一般包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息。歷史信息表中數(shù)據(jù)項(xiàng)的信息具體包括數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、該數(shù)據(jù)項(xiàng)的信息被存入歷史信息表時(shí)該數(shù)據(jù)項(xiàng)所在的數(shù)據(jù)流分片索引i'、該數(shù)據(jù)項(xiàng)的信息被從樣本表中刪除時(shí)該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值與誤差邊界值之和f,其數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)可以為(e,i',f)。誤差參數(shù)e,是用戶許可的誤差,可由用戶設(shè)置。e的取值范圍是0< e <1,一般地,e くく S。其中,s是設(shè)定的支持度,0 < s < 1,s用于指定頻率估計(jì)值占數(shù)據(jù)流總長度多大比例的數(shù)據(jù)項(xiàng)為頻繁項(xiàng)。分片,用于將數(shù)據(jù)流分成多個(gè)數(shù)據(jù)片,分片的大小與誤差參數(shù)£有關(guān),一般每個(gè)分片包含w個(gè)數(shù)據(jù)元素,其中,「"!表示向上取整,其中的數(shù)據(jù)元素一般為數(shù)據(jù)包。
平滑常數(shù)q,用于表示歷史信息表中的頻率信息對(duì)樣本表中的誤差邊界產(chǎn)生影響的權(quán)重值。平滑常數(shù)q反映了網(wǎng)絡(luò)流量的動(dòng)態(tài)性,q的值越接近1,表示歷史信息表中的頻率信息對(duì)樣本表中的誤差邊界值影響越大,Q的值越接近0,表示歷史信息表中的頻率信息對(duì)樣本表中的誤差邊界值影響越小,即之前處理的分片對(duì)當(dāng)前分片的影響越小。經(jīng)總結(jié),本
發(fā)明中q的取值可以為:q = -Jj下面舉具體的例子,對(duì)圖I所示方法進(jìn)行詳細(xì)介紹,具體請(qǐng)參見圖2-圖。圖2是本發(fā)明進(jìn)行數(shù)據(jù)流頻繁項(xiàng)挖掘時(shí)的數(shù)據(jù)流處理流程圖。
步驟201,進(jìn)行參數(shù)初始化。本步驟中,設(shè)定誤差參數(shù)£和支持度S,所述誤差參數(shù)e和支持度s與用戶想要選擇的頻繁項(xiàng)的范圍有關(guān),一般由用戶設(shè)定。當(dāng)用戶指定誤差參數(shù)e的具體取值后,本發(fā)明根據(jù)樣本表中的數(shù)據(jù)項(xiàng)信息返回的頻繁項(xiàng)滿足e近似輸出,即所有真實(shí)頻率計(jì)數(shù)大于SN的數(shù)據(jù)項(xiàng)必須輸出為頻繁項(xiàng);所有真實(shí)頻率計(jì)數(shù)小于(s- e )N的數(shù)據(jù)項(xiàng)必須不能輸出為頻繁項(xiàng);所有輸出的頻繁項(xiàng)的估計(jì)頻率計(jì)數(shù)和真實(shí)頻率計(jì)數(shù)之差小于SN。在內(nèi)存中建立樣本表和歷史信息表,均初始化為空。樣本表的姆ー項(xiàng)保存ー個(gè)三元組記錄(e, c, A)。歷史信息表的條目也用三元組記錄標(biāo)識(shí)(e,i ',f)。對(duì)數(shù)據(jù)流均勻分片,每片包含切=「I/O個(gè)元素。分片被連續(xù)處理,分片索引由I開始遞増。當(dāng)前誤差邊界初始化為A = O。步驟202,根據(jù)數(shù)據(jù)流當(dāng)前分片中的數(shù)據(jù)項(xiàng)信息對(duì)樣本表和歷史信息表進(jìn)行更新。關(guān)于本步驟的具體更新方法,請(qǐng)參見圖3。步驟203,判斷當(dāng)前分片是否結(jié)束,如果結(jié)束,執(zhí)行步驟204,否則返回步驟202。步驟204,從樣本表中刪除頻率信息不滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息。本步驟中,從樣本表中刪除£ +A $ i的數(shù)據(jù)項(xiàng)的信息。步驟205,利用從樣本表中刪除的數(shù)據(jù)項(xiàng)信息更新歷史信息表中的數(shù)據(jù)項(xiàng)信息。本步驟中,從樣本表中刪除的數(shù)據(jù)項(xiàng)信息中,如果其£> I,則可以將相應(yīng)的數(shù)據(jù)項(xiàng)信息插入到歷史信息表中作為候選數(shù)據(jù)流頻繁項(xiàng),之所以選擇£> r的數(shù)據(jù)項(xiàng)作為候選數(shù)據(jù)流頻繁項(xiàng),是因?yàn)?,如果?shù)據(jù)項(xiàng)在每個(gè)分片中僅出現(xiàn)一次,可經(jīng)驗(yàn)地認(rèn)為該數(shù)據(jù)項(xiàng)不可能為數(shù)據(jù)流頻繁項(xiàng)。這樣做即節(jié)省了空間消耗,又不會(huì)降低頻繁項(xiàng)挖掘的準(zhǔn)確度。由于歷史信息表的空間有限,因此當(dāng)歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和大于歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)時(shí),只能從歷史信息表中已有的數(shù)據(jù)項(xiàng)和當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)中選擇部分?jǐn)?shù)據(jù)項(xiàng)進(jìn)行刪除,而將其余的數(shù)據(jù)項(xiàng)存儲(chǔ)在歷史信息表中。為了盡可能地在歷史信息表中存儲(chǔ)成為頻繁項(xiàng)的概率較大的數(shù)據(jù)項(xiàng),可以在歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)信息和當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)信息中選擇qH' f最小的n個(gè)數(shù)據(jù)項(xiàng)信息進(jìn)行刪除,以便把樣本表中最近的候選數(shù)據(jù)流頻繁項(xiàng)保存到歷史信息表中,并刪除歷史信息表中的老化候選數(shù)據(jù)流頻繁項(xiàng)。這是ー個(gè)動(dòng)態(tài)的更新過程,使歷史信息表中記錄的永遠(yuǎn)是最近的,最有可能成為候選數(shù)據(jù)流頻繁項(xiàng)。其中,n是本次更新前歷史信息表中的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和減去歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)所得的差。
在每一分片結(jié)束后,還可以計(jì)算下一分片的誤差邊界值A(chǔ) ',該誤差邊界值A(chǔ) '用于在步驟202中更新樣本表和歷史信息表時(shí),估計(jì)在樣本表和歷史信息表中均沒有出現(xiàn)的數(shù)據(jù)項(xiàng)的誤差邊界A,具體估計(jì)方法參見圖3的說明。具體地,在每一分片結(jié)束后,需要更新歷史信息表,假設(shè)分片結(jié)束更新歷史信息表時(shí)刪除了 qH' f最小的n個(gè)數(shù)據(jù)項(xiàng)信息,則該分片的誤差邊界值A(chǔ) '為這n個(gè)數(shù)據(jù)項(xiàng)信息中最大的 f f,即 A' = maxf)l,......,f)n)。關(guān)于歷史信息表所占用的空間大小,可以有多種確定方法,下面僅舉兩個(gè)例子進(jìn)行示例性說明其一,利用系統(tǒng)可使用的內(nèi)存資源指定合適的歷史信息表大小,此方法簡單且在內(nèi)存消耗上提供了很強(qiáng)的保證,但是內(nèi)存資源不能得到合理利用。其ニ,在目標(biāo)環(huán)境下使用訓(xùn)練數(shù)據(jù)集估計(jì)歷史信息表大小,即在每個(gè)分片結(jié)束時(shí),利用從樣本表中篩選出的候選數(shù)據(jù)流頻繁項(xiàng)的數(shù)目的最大值確定歷史信息表大小。步驟206,判斷數(shù)據(jù)流是否處理完畢,如果是,結(jié)束本流程,如果否,返回步驟202?!D3是本發(fā)明根據(jù)當(dāng)前分片中的數(shù)據(jù)項(xiàng)信息對(duì)樣本表和歷史信息表進(jìn)行更新的方法流程圖。如圖3所示,該方法包括步驟301,從當(dāng)前分片中取出一數(shù)據(jù)項(xiàng)。步驟302,查找樣本表中是否存在該數(shù)據(jù)項(xiàng)的信息,如果是,執(zhí)行步驟303,否則執(zhí)行步驟304。步驟303,將該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值6加1,進(jìn)入步驟307。步驟304,查找歷史信息表中是否存在該數(shù)據(jù)項(xiàng)的信息,如果是,執(zhí)行步驟305,否則執(zhí)行步驟306。步驟305,將該數(shù)據(jù)項(xiàng)的信息從歷史信息表中刪除,并插入樣本表中,進(jìn)入步驟307。本步驟中,如果該數(shù)據(jù)項(xiàng)在歷史信息表中的信息為(e,i',f),則將該數(shù)據(jù)項(xiàng)插入樣本表中后,其在樣本表中的信息為(e,l,qM/ f),即將該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值S記為I,誤差邊界值A(chǔ)記為q1-1' f。 步驟306,將該數(shù)據(jù)項(xiàng)的信息記錄在樣本表中,其中,該數(shù)據(jù)項(xiàng)的頻率估計(jì)值d記為1,誤差邊界值A(chǔ)記為上一分片結(jié)束時(shí)計(jì)算的誤差邊界值A(chǔ) '。步驟307,判斷當(dāng)前分片是否已結(jié)束,如果是,結(jié)束本流程,否則返回步驟301。在圖2所示方法中,任何時(shí)刻如果用戶想要查詢數(shù)據(jù)流頻繁項(xiàng),則遍歷樣本表,根據(jù)用戶輸入的支持度s查詢出相應(yīng)的頻繁項(xiàng),具體請(qǐng)參見圖4。圖4是本發(fā)明提供的查詢數(shù)據(jù)流頻繁項(xiàng)的方法流程圖。如圖4所示,該方法包括步驟401,接收用戶輸入的支持度S。步驟402,從樣本表中取出一數(shù)據(jù)項(xiàng)。步驟403,判斷該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值ろ與誤差邊界值A(chǔ)之和是否大于SN,如果是,執(zhí)行步驟404,如果否,執(zhí)行步驟405。其中,N是截止到當(dāng)前時(shí)刻已處理的數(shù)據(jù)流的長度。
步驟404,將該數(shù)據(jù)項(xiàng)輸出為頻繁項(xiàng)。步驟405,判斷該樣本表是否已遍歷結(jié)束,如果是,結(jié)束本流程,如果否,返回步驟402。圖4所示方法輸出的頻繁項(xiàng)包括兩類第一類是真實(shí)頻率大于SN的數(shù)據(jù)項(xiàng),第二類是真實(shí)頻率在(s-ON之間的數(shù)據(jù)項(xiàng)。其中的第二類是誤報(bào)項(xiàng),即將本不是頻繁項(xiàng)的數(shù)據(jù)項(xiàng)誤報(bào)為頻繁項(xiàng)。為了驗(yàn)證本發(fā)明提供的數(shù)據(jù)項(xiàng)挖掘方法的性能優(yōu)勢(shì),本申請(qǐng)人特做如下實(shí)驗(yàn)從MAWI網(wǎng)絡(luò)中采集的15個(gè)數(shù)據(jù)集以及中國科學(xué)院校園網(wǎng)絡(luò)骨干網(wǎng)絡(luò)出口采集的200多個(gè)數(shù)據(jù)集中分別選擇I個(gè)有代表性的數(shù)據(jù)集Trance I和Trance II進(jìn)行實(shí)驗(yàn),數(shù)據(jù)集的統(tǒng)計(jì)信息參見表一。
表一
數(shù)據(jù)集標(biāo)號(hào)Trace ITrace II
來源"mawi網(wǎng)絡(luò)數(shù)據(jù)集校園網(wǎng)絡(luò)數(shù)據(jù)集
2008-12-16
米集日期2009-08-24 16:20-16:35
14:00-14:15
數(shù)據(jù)包個(gè)數(shù) 23,602,51649,999,860
唯一數(shù)據(jù)流1,534,2114,136,226本申請(qǐng)人采用表一真實(shí)的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行實(shí)驗(yàn),在實(shí)驗(yàn)中采用的誤差參數(shù)e =0. 001%,即每個(gè)分片處理的數(shù)據(jù)包個(gè)數(shù)為100000,支持度s選取三個(gè)值,分別為s = 1%,s = 0. I 和 s = 0. 05 。本申請(qǐng)人根據(jù)實(shí)驗(yàn)結(jié)果,從誤報(bào)率、漏報(bào)率、空間消耗和計(jì)算復(fù)雜度四個(gè)方面對(duì)本發(fā)明的頻繁項(xiàng)挖掘方法與LC算法和PLC算法進(jìn)行驗(yàn)證,具體請(qǐng)參見圖5-圖7以及表ニ。其中,誤報(bào)率指的是周期性的進(jìn)行數(shù)據(jù)流頻繁項(xiàng)查詢,頻繁項(xiàng)挖掘系統(tǒng)誤報(bào)的頻繁項(xiàng)在返回的頻繁項(xiàng)總數(shù)中所占的比例。漏報(bào)率指的是周期性的進(jìn)行數(shù)據(jù)流頻繁項(xiàng)查詢,頻繁項(xiàng)挖掘系統(tǒng)漏報(bào)的頻繁項(xiàng)在返回的頻繁項(xiàng)總數(shù)中所占的比例??臻g消耗是通過監(jiān)測(cè)頻繁項(xiàng)挖掘系統(tǒng)使用的數(shù)據(jù)結(jié)構(gòu)保存的數(shù)據(jù)流條目數(shù)進(jìn)行比較。計(jì)算復(fù)雜度是通過在相同環(huán)境下単數(shù)據(jù)項(xiàng)的更新時(shí)間進(jìn)行比較。圖5是本發(fā)明實(shí)驗(yàn)的誤報(bào)率對(duì)比圖。圖6是本發(fā)明實(shí)驗(yàn)的漏報(bào)率對(duì)比圖。圖7是本發(fā)明實(shí)驗(yàn)的空間消耗對(duì)比圖。圖5至圖7中,MLC代表本發(fā)明的方法。表ニ是本發(fā)明的計(jì)算復(fù)雜度對(duì)比表。表ニ
權(quán)利要求
1.一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法,其特征在于,該方法包括 初始化樣本表和歷史信息表; 根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率,更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息; 根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng); 其中,在樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息, 歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息, 所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率,更新樣本表和歷史信息表包括 在每一分片結(jié)束時(shí),從樣本表中刪除頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息,利用從樣本表中刪除的數(shù)據(jù)項(xiàng)信息更新歷史信息表中的數(shù)據(jù)項(xiàng)信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在干, 樣本表中存儲(chǔ)的數(shù)據(jù)項(xiàng)信息包括該數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、頻率估計(jì)值S和誤差邊界值A(chǔ) ; 歷史信息表中存儲(chǔ)的數(shù)據(jù)項(xiàng)信息包括該數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、該數(shù)據(jù)項(xiàng)的信息被存入歷史信息表時(shí)該數(shù)據(jù)項(xiàng)所在的數(shù)據(jù)流分片索引i'、該數(shù)據(jù)項(xiàng)的信息被從樣本表中刪除時(shí)該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值與誤差邊界值之和f ; 所述根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息包括 在當(dāng)前分片中的數(shù)據(jù)項(xiàng)未出現(xiàn)在樣本表中,但是出現(xiàn)在歷史信息表中時(shí),將該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值S記為1,誤差邊界值A(chǔ)記為qH' f,其中,i是當(dāng)前數(shù)據(jù)流分片的索引號(hào),Q是根據(jù)數(shù)據(jù)流分片之間的聯(lián)系緊密程度預(yù)先設(shè)定的平滑參數(shù),O < q < I。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述利用從樣本表中刪除的數(shù)據(jù)項(xiàng)信息更新歷史信息表中的數(shù)據(jù)項(xiàng)信息包括 在歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和大于歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)時(shí),在歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)信息和當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)信息中選擇qH' f最小的n個(gè)數(shù)據(jù)項(xiàng)信息,刪除所述n個(gè)數(shù)據(jù)項(xiàng)信息; 其中,n是本次更新前歷史信息表中的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和減去歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)所得的差。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法還包括 在當(dāng)前分片結(jié)束吋,從所述n個(gè)數(shù)據(jù)項(xiàng)信息中選擇最大的qH' f 作為下ー個(gè)分片的誤差邊界值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息包括 在當(dāng)前分片中的數(shù)據(jù)項(xiàng)未出現(xiàn)在樣本表中,且未出現(xiàn)在歷史信息表中時(shí),將樣本表中該數(shù)據(jù)項(xiàng)的頻率估計(jì)值S記為1,誤差邊界值△記為上一分片結(jié)束時(shí)計(jì)算的誤差邊界值。
7.根據(jù)權(quán)利要求3所述的方法,其特征在干, 在當(dāng)前分片的數(shù)據(jù)項(xiàng)出現(xiàn)在樣本表中時(shí),將樣本表中該數(shù)據(jù)項(xiàng)的頻率估計(jì)值2加I。
8.根據(jù)權(quán)利要求2所述的方法,其特征在干,所述從樣本表中刪除頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息包括 將樣本表中頻率估計(jì)值5和誤差邊界值△之和小于或等于當(dāng)前分片的索引號(hào)的數(shù)據(jù)項(xiàng)信息從樣本表中刪除。
9.根據(jù)權(quán)利要求3所述的方法,其特征在干, 所述初始化樣本表和歷史信息表包括將樣本表和歷史信息表初始化為空; 在根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表之前,該方法還包括將所述誤差邊界值△初始化為O。
10.根據(jù)權(quán)利要求3所述的方法,其特征在干,
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng)包括 將樣本表中的頻率信息滿足.S + A > siV的數(shù)據(jù)項(xiàng)確定為數(shù)據(jù)流頻繁項(xiàng),其中,s是指定的支持度,0 < s < I。
12.—種數(shù)據(jù)流頻繁項(xiàng)挖掘裝置,其特征在于,該裝置包括存儲(chǔ)模塊、更新模塊和確定模塊; 所述存儲(chǔ)模塊,用于存儲(chǔ)樣本表和歷史信息表;其中,在樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息;歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息;所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí); 所述更新模塊,用于根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息; 所述確定模塊,用于根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng)。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在干, 所述更新模塊,用于在每一分片結(jié)束時(shí),從樣本表中刪除頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息,利用從樣本表中刪除的數(shù)據(jù)項(xiàng)信息更新歷史信息表中的數(shù)據(jù)項(xiàng)信息。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在干, 樣本表中存儲(chǔ)的數(shù)據(jù)項(xiàng)信息包括該數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、頻率估計(jì)值^和誤差邊界值A(chǔ) ; 歷史信息表中存儲(chǔ)的數(shù)據(jù)項(xiàng)信息包括該數(shù)據(jù)項(xiàng)的流標(biāo)識(shí)e、該數(shù)據(jù)項(xiàng)的信息被存入歷史信息表時(shí)該數(shù)據(jù)項(xiàng)所在的數(shù)據(jù)流分片索引i'、該數(shù)據(jù)項(xiàng)的信息被從樣本表中刪除時(shí)該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值與誤差邊界值之和f ; 所述更新模塊,用于在當(dāng)前分片中的數(shù)據(jù)項(xiàng)未出現(xiàn)在樣本表中,但是出現(xiàn)在歷史信息表中時(shí),將該數(shù)據(jù)項(xiàng)在樣本表中的頻率估計(jì)值3記為1,誤差邊界值A(chǔ)記為qH' f,其中,i是當(dāng)前數(shù)據(jù)流分片的索引號(hào),q是根據(jù)數(shù)據(jù)流分片之間的聯(lián)系緊密程度預(yù)先設(shè)定的平滑參數(shù),O彡q < I。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在干, 所述更新模塊,用于在歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和大于歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)時(shí),在歷史信息表當(dāng)前的數(shù)據(jù)項(xiàng)信息和當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)信息中選擇qH, f最小的n個(gè)數(shù)據(jù)項(xiàng)信息,刪除所述n個(gè)數(shù)據(jù)項(xiàng)信息; 其中,n是本次更新前歷史信息表中的數(shù)據(jù)項(xiàng)個(gè)數(shù)與當(dāng)前從樣本表中刪除的數(shù)據(jù)項(xiàng)個(gè)數(shù)之和減去歷史信息表最大能夠存儲(chǔ)的數(shù)據(jù)項(xiàng)個(gè)數(shù)所得的差。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在干, 所述更新模塊,用于在每一分片結(jié)束吋,從所述n個(gè)數(shù)據(jù)項(xiàng)信息中選擇最大的qH' f作為下一分片的誤差邊界值,在當(dāng)前分片中的數(shù)據(jù)項(xiàng)未出現(xiàn)在樣本表中,且未出現(xiàn)在歷史信息表中時(shí),將樣本表中該數(shù)據(jù)項(xiàng)的頻率估計(jì)值S記為1,誤差邊界值A(chǔ)記為上一分片結(jié)束時(shí)計(jì)算的誤差邊界值。
17.根據(jù)權(quán)利要求14所述的裝置,其特征在干, 所述更新模塊,用于在當(dāng)前分片的數(shù)據(jù)項(xiàng)出現(xiàn)在樣本表中時(shí),將樣本表中該數(shù)據(jù)項(xiàng)的頻率估計(jì)值S加I。
18.根據(jù)權(quán)利要求14所述的裝置,其特征在干, 所述確定模塊,用于將樣本表中的頻率信息滿足5 +AとSiV的數(shù)據(jù)項(xiàng)確定為數(shù)據(jù)流頻繁項(xiàng),其中,s是指定的支持度,O < s < 1,N是所述數(shù)據(jù)流的長度。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)流頻繁項(xiàng)挖掘方法和裝置。該方法包括初始化樣本表和歷史信息表;根據(jù)數(shù)據(jù)流中數(shù)據(jù)項(xiàng)出現(xiàn)的頻率更新樣本表和歷史信息表,其中,根據(jù)歷史信息表中數(shù)據(jù)項(xiàng)的頻率信息確定該數(shù)據(jù)項(xiàng)在樣本表中的頻率信息;根據(jù)樣本表中數(shù)據(jù)項(xiàng)的頻率信息確定數(shù)據(jù)流頻繁項(xiàng);其中,在樣本表中存儲(chǔ)的信息包括在數(shù)據(jù)流中出現(xiàn)的頻率信息滿足預(yù)定條件的數(shù)據(jù)項(xiàng)的信息、以及在該數(shù)據(jù)流的當(dāng)前分片中出現(xiàn)的數(shù)據(jù)項(xiàng)的信息,歷史信息表中存儲(chǔ)的信息包括在所述數(shù)據(jù)流中出現(xiàn)過、且其頻率信息不滿足所述預(yù)定條件的數(shù)據(jù)項(xiàng)的信息,所述數(shù)據(jù)項(xiàng)的信息包括數(shù)據(jù)項(xiàng)的頻率信息和數(shù)據(jù)項(xiàng)標(biāo)識(shí)。應(yīng)用本發(fā)明能夠提高挖掘數(shù)據(jù)流頻繁項(xiàng)的準(zhǔn)確性。
文檔編號(hào)G06F17/30GK102760132SQ20111010855
公開日2012年10月31日 申請(qǐng)日期2011年4月28日 優(yōu)先權(quán)日2011年4月28日
發(fā)明者徐良 申請(qǐng)人:中國移動(dòng)通信集團(tuán)浙江有限公司