用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法
【專利摘要】本發(fā)明提供一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法,包括如下步驟:1)依據(jù)目標(biāo)事務(wù)數(shù)目值,從事務(wù)數(shù)據(jù)庫(kù)中篩選出項(xiàng)目數(shù)不小于目標(biāo)事務(wù)數(shù)目值的事務(wù)作為新事務(wù)數(shù)據(jù)庫(kù);2)使用Apriori算法的連接步驟和剪枝步驟,掃描新事務(wù)數(shù)據(jù)庫(kù),計(jì)算產(chǎn)生頻繁1-項(xiàng)集L(1);3)找出頻繁1-項(xiàng)集L(1)中的數(shù)目排在前面的與目標(biāo)事務(wù)數(shù)目值相同數(shù)值的幾項(xiàng)候選項(xiàng)集;4)掃描候選項(xiàng)集,得到目標(biāo)事務(wù)數(shù)目值的頻繁項(xiàng)集。本發(fā)明具有的優(yōu)點(diǎn)和積極效果是:能免去按照自然數(shù)順序,從1開(kāi)始,逐個(gè)生成中間候選頻繁項(xiàng)集和中間頻繁項(xiàng)集的操作,大幅提高了數(shù)據(jù)挖掘搜索效率;達(dá)到減少數(shù)據(jù)庫(kù)掃描工作量,從而大幅提高了計(jì)算頻繁項(xiàng)集的速度。
【專利說(shuō)明】用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于Apriori算法【技術(shù)領(lǐng)域】,尤其是涉及一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的 壓縮中間候選頻繁項(xiàng)集的算法。
【背景技術(shù)】
[0002] 關(guān)聯(lián)規(guī)則(Associate rule)挖掘在數(shù)據(jù)挖掘中占有極其重要的地位,是數(shù)據(jù)挖掘 的主要任務(wù)之一。關(guān)聯(lián)規(guī)則的經(jīng)典算法是Apriori算法。Apriori算法使用一種稱為逐層 迭代方法,k-項(xiàng)集用于(k+l)_項(xiàng)集的搜索,Apriori算法性質(zhì):頻繁項(xiàng)集的所有非空子集 都必須也是頻繁項(xiàng)集。
[0003] Apriori算法:根據(jù)定義,如果項(xiàng)集I不滿足最小支持度(min_sup),則項(xiàng)集I不是 頻繁的,即P(I)〈(min_sup)。如果項(xiàng)A添加到項(xiàng)集I,則結(jié)果項(xiàng)集I即(I U A)不可能比項(xiàng) 集I更頻繁出現(xiàn)。因此,P(I U A)也不是頻繁的,即P(I U A)〈(min_sup)。
[0004] Apriori算法主要包括兩個(gè)操作:
[0005] (1)連接步
[0006] Cl = I,I為事務(wù)數(shù)據(jù)庫(kù)所包含的項(xiàng)目,掃描數(shù)據(jù)庫(kù),得到頻繁1-項(xiàng)目集L1,執(zhí)行 連接C2=L1? L1,產(chǎn)生C2,掃描數(shù)據(jù)庫(kù),得到L2,執(zhí)行連接C3=L2 ? L2,產(chǎn)生C3。如此下 去,在第k遍掃描中,則是首先利用L(k-1)來(lái)生成Ck= L (k_l) ? L (k_l),若 Ck = Φ,則算法結(jié)束,否則掃描數(shù)據(jù)庫(kù)得到Lk。
[0007] (2)剪枝步
[0008] 利用Apriori算法性質(zhì),進(jìn)行對(duì)事務(wù)的刪除,提尚掃描的效率。在第k遍掃描中, 第一步,利用第(k 一 1)次掃描得到的L (k 一 1)來(lái)產(chǎn)生Ck,首先將L (k 一 1)中前k-Ι項(xiàng)相 同的項(xiàng)集進(jìn)行連接產(chǎn)生Ck,接著將連接得到的項(xiàng)集,若其子集L (k 一 1)不是頻繁項(xiàng)集,那 么任何(k 一 1)-項(xiàng)集都不可能是頻繁項(xiàng)集,則刪除,即修剪;第二步,對(duì)每個(gè)事務(wù),若Ck中 某項(xiàng)集包含在該事務(wù)中,則該項(xiàng)集的支持度加1,掃描結(jié)束后,將Ck中支持度大于最小支持 度的所有項(xiàng)集加入Lk (Ck稱為候選頻繁k項(xiàng)集的集合,Lk稱為k項(xiàng)頻繁項(xiàng)集;即以Ck表示 k-itemsets備選項(xiàng)集,以Lk表示k-itemsets頻繁項(xiàng)集)。
[0009] 上述Apriori算法對(duì)候選集的大小進(jìn)行了壓縮,但是在生成Ck的過(guò)程中仍需k次 掃描整個(gè)事務(wù)數(shù)據(jù)庫(kù)。因而,對(duì)于海量的數(shù)據(jù)庫(kù),經(jīng)典Apriori算法的效率會(huì)下降,并且系 統(tǒng)的I/O開(kāi)銷也很大。
[0010] 后來(lái)發(fā)明了改進(jìn)的Apriori算法,如下:
[0011] 根據(jù)項(xiàng)集有序性和事務(wù)的壓縮,在候選頻繁項(xiàng)目集Ck的產(chǎn)生過(guò)程中,采用兩次剪 枝,刪除其中不必要的掃描的事務(wù);產(chǎn)生一個(gè)新的事務(wù)數(shù)據(jù)庫(kù)D(K+1),在下一輪的迭代中 使用。D(K+1)比DK包含了較少的事務(wù),從而提高掃描的效率,節(jié)省系統(tǒng)的開(kāi)銷。
[0012] (1)連接步不變
[0013] (2)事務(wù)剪枝步
[0014] 事務(wù)t包含一個(gè)k-項(xiàng)集,則k-頻繁項(xiàng)集的所有子k-1項(xiàng)集都是k-1頻繁項(xiàng)集。根 據(jù)定義1,在第k步掃描前,對(duì)事務(wù)Dk的每個(gè)事務(wù)t進(jìn)行剪枝,得到新的事務(wù)D'。
[0015] 例 1 :設(shè) K = 3,若事務(wù) t = {1,2,3,4,5,6,7,8},L2 = {(1,2),(1,3),(2,4),(4, 5),(5,6),4, 7),(6,8),(1,8)},則要求項(xiàng)目 1,2, 3,4, 5,6, 7,8 至少在 L2 中出現(xiàn) 2 次,才可 能進(jìn)入下一輪的迭代。所以進(jìn)行1^剪枝得到事務(wù)數(shù)據(jù)庫(kù)1'(1,2,4,5,6,8)。項(xiàng)目3,和項(xiàng)目 7被剪枝。
[0016] (3)候項(xiàng)集剪枝步
[0017] 利用Apriori算法性質(zhì),進(jìn)行對(duì)事務(wù)的刪除,提高掃描的效率。在第k遍掃描中, 第一步,利用第(k-Ι)次掃描得到的L(k-l)來(lái)產(chǎn)生Ck,首先將L(k-l)中前k-Ι項(xiàng)相同 的項(xiàng)集進(jìn)行連接產(chǎn)生Ck,接著將連接得到的項(xiàng)集,若其子集L (k - 1)不是頻繁項(xiàng)集,那么任 何(k - 1)-項(xiàng)集都不可能是頻繁項(xiàng)集,則刪除,
[0018] 即修剪;第二步,對(duì)每個(gè)事務(wù),若Ck中某項(xiàng)集包含在該事務(wù)中,則該項(xiàng)集的支持度 加1,掃描結(jié)束后,將Ck中支持度大于最小支持度的所有項(xiàng)集加入Lk。
[0019] 在以后各次連接生成Ck均為有序的。并且不包含任何k-項(xiàng)子集的事務(wù)不 可能包含任何(k+l)項(xiàng)子集,因?yàn)槿粢粋€(gè)事務(wù)設(shè)C (k-1) CA,但C (k) CA,而 C(k+l)=C(k) ?C(k),得到,因而C(k+1) CA。因此,第一次掃描事務(wù)后,對(duì)每一個(gè)事務(wù) 進(jìn)行計(jì)數(shù),并刪除長(zhǎng)度小于最小支持度(min_sup)的當(dāng)前事務(wù),因?yàn)樵撌聞?wù)不會(huì)對(duì)生成頻 繁2-選項(xiàng)集起作用。以此類推,在對(duì)每次事務(wù)掃描后,對(duì)每一個(gè)事務(wù)進(jìn)行計(jì)數(shù),并刪除長(zhǎng)度 小于最小支持度(min_sup)的當(dāng)前事務(wù),因?yàn)樵撌聞?wù)不會(huì)對(duì)以后生成的下層候選項(xiàng)集產(chǎn)生 作用。如此,壓縮了事務(wù),提高了效率,減少了 I/O的開(kāi)銷。
[0020] 基于數(shù)據(jù)挖掘的數(shù)據(jù)庫(kù)入侵檢測(cè),由于數(shù)據(jù)挖掘技術(shù)能夠發(fā)現(xiàn)隱藏在數(shù)據(jù)背后的 用戶模式和特征,因此,在基于主機(jī)和網(wǎng)絡(luò)的入侵檢測(cè)中,基于數(shù)據(jù)挖掘的檢測(cè)方法是重要 的研宄課題,也存在著來(lái)自統(tǒng)計(jì)、模式識(shí)別、機(jī)器學(xué)習(xí)等多個(gè)領(lǐng)域的數(shù)據(jù)挖掘算法。使用元 學(xué)習(xí)的方法來(lái)進(jìn)行分布式事務(wù)模式挖掘,元學(xué)習(xí)是一種用于處理從大型分布式數(shù)據(jù)庫(kù)中計(jì) 算全局分類器的技術(shù),元學(xué)習(xí)首先在分布式數(shù)據(jù)庫(kù)中使用學(xué)習(xí)程序并行的計(jì)算獨(dú)立的分類 器,然后再使用另一個(gè)學(xué)習(xí)程序在這些分類器上集成元分類器。在使用元學(xué)習(xí)得出異?;?偏差事務(wù)模型后,使用模式指導(dǎo)的推理系統(tǒng)來(lái)檢測(cè)欺騙事務(wù)。在上述的學(xué)習(xí)程序中,要用 到檢測(cè)頻繁項(xiàng)集的技術(shù),來(lái)找到用戶的正常高頻模式,來(lái)對(duì)正常行為進(jìn)行范圍定義。對(duì)于 海量的數(shù)據(jù)庫(kù),頻繁項(xiàng)集的數(shù)目會(huì)變得很大,改進(jìn)的Apriori算法的效率會(huì)下降,還是不能 滿足要求,并且系統(tǒng)的I/O開(kāi)銷也很大。
【發(fā)明內(nèi)容】
[0021] 本發(fā)明要解決的問(wèn)題是提供一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁 項(xiàng)集的算法,減小了對(duì)目標(biāo)事務(wù)數(shù)據(jù)庫(kù)的掃描數(shù)目,提高了數(shù)據(jù)挖掘搜索效率。
[0022] 為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是:
[0023] 一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法,包括如下步驟:
[0024] 1)依據(jù)目標(biāo)事務(wù)數(shù)目值,從事務(wù)數(shù)據(jù)庫(kù)中篩選出項(xiàng)目數(shù)不小于目標(biāo)事務(wù)數(shù)目值的 事務(wù)作為新事務(wù)數(shù)據(jù)庫(kù);
[0025] 2)使用Apriori算法的連接步驟和剪枝步驟,掃描新事務(wù)數(shù)據(jù)庫(kù),計(jì)算產(chǎn)生頻繁 1-項(xiàng)集 L(I);
[0026] 3)找出頻繁1-項(xiàng)集L (1)中的數(shù)目排在前面的與目標(biāo)事務(wù)數(shù)目值相同數(shù)值的幾項(xiàng) 候選項(xiàng)集;
[0027] 4)依據(jù)候選項(xiàng)集掃描新事務(wù)數(shù)據(jù)庫(kù),得到目標(biāo)事務(wù)數(shù)目值的頻繁項(xiàng)集。
[0028] 本發(fā)明具有的優(yōu)點(diǎn)和積極效果是:
[0029] 本發(fā)明算法能免去按照自然數(shù)順序,從1開(kāi)始,逐個(gè)生成中間候選頻繁項(xiàng)集和中 間頻繁項(xiàng)集的操作,大幅提高了數(shù)據(jù)挖掘搜索效率;達(dá)到減少數(shù)據(jù)庫(kù)掃描工作量,和減少生 成中間生成候選頻繁項(xiàng)集C(k)和中間頻繁項(xiàng)集的效果,從而大幅提高了計(jì)算頻繁項(xiàng)集的 速度;在某些情況下,比Apriori算法和改進(jìn)的Apriori算法性能上,甚至快幾個(gè)數(shù)量級(jí)。
【專利附圖】
【附圖說(shuō)明】
[0030] 圖1是本發(fā)明一實(shí)施例的數(shù)據(jù)庫(kù);
[0031] 圖2是本發(fā)明一實(shí)施例算法的執(zhí)行流程圖。
【具體實(shí)施方式】
[0032] 下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)說(shuō)明。
[0033] 在【背景技術(shù)】中描述的改進(jìn)的Apriori算法基礎(chǔ)上,(Ck稱為候選頻繁k項(xiàng)集的集 合,Lk稱為k項(xiàng)頻繁項(xiàng)集),提出的一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng) 集的算法,包括如下步驟,以圖1所示的數(shù)據(jù)庫(kù)為例,本發(fā)明算法的執(zhí)行流程如圖2所示:
[0034] 步驟1 :依據(jù)目標(biāo)事務(wù)數(shù)目值,從事務(wù)數(shù)據(jù)庫(kù)中篩選出項(xiàng)目數(shù)不小于目標(biāo)事務(wù)數(shù) 目值的事務(wù)作為新事務(wù)數(shù)據(jù)庫(kù);本實(shí)施例目標(biāo)事務(wù)數(shù)目值為3,即從事務(wù)數(shù)據(jù)庫(kù)D中篩選出 項(xiàng)目數(shù)不小于3的事務(wù)作為新事務(wù)數(shù)據(jù)庫(kù)Dl ;
[0035] 步驟2 :使用Apriori算法的連接步驟和剪枝步驟,掃描新事務(wù)數(shù)據(jù)庫(kù),計(jì)算產(chǎn)生 頻繁1-項(xiàng)集L(I);本實(shí)施例即掃描新事務(wù)數(shù)據(jù)庫(kù)D1,得到頻繁項(xiàng)集Ll ;
[0036] 步驟3 :找出頻繁1-項(xiàng)集L(I)中的數(shù)目排在前面的與目標(biāo)事務(wù)數(shù)目值相同數(shù)值 的幾項(xiàng)候選項(xiàng)集;本實(shí)施例即從頻繁項(xiàng)集Ll中刷選出排在前3位的項(xiàng)目,及{1,2, 3, 5},其 中{3}排前第一位,{1,2, 5}并列前第二位,前三位得到的組合候選項(xiàng)集C2包含{1,2, 3}、 {2,3,5}, {1,3,5};
[0037] 步驟4 :依據(jù)候選項(xiàng)集掃描新事務(wù)數(shù)據(jù)庫(kù),得到目標(biāo)事務(wù)數(shù)目值的頻繁項(xiàng)集;本實(shí) 施例即依據(jù)候選項(xiàng)集C2掃描新事務(wù)數(shù)據(jù)庫(kù)D1,得到滿足最小支持度的頻繁3項(xiàng)集L2。
[0038] 本發(fā)明上述用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法的主要程 序描述如下:
【權(quán)利要求】
1. 一種用于數(shù)據(jù)庫(kù)入侵檢測(cè)領(lǐng)域的壓縮中間候選頻繁項(xiàng)集的算法,其特征在于包括如 下步驟: 1) 依據(jù)目標(biāo)事務(wù)數(shù)目值,從事務(wù)數(shù)據(jù)庫(kù)中篩選出項(xiàng)目數(shù)不小于目標(biāo)事務(wù)數(shù)目值的事務(wù) 作為新事務(wù)數(shù)據(jù)庫(kù); 2) 使用Apriori算法的連接步驟和剪枝步驟,掃描新事務(wù)數(shù)據(jù)庫(kù),計(jì)算產(chǎn)生頻繁1-項(xiàng) 集 U1); 3)找出頻繁1-項(xiàng)集L (1)中的數(shù)目排在前面的與目標(biāo)事務(wù)數(shù)目值相同數(shù)值的幾項(xiàng)候選 項(xiàng)集; 4)依據(jù)候選項(xiàng)集掃描新事務(wù)數(shù)據(jù)庫(kù),得到目標(biāo)事務(wù)數(shù)目值的頻繁項(xiàng)集。
【文檔編號(hào)】G06F17/30GK104516978SQ201410851266
【公開(kāi)日】2015年4月15日 申請(qǐng)日期:2014年12月31日 優(yōu)先權(quán)日:2014年12月31日
【發(fā)明者】李淼, 呂迅, 朱宏軍, 崔維力, 武新 申請(qǐng)人:天津南大通用數(shù)據(jù)技術(shù)股份有限公司