一種增量式頻繁模式增長數(shù)據(jù)挖掘方法
【專利摘要】本發(fā)明涉及一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,包括1)將原數(shù)據(jù)庫分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算;2)將原數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分組,構(gòu)建局部的頻繁模式樹,通過遞歸過程提取各局部的頻繁項(xiàng)集;3)將各局部的頻繁項(xiàng)集進(jìn)行整合;4)更新閾值,對(duì)原數(shù)據(jù)庫執(zhí)行在新閾值下的支持度計(jì)數(shù);5)將局部頻繁模式樹更新,挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集;6)新增數(shù)據(jù)集得到新數(shù)據(jù)庫,挖掘新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集和新增的頻繁項(xiàng)集。與現(xiàn)有技術(shù)相比,本發(fā)明利用原有的頻繁數(shù)據(jù)項(xiàng)集及頻繁模式樹,只需對(duì)新增數(shù)據(jù)集進(jìn)行掃描即可獲取新的頻繁項(xiàng)集,不僅同時(shí)解決了閾值變化和數(shù)據(jù)庫增加兩種問題,還大大提高了效率。
【專利說明】一種增量式頻繁模式增長數(shù)據(jù)挖掘方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)挖掘【技術(shù)領(lǐng)域】,尤其是涉及一種增量式頻繁模式增長數(shù)據(jù)挖掘方法。
【背景技術(shù)】
[0002]數(shù)據(jù)挖掘是指從大量數(shù)據(jù)中尋找出隱含的、有潛在價(jià)值的信息的過程。隨著信息技術(shù)的飛速發(fā)展,醫(yī)療、互聯(lián)網(wǎng)等各個(gè)領(lǐng)域產(chǎn)生的數(shù)據(jù)量不斷增加。海量數(shù)據(jù)下隱藏的高價(jià)值知識(shí)使得數(shù)據(jù)分析的重要性日益突顯。然而,由于數(shù)據(jù)量過大,使用傳統(tǒng)的數(shù)據(jù)挖掘方法已經(jīng)無法滿足海量級(jí)別信息的分析處理需求,給有效利用這些數(shù)據(jù)帶來了困難。關(guān)聯(lián)規(guī)則挖掘是近年來數(shù)據(jù)挖掘領(lǐng)域中,最活躍且最為廣泛應(yīng)用的研究方向之一。關(guān)聯(lián)規(guī)則挖掘的最初目的是,商家從大量的消費(fèi)記錄中,尋找顧客所購商品的相關(guān)性,從而更好地指導(dǎo)銷售策略的制定。
[0003]目前,傳統(tǒng)關(guān)聯(lián)規(guī)則挖掘算法分為三大類,分別是Apriori算法、閉合頻繁項(xiàng)挖掘和頻繁模式增長算法。就算法的原理來看,Apriori算法需要重復(fù)多次掃描外存中的數(shù)據(jù)以獲取頻繁項(xiàng)集,因此I/O負(fù)載高、算法的執(zhí)行性能差。閉合頻繁項(xiàng)挖掘是對(duì)Apriori算法的改進(jìn),只有在處理特定類型數(shù)據(jù)時(shí)能減少掃描次數(shù),效率依舊不高。增量式頻繁模式增長算法僅通過2次掃描就能將所需的數(shù)據(jù)信息收集并壓縮至特殊的數(shù)據(jù)結(jié)構(gòu)——頻繁模式樹,減少了在輸入輸出上花費(fèi)的時(shí)間,使得算法效率得到很大提升。面向海量數(shù)據(jù)的數(shù)據(jù)挖掘一般有三種思路:抽樣、集成及MapReduce。從海量數(shù)據(jù)中抽樣,能夠迅速構(gòu)建數(shù)據(jù)挖掘模型,但抽樣可能導(dǎo)致結(jié)果出現(xiàn)偏差;集成方法將整個(gè)數(shù)據(jù)劃分為多個(gè)子集,分別運(yùn)算,最后合并;MapRedUCe基于云計(jì)算平臺(tái),用于海量級(jí)別數(shù)據(jù)的并行處理。目前,基于增量式頻繁模式增長數(shù)據(jù)挖掘方法僅能解決單一問題,如最小支持度閾值發(fā)生改變或數(shù)據(jù)庫內(nèi)容更新問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,用于在非靜態(tài)數(shù)據(jù)庫及動(dòng)態(tài)閾值下,對(duì)海量數(shù)據(jù)進(jìn)行快速挖掘。
[0005]本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,其特征在于,包括以下步驟:
[0006](I)將原數(shù)據(jù)庫分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于閾值的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序;
[0007](2)讀取分組列表和步驟(I)所述的數(shù)據(jù)集,將原數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分組,構(gòu)建局部的頻繁模式樹,通過遞歸過程提取各局部的頻繁項(xiàng)集;
[0008](3)將各局部的頻繁項(xiàng)集進(jìn)行整合,得到原數(shù)據(jù)庫的完整的頻繁項(xiàng)集;
[0009](4)閾值重置得到新閾值,將原數(shù)據(jù)庫分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于新閾值的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序;
[0010](5)將步驟(2)得到的局部頻繁模式樹進(jìn)行更新,增添新節(jié)點(diǎn)或刪除部分原節(jié)點(diǎn),從這些臨時(shí)的頻繁模式樹中挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集;
[0011](6)對(duì)原數(shù)據(jù)庫增加新數(shù)據(jù)集得到新數(shù)據(jù)庫,掃描新增的數(shù)據(jù)集,更新頻繁模式樹,求出新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集及新增數(shù)據(jù)集的頻繁項(xiàng)集;
[0012](7)將新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集和新增的頻繁項(xiàng)集進(jìn)行整合,得到新閾值下新數(shù)據(jù)庫的頻繁項(xiàng)集。
[0013]步驟(5)所述的挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集具體包括以下步驟:
[0014]11)計(jì)算Lm = L/ -L1,式中,L/是新閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集,L1是原閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集;
[0015]12)判斷差值Lm是否為空集,是則執(zhí)行步驟14),否則執(zhí)行步驟13):
[0016]13)以差值Lm更新頻繁模式樹FP-tree,通過更新后的頻繁模式樹FP-tree'挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集L',挖掘結(jié)束;
[0017]14)令新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集L'為原數(shù)據(jù)庫原閾值下的頻繁項(xiàng)集L,頻繁模式樹 FP-tree' = FP-tree ?
[0018]實(shí)施步驟(6)所述的挖掘新閾值下數(shù)據(jù)集的頻繁項(xiàng)集具體包括以下步驟:
[0019]21)計(jì)算L2 = Lm^`Ldp1-L1,式中,Ldpi是新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁1-項(xiàng)集,Ldpi是新閾值下新增數(shù)據(jù)集的強(qiáng)頻繁1-項(xiàng)集,L1是原閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集;
[0020]22)以差值La2更新頻繁模式樹FP-tree';
[0021]23)初始化k= I;
[0022]24)令k = k+Ι,采用Apriori算法,通過新增數(shù)據(jù)集的強(qiáng)頻繁1-項(xiàng)集Ldpl,其中I=k-Ι,生成新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集cdk,判斷新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集Cdk是否為空集,是則挖掘結(jié)束;
[0023]25)執(zhí)行= Cdk-Lk,求出新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集Cdk與原閾值下原數(shù)據(jù)庫頻繁k-項(xiàng)集Lk之差,判斷差值是否為空集,是則執(zhí)行步驟27),否則執(zhí)行步驟26);
[0024]26)對(duì)于步驟25)得到的差值c,k中的每個(gè)項(xiàng),通過更新后的頻繁模式樹FP-tree"求出各路徑的支持?jǐn)?shù);
[0025]27)通過判斷Cdk中的項(xiàng)的支持?jǐn)?shù)是否不小于新閾值s',得到新增數(shù)據(jù)集的強(qiáng)頻繁k-項(xiàng)集Ldpk ;
[0026]28)通過判斷c,k中的項(xiàng)的支持?jǐn)?shù)是否不小于新閾值s',得到新增的頻繁k_項(xiàng)集L,k,返回步驟24)。
[0027]所述的以差值Lx更新頻繁模式樹Tree包括以下步驟:
[0028]31)判斷差集Lx是否是空集,是則結(jié)束流程;
[0029]32)更新頻繁列表 Lf' = L1 U Lx ;
[0030]33)將更新后的頻繁列表Lf'降序排序;
[0031]34)對(duì)原數(shù)據(jù)庫中的任意事項(xiàng)t,執(zhí)行nltem = Lf' H t,取出事務(wù)中與頻繁列表相交的事務(wù),即在頻繁列表上出現(xiàn)的數(shù)據(jù)庫中的事務(wù);
[0032]35)執(zhí)行nNode = nltem Π Lx,在頻繁列表中出現(xiàn)的數(shù)據(jù)庫中的事務(wù)與差集Lx相交,求出新的節(jié)點(diǎn)nNode ;
[0033]36)將新節(jié)點(diǎn)nNode插入到頻繁模式樹Tree中,更新結(jié)束。
[0034]與現(xiàn)有技術(shù)相比,本發(fā)明不僅創(chuàng)新地同時(shí)解決了閾值變化以及數(shù)據(jù)庫數(shù)據(jù)增加兩種問題,并且基于MapReduce對(duì)該增量式算法實(shí)現(xiàn)了并行化,利用原有的頻繁數(shù)據(jù)項(xiàng)集及頻繁模式樹,只需對(duì)新增數(shù)據(jù)集進(jìn)行掃描即可有效獲取新的頻繁項(xiàng)集,無需再次掃描全部數(shù)據(jù)庫、生成頻繁模式樹,進(jìn)行重復(fù)計(jì)算,從而大大提高了算法的效率。
【專利附圖】
【附圖說明】
[0035]圖1為MapReduce處理數(shù)據(jù)集的過程圖;
[0036]圖2為本發(fā)明并行化方案的整體流程圖。
【具體實(shí)施方式】
[0037]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
[0038]如圖1所示,MapReduce通過劃分的步驟,將海量數(shù)據(jù)分組并將對(duì)其的處理分配給主節(jié)點(diǎn)下的各個(gè)分節(jié)點(diǎn)共同完成,最后整合各個(gè)分節(jié)點(diǎn)的計(jì)算結(jié)果得到最終結(jié)果。MapReduce將整個(gè)數(shù)據(jù)處理過程抽象為兩個(gè)部分,用函數(shù)表示,分別為map和reduce。map的工作是將任務(wù)分解成多個(gè),reduce負(fù)責(zé)匯總多任務(wù)處理的結(jié)果。MapReduce框架下的數(shù)據(jù)集必須可以分解成多個(gè)小數(shù)據(jù)集,并且可以被并行化處理。
[0039]如圖2所示,一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,其特征在于,包括以下步驟:
[0040](I) split函數(shù)將原數(shù)據(jù)庫D分成多個(gè)數(shù)據(jù)集,將數(shù)據(jù)集傳遞至Mapper及Reducer,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于閾值s的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序;
[0041](2) MapReduc讀取分組列表和步驟(I)所述的數(shù)據(jù)集,將原數(shù)據(jù)庫D中的數(shù)據(jù)進(jìn)行分組,Reducer構(gòu)建局部的頻繁模式樹,通過遞歸過程提取各局部的頻繁項(xiàng)集;
[0042](3)將各局部的頻繁項(xiàng)集進(jìn)行整合,得到原數(shù)據(jù)庫D的完整的頻繁項(xiàng)集;
[0043](4)閾值重置得到新閾值s',將原數(shù)據(jù)庫D分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于新閾值s,的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序;
[0044](5) Reducer將步驟(2)得到的局部頻繁模式樹進(jìn)行更新,增添新節(jié)點(diǎn)或刪除部分原節(jié)點(diǎn),從這些臨時(shí)的頻繁模式樹中挖掘新閾值s'下原數(shù)據(jù)庫D的頻繁項(xiàng)集;
[0045](6)對(duì)原數(shù)據(jù)庫D增加新數(shù)據(jù)集d得到新數(shù)據(jù)庫D',掃描新增的數(shù)據(jù)集d,更新頻繁模式樹,求出新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集及新增數(shù)據(jù)集的頻繁項(xiàng)集;
[0046](7)整合步驟(6)得到的新閾值下新增的頻繁項(xiàng)集,得到新閾值s'下新數(shù)據(jù)庫DUd的頻繁項(xiàng)集。
[0047]實(shí)現(xiàn)步驟(5)?(7)的具體算法流程如下:
[0048]相關(guān)符號(hào)說明如下:原數(shù)據(jù)庫D,原閾值S,新增數(shù)據(jù)集d,新閾值s',0的頻繁模式樹FP-tree,D的頻繁項(xiàng)集L。[0049]①以下部分為數(shù)據(jù)庫D不變,新閾值s '下的頻繁項(xiàng)集的計(jì)算
[0050]
【權(quán)利要求】
1.一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,其特征在于,包括以下步驟: (1)將原數(shù)據(jù)庫分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于閾值的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序; (2)讀取分組列表和步驟(1)所述的數(shù)據(jù)集,將原數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分組,構(gòu)建局部的頻繁模式樹,通過遞歸過程提取各局部的頻繁項(xiàng)集; (3)將各局部的頻繁項(xiàng)集進(jìn)行整合,得到原數(shù)據(jù)庫的完整的頻繁項(xiàng)集; (4)閾值重置得到新閾值,將原數(shù)據(jù)庫分成多個(gè)數(shù)據(jù)集,對(duì)每個(gè)數(shù)據(jù)集中各項(xiàng)的支持度計(jì)數(shù)進(jìn)行并行計(jì)算,去除支持度低于新閾值的非頻繁項(xiàng),并對(duì)頻繁項(xiàng)按支持度降序排序,依據(jù)排序后的頻繁項(xiàng)列表對(duì)數(shù)據(jù)進(jìn)行分組,并且對(duì)事務(wù)內(nèi)的項(xiàng)進(jìn)行排序; (5)將步驟(2)得到的局部頻繁模式樹進(jìn)行更新,增添新節(jié)點(diǎn)或刪除部分原節(jié)點(diǎn),從這些臨時(shí)的頻繁模式樹中挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集; (6)對(duì)原數(shù)據(jù)庫增加新數(shù)據(jù)集得到新數(shù)據(jù)庫,掃描新增的數(shù)據(jù)集,更新頻繁模式樹,求出新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集及新增數(shù)據(jù)集的頻繁項(xiàng)集; (7)將新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁項(xiàng)集和新增的頻繁項(xiàng)集進(jìn)行整合,得到新閾值下新數(shù)據(jù)庫的頻繁項(xiàng)集。
2.根據(jù)權(quán)利要求1所述的一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,其特征在于,步驟(5)所述的挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集具體包括以下步驟: 11)計(jì)算Lm= L/ -L1,式中,L/是新閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集,L1是原閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集;` 12)判斷差值Lm是否為空集,是則執(zhí)行步驟14),否則執(zhí)行步驟13); 13)以差值Lm更新頻繁模式樹FP-tree,通過更新后的頻繁模式樹FP-tree'挖掘新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集L',挖掘結(jié)束; 14)令新閾值下原數(shù)據(jù)庫的頻繁項(xiàng)集L'為原數(shù)據(jù)庫原閾值下的頻繁項(xiàng)集L,頻繁模式樹 FP-tree' = FP-tree。
3.根據(jù)權(quán)利要求1所述的一種增量式頻繁模式增長數(shù)據(jù)挖掘方法,其特征在于,實(shí)施步驟(6)所述的挖掘新閾值下新增的頻繁項(xiàng)集具體包括以下步驟: 21)計(jì)算K2= Ldpi+Ldp1-L1,式中,Ldpi是新閾值下原數(shù)據(jù)庫的強(qiáng)頻繁1-項(xiàng)集,Ldpi是新閾值下新增數(shù)據(jù)集的強(qiáng)頻繁1-項(xiàng)集,L1是原閾值下原數(shù)據(jù)庫的頻繁1-項(xiàng)集; 22)以差值?Δ2更新頻繁模式樹FP-tree'; 23)初始化k= I ; 24)令k= k+Ι,采用Apriori算法,通過新增數(shù)據(jù)集的強(qiáng)頻繁1_項(xiàng)集Ldpl,其中I =k-Ι,生成新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集cdk,判斷新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集Cdk是否為空集,是則挖掘結(jié)束; 25)執(zhí)行=Cdk-Lk,求出新增數(shù)據(jù)集的候選頻繁k-項(xiàng)集Cdk與原閾值下原數(shù)據(jù)庫頻繁k-項(xiàng)集Lk之差,判斷差值是否為空集,是則執(zhí)行步驟27),否則執(zhí)行步驟26); 26)對(duì)于步驟25)得到的差值中的每個(gè)項(xiàng),通過更新后的頻繁模式樹FP-tree"求出各路徑的支持?jǐn)?shù); 27)通過判斷Cdk中的項(xiàng)的支持?jǐn)?shù)是否不小于新閾值s',得到新增數(shù)據(jù)集的強(qiáng)頻繁k~ 項(xiàng)集 Ldpk ; 28)通過判 斷c,k中的項(xiàng)的支持?jǐn)?shù)是否不小于新閾值s',得到新增的頻繁k-項(xiàng)集L,k,返回步驟24)。
【文檔編號(hào)】G06F17/30GK103761236SQ201310589032
【公開日】2014年4月30日 申請(qǐng)日期:2013年11月20日 優(yōu)先權(quán)日:2013年11月20日
【發(fā)明者】馬云龍, 劉敏, 魏曉婷, 章鋒, 樓灝亮 申請(qǐng)人:同濟(jì)大學(xué)