国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種新的改進(jìn)Apriori算法*

2010-05-18 07:28楊金鳳
關(guān)鍵詞:子項(xiàng)項(xiàng)集剪枝

楊金鳳,劉 鋒

(安徽大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230039)

數(shù)據(jù)挖掘DM(Data Mining)出現(xiàn)于 20世紀(jì)80年代后期,是在數(shù)據(jù)庫技術(shù)的基礎(chǔ)上,結(jié)合人工智能、機(jī)器學(xué)習(xí)、統(tǒng)計學(xué)、神經(jīng)網(wǎng)絡(luò)等多種學(xué)科技術(shù)產(chǎn)生的具有很強(qiáng)生命力的新研究領(lǐng)域。其中關(guān)聯(lián)規(guī)則挖掘研究[1-2]是一項(xiàng)重要的內(nèi)容,目的是發(fā)現(xiàn)大規(guī)模數(shù)據(jù)集中項(xiàng)集之間有趣的關(guān)聯(lián)關(guān)系或模式。

頻繁項(xiàng)集的挖掘是關(guān)聯(lián)規(guī)則挖掘的核心,如何高效地從海量數(shù)據(jù)庫中找出頻繁出現(xiàn)的項(xiàng)集是世界范圍內(nèi)的熱門研究課題。

1 相關(guān)概念[1]

設(shè) I={I1,I2,…,Im}是項(xiàng)的集合,稱為項(xiàng)集,包含 k 個項(xiàng)的項(xiàng)集稱為k項(xiàng)集。D是數(shù)據(jù)庫事務(wù)的集合,數(shù)據(jù)庫中的每個事務(wù)T是項(xiàng)的集合,T?I,TID是事務(wù) T的標(biāo)識符。設(shè)A是一個項(xiàng)集,事務(wù)T包含A,當(dāng)且僅當(dāng)A?T,一個包含k個項(xiàng)的事務(wù)T可以產(chǎn)生2k個非空的子項(xiàng)集。

規(guī)則A?B的支持度s是D中同時包含A和B的事務(wù)占總事務(wù)的百分比。規(guī)則A?B的支持度c是D中同時包含A和B的事務(wù)占包含A的事務(wù)的百分比。項(xiàng)集的出現(xiàn)頻率是包含項(xiàng)集的事務(wù)數(shù),稱為項(xiàng)集的支持度計數(shù)。項(xiàng)集的支持度計數(shù)除以總的事務(wù)數(shù)就是相對支持度計數(shù),如果項(xiàng)集I的相對支持度計數(shù)不小于預(yù)定義的最小支持度閾值,則稱此項(xiàng)集是頻繁項(xiàng)集,否則是不頻繁項(xiàng)集。

2 Apriori算法和優(yōu)化

2.1 經(jīng)典的Apriori算法[2-6]

Apriori是一種逐層搜索的迭代方法,即用k項(xiàng)頻繁項(xiàng)集探索(k+1)項(xiàng)頻繁項(xiàng)集。首先,掃描數(shù)據(jù)庫找出頻繁1項(xiàng)集的集合,該集合為L1。用L1找頻繁2項(xiàng)集的集合L2,用L2找 L3,如此下去直到不能再找到頻繁項(xiàng)集。找每個Lk需要1次數(shù)據(jù)庫全掃描。

為了提高頻繁項(xiàng)集逐層產(chǎn)生的效率,一種稱作Apriori的重要性質(zhì)用于壓縮搜索空間。Apriori性質(zhì)為頻繁項(xiàng)集的所有非空子集也必須是頻繁的。

Apriori算法是由連接步和剪枝步組成。(1)連接步:為找Lk,通過將Lk-1與自身連接產(chǎn)生候選k項(xiàng)集的集合。該候選項(xiàng)集合為 Ck。(2)剪枝步:Ck是 Lk的超集,即Ck的成員可能是頻繁的;也可能是不頻繁的。掃描數(shù)據(jù)庫確定Ck中每個候選項(xiàng)集的計數(shù),從而確定Lk(即根據(jù)定義,計數(shù)值不小于最小支持度計數(shù)的所有候選項(xiàng)集是頻繁的,從而屬于Lk)。然而Ck可能很大,因此所涉及的計算量就很大。為壓縮Ck,可以使用Apriori性質(zhì)。任何非頻繁的(k-1)項(xiàng)集都不是頻繁k項(xiàng)集的子集。因此,如果候選 k項(xiàng)集的(k-1)項(xiàng)子集不在Lk-1中,則該候選項(xiàng)集也不可能是頻繁的,從而可以從Ck中刪除。

經(jīng)典的Apriori算法在產(chǎn)生候選項(xiàng)集上,由Lk-1自連接產(chǎn)生Ck,然后再利用Apriori性質(zhì)對Ck進(jìn)行刪減。設(shè)l1和 l2是 Lk-1中的項(xiàng)集。 記號 li[j]表示 li中的第 j項(xiàng)(例如,l1[k-2]表示l1的倒數(shù)第 2項(xiàng))。Apriori假定事務(wù)或項(xiàng)集中的項(xiàng)按字典次序排序。執(zhí)行Lk-1的自連接,如果它們的前(k-2)個項(xiàng)相同的話,則可以連接。例如,(l1[1]=l2[1])∧(l1[2]=l2[2])∧… ∧(l1[k-2]=l2[k-2])∧(l1[k-1]<l2[k-1]),那么 l1和 l2是可以連接的,否則是不可以連接的,連接結(jié)果項(xiàng)集是 l1[1],l1[2],…,l1[k-1],l2[k-2]。 然后再利用 Apriori性質(zhì)進(jìn)行判斷項(xiàng)集 l1[1],l1[2],…,l1[k-1],l2[k-2]是否可能是頻繁的,這樣需要先產(chǎn)生項(xiàng)集l1[1],l1[2], … ,l1[k-1],l2[k-2]的(k-1)個 (k-1)項(xiàng)子集 ,然后依次比較(k-1)個子集是否在Lk-1中,如果出現(xiàn)不在,則刪減項(xiàng)集 l1[1],l1[2], … ,l1[k-1],l2[k-2]; 如果都在,再對數(shù)據(jù)庫掃描,進(jìn)行計數(shù)。

2.2 對Apriori算法的改進(jìn)

通過上面的分析發(fā)現(xiàn),為了生成Ck,在連接步驟需要大量的比較,而且由連接產(chǎn)生的項(xiàng)集即使后來由Apriori性質(zhì)確定了它不是候選項(xiàng)集,但在確定之前仍然需要對它生成子項(xiàng)集,并對子項(xiàng)集進(jìn)行確定是否都在Lk-1中。這些步驟浪費(fèi)了大量的時間,如果可以保證由連接步生成的項(xiàng)集都是候選項(xiàng)集的話,那么可以省掉不必要的連接比較和剪枝步驟。下面介紹改進(jìn)后的算法。

首先對Lk-1中的每項(xiàng)進(jìn)行掃描,記下項(xiàng)集{l1[1]},{l1[1],l1[2]},…,{l1[1],l1[2],…,l1[k-2]},{l2[1]},{l2[1],l2[2]},…,{l2[1],l2[2],…,l2[k-2]},{l3[1]},…。 設(shè) 1 個 k項(xiàng)集 li={li[1],li[2], … ,li[k-1],li[k]}, 由 Apriori 性質(zhì)知道,如果 li屬于 Ck,那么以下的(k-1)個(k-1)項(xiàng)集就必須都出現(xiàn)在 Lk-1中,所以{li[1]}至少要出現(xiàn)(k-2)次,{li[1],li[2]}至少要出現(xiàn) (k-3)次 , 依次類推 {li[1],li[2],…,li[k-1]}至少要出現(xiàn) 1次。設(shè)掃描得到的{li[1]}出現(xiàn)次數(shù)為 a,如果 a<(k-2),則可以將 Lk-1中所有以 li[1]開頭的(k-1)項(xiàng)集全部刪除,如果a≥(k-2),那么比較掃描得到的{li[1],li[2]}出現(xiàn)次數(shù) b 與(k-3)的大小,若 b<(k-3),則刪除 Lk-1中所有以{li[1],li[2]}開頭的項(xiàng)集,如果b≥(k-3),則繼續(xù)比較下一項(xiàng)。通過簡單的數(shù)字比較,可以大量地從Lk-1中刪除項(xiàng)集,這樣可以大大地減少不必要的連接。連接生成的k項(xiàng)集,也只需要比較1次就可以確定是否屬于Ck,其算法如下:

輸入:D(事物數(shù)據(jù)庫);

min_sup:最小支持度計數(shù)閾值。

輸出:L(D中的頻繁項(xiàng)集)。

(1)掃描數(shù)據(jù)庫D,生成頻繁1項(xiàng)集L1;

(2)由頻繁1項(xiàng)集生成頻繁2項(xiàng)集L2;

(3)for(i=1;li∈Lk;i++)。

(4)累加{li[1]}、{li[1],li[2]}、…、{li[1],li[2], …,li[k-1]}的出現(xiàn)次數(shù);

(5)將只含 li[1]項(xiàng)的項(xiàng)集出現(xiàn)次數(shù) a與(k-1)比較大小,如果a小于(k-1),則刪除 Lk中的所有以 li[1]項(xiàng)開頭的項(xiàng)集,從li+1[1]項(xiàng)的項(xiàng)集出現(xiàn)次數(shù)開始比較;如果a大于(k-1),再比較以{li[1],li[2]}開頭的項(xiàng)集出現(xiàn)次數(shù) b與(k-2)的大小。如果 b小于(k-2),則刪除 Lk中的所有以{li[1],li[2]}開頭的項(xiàng)集,并將只含 li[1]項(xiàng)的項(xiàng)集出現(xiàn)次數(shù)賦值為(a-b),再對(a-b)與(k-1)進(jìn)行比較;如果 b大于(k-2),再對以{li[1],li[2],li[3]}開頭的項(xiàng)集出現(xiàn)次數(shù)c與(k-3)的大小進(jìn)行比較。依次類推,刪除后Lk項(xiàng)集為 Lk′。

(6)用 Lk′中的項(xiàng)集自連接生成 C′k+1;

(7)for(i=1;li∈C′k+1;i++)

if({li[2],li[3],…,li[k]}∈Lk)

li是候選項(xiàng)集,放入 Ck+1中;

(8)掃描數(shù)據(jù)庫,對Ck+1中項(xiàng)集進(jìn)行計數(shù),如果大于min_sup,就是頻繁項(xiàng)集,放入Lk+1中。

3 實(shí)例說明

通過由頻繁3項(xiàng)集生成4項(xiàng)候選集的例子,說明是如何通過改進(jìn)的算法在連接前對頻繁3項(xiàng)集進(jìn)行刪減的。 設(shè) L3={{I1,I2,I3},{I1,I2,I6},{I2,I3,I4},{I2,I3,I5},{I2,I4,I5},{I3,I4,I5},{I3,I5,I6},{I4,I5,I6}}。 掃描 L3,得到相關(guān)的計數(shù)。表1所示為刪減L3中項(xiàng)集的過程。

經(jīng)過刪減得 Lk′={{I2,I3,I4},{I2,I3,I5}},Lk′自連接只生成 1 個 4 項(xiàng)集{I2,I3,I4,I5}。 {I3,I4,I5}∈L3,所以 ,得到候選項(xiàng)集 C4={I2,I3,I4,I5}。 通過驗(yàn)證,結(jié)果是正確的。

如果采用經(jīng)典的Apriori算法,先連接生成2個4項(xiàng)集{I1,I2,I3,I6},{I2,I3,I4,I5}, 再進(jìn)行剪枝 , 最壞情況下 ,需要掃描8個子項(xiàng)集是否在L3中,才能確定,{I1,I2,I3,I6},{I2,I3,I4,I5}是否為候選項(xiàng)集 , 最好的情況下也需要掃描2個子集。而采用新的算法,只連接生成1個4項(xiàng)集,再進(jìn)行剪枝步,只需要掃描 1個子項(xiàng)集{I3,I4,I5}是否在 L3中。

本文運(yùn)用新的算法,從另一個先刪減再連接的新視角來生成頻繁項(xiàng)集,可以減少大量的無用連接,進(jìn)而也減少了剪枝步需要判斷是否為候選項(xiàng)集的數(shù)量,在時間上提高了效率。但是對Apriori算法改進(jìn)的并不徹底,依然需要大量的數(shù)據(jù)庫掃描,在未來的研究工作中著力解決多次掃描數(shù)據(jù)庫的問題。

[1]HAN Jia Wei,KAMBER M.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.北京:機(jī)械工業(yè)出版社,2007.

[2]楊明,孫志揮,宋余慶.快速更新全局頻繁項(xiàng)目集 [J].軟件學(xué)報 ,2004,15(8):1189-1196.

[3]郭健美,宋順林,李世松.基于 Apriori算法的改進(jìn)算法 [J].計算機(jī)工程與設(shè)計,2008,29(11):2814-2815.

[4]馮興杰,周諄.Apriori算法的改進(jìn)[J].計算機(jī)工程,2005,31(21):172-173.

[5]朱其祥,徐勇,張林.基于改進(jìn) Apriori算法的關(guān)聯(lián)規(guī)則挖掘研究[J].計算機(jī)技術(shù)與發(fā)展,2006,16(7):102-104.

[6]MING Cheng Tseng, WEN Yang Lin, RONG Jeng.Dynamic mining of multi-supported association rules with classification ontology[J].網(wǎng)際網(wǎng)路技術(shù)學(xué)刊, 2006,7(14):399-406.

表1 刪減L3中的項(xiàng)集

猜你喜歡
子項(xiàng)項(xiàng)集剪枝
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分層迭代剪枝策略的CNN模型壓縮
不確定數(shù)據(jù)的約束頻繁閉項(xiàng)集挖掘算法
右擊桌面就能控制系統(tǒng)
一種垂直結(jié)構(gòu)的高效用項(xiàng)集挖掘算法
剪枝
淺析劃分子項(xiàng)不得相容與詞語意義的模糊性
分布式數(shù)據(jù)庫的精簡頻繁模式集及其挖掘算法*
購機(jī)超級對決
乌鲁木齐县| 万年县| 邢台市| 昭苏县| 临湘市| 柘城县| 黑龙江省| 萝北县| 徐闻县| 新晃| 股票| 乐安县| 蓝山县| 驻马店市| 怀集县| 吉首市| 永福县| 文登市| 浦江县| 阳城县| 辽阳市| 阿鲁科尔沁旗| 西华县| 仙居县| 千阳县| 全南县| 永靖县| 齐齐哈尔市| 永寿县| 樟树市| 同德县| 常熟市| 赤水市| 启东市| 东莞市| 桃园市| 山西省| 扬中市| 苏尼特右旗| 京山县| 金湖县|