《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Apriori算法改進研究及實現
Apriori算法改進研究及實現
2014年微型機與應用第10期
俞 益, 陳 以, 張忠林
桂林電子科技大學 電子工程與自動化學院,廣西 桂林
摘要: 數據挖掘是指從數據庫的大量數據中提取出先前未知的、具有潛在實際價值的、隱含的信息[1]。關聯規則挖掘就是從海量的數據中尋找數據項間的關聯關系。
Abstract:
Key words :

摘 要: 通過對Apriori算法基本原理和性能的研究分析,針對算法存在的不足,提出了一種更高效的基于對頻繁項集分組并行的挖掘算法。該算法把頻繁k-1項集按照一定規律分組,每組頻繁k-1子項集直接產生頻繁k子項集;再把每組產生的頻繁k子項集合起來,這樣每組不僅在自連接時減少了很多判斷連接嘗試,而且可以并行處理連接、剪枝行為,減少了等待時間,提高了查找頻繁項集的速度。經過實驗證實,改進后的算法在性能上有很大的提升。

關鍵詞: 數據挖掘;關聯規則;Apriori算法;分組; 并行

       數據挖掘是指從數據庫的大量數據中提取出先前未知的、具有潛在實際價值的、隱含的信息[1]。關聯規則挖掘就是從海量的數據中尋找數據項間的關聯關系。 

       關聯規則挖掘是由Agrawal等人于1993年首先提出[2],之后又提出了著名的基于頻繁項集的Apriori算法[3-4]。關聯分析用來發現購物籃數據事務中各項之間的有趣現象,目前主要被應用于如科學數據分析、生物信息學、醫療診斷和網頁分析等許多領域[5]。因此,關聯規則挖掘被廣泛地研究。為了提高挖掘的效率,近幾年國內外學者不斷地對基于Apriori算法進行改進和創新,提出了很多優化的改進算法[6-8]。

       1 關聯規則概念

      令I={i1,i2,…,id}是所有項的集合,而T={t1,t2,…,tN}是所有事務的集合。每一個事務ti包含的項集都是I的子集。在關聯規則的分析中,包含多個項的集合被稱之為項集。例如一個項集包含了k個項,則此項集被稱為k-項集[9]。空集是不包含任何項的項集。

關聯規則表達式X→Y,其中X和Y是不相交的項集,即X∩Y=?準。支持度(support)是T中同時包含X和Y的事務占的百分比。置信度(confidence)是T中同時包含X和Y的事務占包含X的事務的百分比。項集的出現頻率是包含項集的事務數,稱為項集的支持度計數。支持度確定規則可以用于給定數據集的頻繁程度。如果項集I的支持度計數大于等于最小支持度閾值,可以確定項集I是頻繁項集。支持度(s)度量形式為:

      S(X→Y)=N  (1)

       2 Apriori算法分析

       Apriori算法是一種非常具有影響力的關聯規則頻繁項集的算法。它開創性地通過對最小支持度閾值的設置,系統地控制了候選項數量幾何的增長。

      該算法采用了寬度優先且逐層搜索的迭代方法,即當第k次迭代時,頻繁k-項集通過頻繁(k-1)-項集 Lk-1來關聯查找。第一次運行迭代時,掃描事務數據庫所有項目,找出事務數據庫中的所有項集構成的候選1-項集C1,然后根據設定的最小支持度閾值,在C1中篩選出符合條件的項,構成頻繁1-項集L1;第二次運行迭代時,用頻繁1-項集L1自連接產生候選項,并且掃描所有事務數據庫集合,得到C2中每一個項的支持度值,然后通過最小支持度的閾值進一步篩選出符合條件的頻繁2-項集L2。一直這樣循環迭代下去,直到不能再產生頻繁項集為止。

       該算法核心方法主要通過連接(候選項集的產生)和剪枝兩個步驟來完成。

       (1)連接。由前一次迭代發現的頻繁(k-1)-項集Lk-1直接產生新的候選k-項集Ck。

      (2)剪枝。候選k-項集Ck是頻繁k-項集Lk的超集,且Ck中的項集不確定是否都是頻繁集。剪枝一般分為兩步來進行。首先,根據Apriori的性質,任何的非頻繁(k-1)-項集都不是頻繁k項集的子集??紤]Ck,即X={i1,i2,…,ik}。該算法首先需確定它所有的真子集X-{i1}(?坌j=1,2,…,k)必須都是頻繁的。如果其中一個真子集是非頻繁的,則X將會被立即剪枝。這種方法能非常有效地減少在支持度計數過程中所要考慮的候選項集的數量。繼而可以得到已經被剪枝處理過的候選項集Ck′。然后,掃描所有事務數據庫集合,計算Ck′每一個候選項的支持度計數,刪除支持度計數小于支持度計數閾值的項集,從而得到Lk。

      由于Apriori算法主要通過這兩步來實現,為了能對該算法有更加清楚直觀的認識,具體分析這個過程,Lk-1自連接來產生新的Ck′。令所有的項集中的項都按照一定的原則來排序。假設任意l1∈Lk-1、l2∈Lk-1、c1∈Ck,c1′∈Ck。當Lk-1進行自連接時,要判斷兩個頻繁項是否能夠連接,如果l1[i]=l2[i](?坌i=1,2,…,k-2),則可以連接產生項c1′。根據Apriori的性質,項c1′可以產生(k-1)個(k-1)-項子集,再判斷所有的(k-1)-項子集是否都在Lk-1中。若有一個(k-1)-項子集不在Lk-1中,則項c1′為非頻繁項,可以忽略此項;反之,項c1′可以被確定為候選項c1。重復進行以上所述的連接過程,直到篩選產生所有候選k-項集Ck′為止。然后再分析Ck′,依次對Ck′逐項掃描事務數據庫所有項目進行支持度計算,進一步篩選出頻繁k項集Lk。

       3 Apriori算法改進

      經過對上面的情況深入分析發現,該算法Lk-1大部分的自連接是無用的,且基本上絕大多數的判斷連接是不成立的。假設Lk-1項集大小為N,則需要判斷連接的次數LN為:

        LN=∑n (2)

       假定N=4,根據式(2),得出LN=3+2+1=6(次)。然后再對Ck′逐項掃描事務數據庫,計算支持度,這個過程需要排隊掃描,花費大量的等待時間??紤]以上問題,本文對Lk-1產生Lk的過程提出一種基于對頻繁項集分組并行的改進算法P-Apriori。改進算法是在經典Apriori算法基礎上修改提出的,效率上有很大的提升。下面將具體介紹改進后算法的這部分改良方法。

      首先在Lk-1自連接前對Lk-1進行掃描,按照一定規律分組,把Lk-1每一個頻繁項中的前第一項相同的分為一組。例如當l1[1]=l2[1]時,可以分為一組。Lk-1自連接時,要判斷它們的前(k-2)個項是否相同。如果它們的前第一個項都不相同,那么這個連接肯定就不會成立。由此可以得出,分組后的每組頻繁(k-1)-子項集都可以獨自進行自連接,且分組后的最多自連接總次數為PLN:   PLN=∑n+∑n+…+∑n  (3)

其中i為頻繁(k-1)-項集分組量,ni為每組的頻繁(k-1)-子項集長度,n1+n2+…+ni=N。

      顯然分組后自連接總次數被壓縮了,即PLN的值要比LN小得多。假定N=4, 分為兩組,令兩組的頻繁(k-1)-子項集長度分別為n1=2、n2=2,則根據式(3)得出分組后的PLN=1+1=2(次),比原來分組前LN=6(次)少了很多無用連接。當N處于一個較大值,且分組量增加,這種優勢將更加明顯。由于分組后每組頻繁(k-1)-子項集可以并行處理,或者說同步處理,且互不干擾地進行連接、剪枝行為,不僅自連接效率可以進一步提高,同時,把原方法需要逐個根據Apriori性質和掃描事務數據庫計算支持度的過程,變成了可以并行進行。如原來只能排成一個隊,現在可以排成多個隊。顯然,分組后效率的提高是可觀的。最后把每組頻繁(k-1)-子項集直接產生的頻繁k-子項集組合起來,即頻繁k-項集Lk。改進后的Apriori算法流程如圖1所示。

AE_)QRNE`_~Y]@Y{GHJ%HSW.jpg

       其實根據事務數據庫實際的需求,還可以在Lk-1分組后,把每組的頻繁(k-1)-子項集,再將頻繁(k-1)-子項集中每一個頻繁項的前第二項相同的分為一組。通過組內再分組的方式,更加細化了頻繁項集,使得判斷連接次數進一步減少,連接速度加快,繼而提高效率。也可以直接把頻繁(k-1)-項集中每一個頻繁項lk-1中的前第一項和前第二項相同的分為一組,這樣也能很好地達到分組的效果。

       4 實驗驗證及性能分析

      通過對兩種算法的分析,顯然在理論上改進后的算法在很多方面效率會更高。下面將通過具體實驗來驗證算法在改進前后的性能比較。

      本文使用Java語言分別來實現改進前后的兩種算法。在相同的實驗環境下實現兩種算法的比較,實驗所用的具體環境配置為:處理器Intel(R)Core(TM)2 Duo CPU P8600,主頻2.40 GHz、內存4 GB(實際可用2.96 GB),操作系統Windows 7 旗艦版,系統類型32位。利用系統上安裝的Eclipse開發軟件來進行實驗數據測試。本文將提供8 000條事務數據庫,得到在不同最小支持度閾值下兩種算法的運行時間。實驗結果如表1和圖2所示。

8Q]RXZ(RD2([PGRT7RLW8CP.png

       由圖2可知,在實驗環境和事務數據庫所有項目不變的前提下,得出了在不同閾值支持度下,兩種算法運行時間的值。顯然,兩種算法在最小支持度閾值變小時,所需要的運行時間都會成幾何的增長。通過相互對比,改進后的P-Apriori算法比經典Apriori算法運行時間的增加更緩慢、不迅速。在最小支持度的閾值相同的情況下,改進后的P-Apriori算法運行時間更少,更加高效。當最小支持度的閾值較小時,特別在閾值為0.15時,改進后的P-Apriori算法效率的提升更加明顯。當最小支持度的閾值較大時,由于兩種算法運行的時間都比較少,所以在圖中難以辨別出來。但根據表1可知,通過實際運行數據比較,還是可以發現改進后的P-Apriori算法運行時間比經典Apriori算法的運行時間要少,只是在圖2中不明顯。

       本文通過對經典Apriori算法理論研究和具體分析,在該算法的理論基礎上進行了一定修改和改進,提出了基于對頻繁項集分組并行的挖掘算法P-Apriori。通過實驗表明,改進優化后的P-Apriori算法不僅能并行處理數據,而且可以有效減少頻繁項集自連接次數,大大提高了頻繁項集生成的效率,其在數據挖掘效率上比經典Apriori算法更加高效實用。并且理論上,隨著實驗機器性能的提升或者采用分布式計算,改進優化后的P-Apriori算法挖掘效率提升將更加明顯。

參考文獻

[1] 朱明. 數據挖掘[M]. 合肥: 中國科學技術大學出版社,2007.

[2] AGRAWAL R, IMIELINSKI T, SWAMI A. Database min-ing: a performance perspective[J]. IEEE Transactions on Knowledge and Data Engineering,1993,5(6):914-925.

[3] AGRAWAL R, SRIKANT R. Fast algorithms for mining association rules[C].Santiago, Chile: Proceeding of the 20th International Conference on Very Large Databases, 1994:487-499.

[4] AGARWAL C C, YU P S. Mining large itemsets for asso-ciation rules[J].Data Engineering Bulletin,1998,21(1):22-31.

[5] 吳昊, 李軍國. 基于關聯規則理論的道路交通事故數據挖掘模型[J].電子技術應用, 2009,35(2):139-143.

[6] AGARWAL R C, SHAFER J C. Parallel mining of associ-ation rules[J]. IEEE Transactions on Knowledge and Data Engineering,1998,8(6):962-969.

[7] 徐章艷, 劉美玲. Apriori 算法的三種優化方法[J]. 計算機工程與應用,2004,40(36):190-192.

[8] 肖冬榮, 楊磊. 基于遺傳算法的關聯規則數據挖掘[J]. 通信技術,2010,43(01):205-207.

[9] TAN P N, STEINBACH M,KUMAR V. 數據挖掘導論(完整版)[M].范明,范宏建,譯.北京:人民郵電出版社,


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美精品久久久久久久| 欧美三级中文字幕在线观看| 一区二区三区三区在线| 亚洲国产一二三| 欧美一区综合| 午夜在线视频观看日韩17c| 亚洲色图在线视频| 一区二区三区高清视频在线观看 | 欧美亚洲成人精品| 欧美日韩精品一区二区在线播放| 欧美精品一区二区三区蜜桃 | 欧美电影免费观看网站| 免费日韩av电影| 欧美jizzhd精品欧美巨大免费| 久久午夜国产精品| 久久在线免费观看| 美女精品在线观看| 欧美大片一区| 欧美日韩国产一区二区| 欧美另类人妖| 欧美三级在线| 国产精品美女一区二区| 国产欧美日韩精品在线| 国产日韩欧美在线一区| 国产亚洲欧美一区二区| 激情另类综合| 亚洲国产成人av| 日韩一级黄色片| 亚洲一级片在线观看| 亚洲欧美国产另类| 欧美综合国产| 亚洲开发第一视频在线播放| 一本在线高清不卡dvd| 亚洲制服欧美中文字幕中文字幕| 欧美一级久久久| 久久米奇亚洲| 欧美激情综合网| 国产精品美腿一区在线看 | 欧美诱惑福利视频| 亚洲级视频在线观看免费1级| 日韩一区二区精品在线观看| 亚洲性图久久| 久久精品夜夜夜夜久久| 免播放器亚洲| 欧美视频一区在线| 国产欧美在线看| 亚洲国产精品久久精品怡红院| 野花国产精品入口| 欧美影院在线播放| aⅴ色国产欧美| 欧美亚洲一区二区三区| 久热这里只精品99re8久| 欧美片第1页综合| 国产欧美精品xxxx另类| 在线观看视频日韩| 夜夜嗨av一区二区三区中文字幕 | 欧美日韩国产一区二区| 国产欧美日韩视频| 亚洲国产三级网| 亚洲欧美另类国产| 亚洲精品视频二区| 午夜精品亚洲| 欧美承认网站| 国产欧美午夜| 亚洲美女在线观看| 欧美亚洲一区三区| 一本色道久久综合| 久久久青草婷婷精品综合日韩 | 欧美性做爰猛烈叫床潮| 一区二区三区无毛| 一个色综合导航| 亚洲经典在线| 久久国内精品视频| 欧美日韩国产bt| 激情综合久久| 亚洲免费视频在线观看| 99re这里只有精品6| 久久精品视频在线看| 欧美日韩亚洲精品内裤| 黄色成人av网| 亚洲综合999| 夜夜嗨av色一区二区不卡| 久久九九国产精品| 欧美日韩亚洲国产精品| 在线免费观看一区二区三区| 亚洲欧美日韩成人| 亚洲视频在线观看一区| 毛片一区二区| 国产在线乱码一区二区三区| 一本到12不卡视频在线dvd| 亚洲国产日韩欧美在线动漫| 欧美一区二区三区四区在线| 欧美色视频一区| 亚洲欧洲在线观看| 亚洲第一级黄色片| 久久成人精品视频| 国产精品久久久久999| 亚洲精品一区二区三区婷婷月| 亚洲国产精品悠悠久久琪琪| 久久精品国产综合| 国产精品在线看| 亚洲婷婷综合久久一本伊一区| 一本久道久久综合婷婷鲸鱼| 美女免费视频一区| 黄色亚洲精品| 久久se精品一区精品二区| 欧美一区二区啪啪| 国产精品免费aⅴ片在线观看| avtt综合网| 亚洲午夜av电影| 欧美视频中文字幕| 99在线|亚洲一区二区| 一本色道久久综合亚洲二区三区| 欧美激情一区| 亚洲激情在线播放| 亚洲毛片播放| 欧美日韩国产小视频在线观看| 亚洲三级网站| 一区二区免费看| 欧美日韩亚洲成人| 一区二区高清| 午夜日韩av| 国产情人节一区| 亚欧美中日韩视频| 久久国产欧美日韩精品| 国产亚洲日本欧美韩国| 欧美在线视频观看| 久久综合999| 亚洲大片在线| 日韩午夜免费| 欧美日韩一级大片网址| 在线中文字幕一区| 性娇小13――14欧美| 国产日产欧产精品推荐色 | 午夜国产精品视频免费体验区| 欧美午夜片在线免费观看| 一区二区三区高清不卡| 亚洲欧美成人网| 国产精品天天看| 欧美在线免费视屏| 狼人天天伊人久久| 91久久精品日日躁夜夜躁国产| av72成人在线| 国产精品人人做人人爽| 欧美一区二区私人影院日本| 久久亚洲精品一区二区| 亚洲国产精品国自产拍av秋霞| 一本一本a久久| 国产精品久久久久久久久婷婷| 午夜亚洲伦理| 欧美成人免费播放| 99视频一区| 久久久久国产精品麻豆ai换脸| 亚洲国产高清高潮精品美女| 国产精品99久久久久久人| 国产精品尤物福利片在线观看| 亚洲大胆人体视频| 欧美日韩一卡| 欧美专区中文字幕| 欧美日韩xxxxx| 亚洲欧美日韩精品在线| 久久一区精品| 日韩亚洲不卡在线| 久久精品国产精品亚洲| 亚洲国产aⅴ天堂久久| 亚洲一区中文| 影音国产精品| 亚洲男女自偷自拍| 伊人男人综合视频网| 亚洲一级二级| 狠久久av成人天堂| 亚洲小少妇裸体bbw| 国产综合18久久久久久| 夜色激情一区二区| 国产一区二区三区黄| 99精品国产一区二区青青牛奶| 国产精品青草久久| 亚洲精品黄色| 国产伦精品一区二区三区高清版| 亚洲人成网站色ww在线| 国产精品私拍pans大尺度在线| 亚洲人成人一区二区在线观看| 国产精品美女www爽爽爽视频| 最近中文字幕mv在线一区二区三区四区| 欧美性猛交xxxx免费看久久久| 亚洲国产精品女人久久久| 国产精品久久久久久久7电影 | 欧美日韩激情网| 久久精品99国产精品日本 | 国产日韩欧美91| 一区二区久久| 在线播放不卡| 欧美在线视频二区| 一本色道久久88综合亚洲精品ⅰ| 久久香蕉国产线看观看网| 亚洲视屏在线播放| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美精品在线免费播放| 久久精品国产99国产精品| 国产精品毛片高清在线完整版|