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