亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于裁剪FP-Tree 的頻繁項集挖掘算法

        2015-01-13 10:20:30
        宜春學(xué)院學(xué)報 2015年12期
        關(guān)鍵詞:數(shù)據(jù)庫

        羅 芳

        (寧德師范學(xué)院 計算機(jī)系,福建 寧德 352100)

        關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘技術(shù)的重要內(nèi)容之一,在金融、教育、銷售等行業(yè)得到了越來越廣泛的應(yīng)用。在Apriori 算法[1,2]被AgrawalR 等人提出以后,許多學(xué)者對其進(jìn)行了改進(jìn),如FP-Growth[3],它比Apriori 算法快一個數(shù)量級。FP-Growth 算法通過建立FP 樹來挖掘數(shù)據(jù)庫中頻繁項集。首先掃描一次數(shù)據(jù)庫,算出各項集的支持度計數(shù),通過與用戶設(shè)定的最小支持度計數(shù)相比,得出頻繁1-項集,對頻繁1-項集按支持度計數(shù)進(jìn)行從大到小排序插入頻繁項頭表中;其次,再掃描一次數(shù)據(jù)庫,刪除數(shù)據(jù)庫中非頻繁1-項集的元素,構(gòu)造FP 樹,并挖掘出頻繁k(k >1)-項集。FP-Growth 算法在挖掘過程中,需要產(chǎn)生條件FP 樹,當(dāng)最小支持度較小時,將產(chǎn)生大量的條件FP 樹,占用的存儲空間會非常龐大。由于FP 樹和條件FP 樹都需要自頂向下、自底向上兩次遍歷,遍歷占用時間也大大增加。

        針對FP-Growth 算法的不足之處,吳倩等提出了壓縮FP-tree 的改進(jìn)搜索算法,[4]張中平等提出了基于矩陣的頻繁項集挖掘算法,[5]王利鋼等提出了基于FP-tree 的項約束關(guān)聯(lián)規(guī)則挖掘算法,[6]宋威等提出了基于動態(tài)裁剪頻繁模式樹的頻繁項集并發(fā)挖掘算法,[7]郭偉等提出了基于數(shù)組的FP-tree 頻繁項集挖掘算法,[8]付冬梅等提出了基于FP-tree 和約束概念格的關(guān)聯(lián)規(guī)則挖掘算法及應(yīng)用研究。[9]其中文獻(xiàn)[7]裁剪FP 樹的方法存在缺陷,可能會誤刪樹中結(jié)點(diǎn),導(dǎo)致挖掘出的頻繁項集不正確。為此本文提出了一種新的基于數(shù)組的頻繁模式樹裁剪算法PruneFP-tree(簡稱F_ FP),利用數(shù)組存儲所有的2-項集的支持度計數(shù),對FP 樹中的葉子結(jié)點(diǎn)進(jìn)行有效裁剪,減少條件FP 樹的生成,減少算法的遞歸次數(shù)。

        1 理論基礎(chǔ)

        數(shù)據(jù)庫D 是事務(wù)T 的集合,事務(wù)T 項目I 的集合,T I。若X T,則X 為一個項集,X 的支持度計數(shù)為包含X 的事務(wù)總數(shù),如果X 的支持度計數(shù)大于用戶給定的最小支持度計數(shù),則X 為頻繁項集。

        (1)FP-tree 的樹結(jié)構(gòu):

        FP-tree 包含一個值為null 的根結(jié)點(diǎn)、一棵項前綴子樹和一個頻繁項頭表HTable。樹中每個結(jié)點(diǎn)包括5 個域:item_ name、count、node_ link、child_ link、parent_ link,count 為支持度計數(shù),node_ link 指向下一個具有相同item_ name 的結(jié)點(diǎn),child_ link 指向子結(jié)點(diǎn),parent_ link 指向父結(jié)點(diǎn)。頻繁項頭表表示為Head_ table,其中每個表項 包 括 2 個 域: item_ name、 node_ link,item_ name 的指針node_ link 指向FP-tree 中與之同名的第1 個結(jié)點(diǎn)。

        (2)數(shù)組A 的定義如下:

        I = {I1,I2,…,In}是HTable 頻繁項表頭中項的集合,A 是一個長度不大于n-1 的結(jié)構(gòu)數(shù)組,用于存放2-項集的支持度計數(shù),數(shù)組元素的值可表示為:count(Ii,Ij),其中count(Ii,Ij)是2-項集的支持度計數(shù)。如果2-項集{Ii,Ij}的支持度計數(shù)為2 則A[i,j]= 2 、A[i,j]= 2 ,只取前一項來記錄即可,因此可知(i <j)。

        定理1 當(dāng)一棵FP-tree 構(gòu)造完成以后,樹中i 結(jié)點(diǎn)的分布不會發(fā)生任何變化,i 條件模式不變。

        證明:設(shè)FP 樹中i 結(jié)點(diǎn)的集合為{N1,N2,…,Nm}。當(dāng)FP 構(gòu)造完以后不會有新節(jié)點(diǎn)加入,則其節(jié)點(diǎn)條件模式不變。

        定理2 若一個項集X 的子集不是頻繁項集,那么項集X 也不是頻繁項集。

        證明:設(shè)k-項集X 為{I1,I2,…,Ik},如果存在它的任意子集{I1,I2,…,Ip}(1 <p <k)不是頻繁項集,則它的支持度計數(shù)(同時出現(xiàn)的次數(shù))小于最小支持度計數(shù),顯然{I1,I2,…,Ik}同時的支持度計數(shù)也小于最小支持度計數(shù),則項集X 也不是頻繁項集。

        定理3 設(shè)FP 樹中結(jié)點(diǎn)i 為葉子結(jié)點(diǎn),存在前綴路徑B = {B1,B2,…,Bk},如果包含結(jié)點(diǎn)i 的項集X 在FP 樹中Bk上是非頻繁的,且(B1∪i)∪(B1∪i),…,(Bk∪i)中也找不到包含i 的頻繁項集X,則可以在樹中刪除該路徑上的結(jié)點(diǎn)i。

        證明:如果項集X 在某條路徑上是非頻繁的,說明在該路徑上找不到頻繁項集X,若在(B1∪i)∪(B1∪i),…,(Bk∪i)中也找不到頻繁項集X,則說明在FP 樹中找不到包含i 的頻繁項集X。說明可以從樹中刪除該路徑的葉子結(jié)點(diǎn)i。根據(jù)定理2 結(jié)合FP 樹的特點(diǎn)(FP 樹是由頻繁1-項集構(gòu)建的),只需要求出結(jié)點(diǎn)i 的前綴路徑上的各結(jié)點(diǎn)與結(jié)點(diǎn)i 組合成的2-項集在該FP 樹中是不是頻繁的,如果不是,則說明以該2-項集為子集的項集都不是頻繁的。

        定理4 若在某路徑上,結(jié)點(diǎn)i 的父親結(jié)點(diǎn)為根結(jié)點(diǎn)NULL,且孩子結(jié)點(diǎn)為空,則可刪除該路徑的結(jié)點(diǎn)i。

        證明:若結(jié)點(diǎn)i 的父親結(jié)點(diǎn)為根結(jié)點(diǎn)NULL,且孩子結(jié)點(diǎn)為空,不可能找到包含i 頻繁k(k >1)- 項集,所以可以刪除該路徑的結(jié)點(diǎn)i。

        2 F_ FP 算法

        (1)首先掃描數(shù)據(jù)庫,算出各1-項集的支持度計數(shù),過濾非頻繁1-項集,將HTable 中的結(jié)點(diǎn)順序按支持度計數(shù)從大到小排序。對HTable 表中的事務(wù)進(jìn)行排序。

        (2)再掃描數(shù)據(jù)庫,構(gòu)造存放2-項集的數(shù)組A,并構(gòu)造FP 樹(與FP-Growth 算法一致,因此不詳細(xì)展開描述),裁剪FP 樹。

        (3)裁剪FP 樹的過程:①若樹中某路徑上結(jié)點(diǎn)i 的父結(jié)點(diǎn)和孩子結(jié)點(diǎn)都為空,則刪除該結(jié)點(diǎn);②若樹中某路徑上的結(jié)點(diǎn)i 的孩子結(jié)點(diǎn)為空,且在該路徑上沒有包含i 的頻繁2-項集,則要再尋找整棵樹種是否存在包含i 的頻繁2-項集,如果未找到,那么刪除該結(jié)點(diǎn)。

        輸入為數(shù)據(jù)庫DB,最小支持度計數(shù)min_ sup,輸出FP 樹。

        (1)count(n)←0;

        (2)foreachTiinDB //計算1-項集支持度計數(shù)

        (3)foreachIiinTi

        (4) {生成HTable 表,將事務(wù)Ii按支持度計數(shù)從大到小排列;

        (5)[p/P]= sort(Ti,Item_ sets);}

        (6)A[n-1,n-1]←0;//初始二維化數(shù)組

        (7)T ←null;//根結(jié)點(diǎn)為null

        (8)foreachIiinFrequent_ Items

        (9)foreachIjinTi

        (10){A[i,j]++;//構(gòu)造數(shù)組(i <j)

        (11)insert_ tree([p/P],T);}//構(gòu)造FP 樹

        (12)prune_ tree(T);//裁剪FP 樹

        prune_ tree(T)函數(shù)如下:

        (1)foreachiinHTable

        (2){if(i 的孩子為空且父親為根結(jié)點(diǎn)null)then 刪除結(jié)點(diǎn)i;

        (3)if(i 的孩子為空且i 的前綴路徑上找不到包含i 的頻繁2-項集)then

        (4){foreachj ∈Bj

        if(A[i,j]<min_ sup)then 刪除結(jié)點(diǎn)i;}}

        3 算法示例

        事務(wù)數(shù)據(jù)庫列表如表1 所示,設(shè)最小支持度計數(shù)為3。

        表1 事務(wù)數(shù)據(jù)庫表

        (1)掃描數(shù)據(jù)庫,找出1-項集{a,b,c,d,e,f}的支持度計數(shù)為:{5,6,6,5,3,2}。由于f 支持度計數(shù)為2 則1-項集{f}是非頻繁的,將頻繁1-項集按支持度計數(shù)從大到小排:{b,c,a,d,e},將數(shù)據(jù)庫事務(wù)也按該順序調(diào)整,如表1 的Frequent_ Items。

        (2)再次掃描已排序的數(shù)據(jù)庫,構(gòu)造數(shù)組A。首先讀取Frequent_ Items 中排好序的T1,得到A[b,c]= 1、A[b,d]= 1、A[c,d]= 1;讀取T2:A[b,a]= 1;讀取T3:A[c,a]= 1、A[c,e]= 1、A[a,e]=1;讀取T4:A[b,c]=1+1 =2、A[b,d]= 1 +1 = 2、A[b,e]= 1、A[c,d]= 1 + 1 = 2、A[c,e]= 1 +1 = 2、A[d,e]= 1;依次掃描剩余事務(wù)可得到如下數(shù)組A 如圖1 所示:

        圖1 數(shù)組A

        (3)首先創(chuàng)建FP 樹的根結(jié)點(diǎn),對排序的事務(wù)按順序調(diào)用insert_ tree([p/P],T),如果i 是p 的孩子,則樹中p 結(jié)點(diǎn)數(shù)加1,否則把i 作為新的結(jié)點(diǎn)加入樹中,遞歸調(diào)用insert_ tree([p/P],T),構(gòu)造FP 樹如圖2 所示。

        圖2 構(gòu)造FP 樹

        (4)對樹FP 進(jìn)行裁剪。

        首先求出e 的模式基:(c,a:1)、(b,c,d:1)、(b,a:1),這三條前綴路徑上都不包含e 的頻繁項集,再查找數(shù)組可知:A[e,b] = 2 、A[e,c] = 2 、A[e,a]= 2 、A[e,d]= 2 ,說明在整棵樹種找不到含e 的頻繁2-項集,根據(jù)定理3 則可刪除如圖1 所示①處的所有e 結(jié)點(diǎn);求出d 的模式基:(b,c,a:1)、(b,c:2)、(a:1)、(c:1),這四條前綴路徑上都不包含d 的頻繁2-項集,查找數(shù)組可知:A[d,b]= 3 、A[d,c]= 4 、A[d,a]= 2 ,說明在整棵樹中找到包含d 頻繁2-項集{{b,d},{c,d}},則前綴路徑(b,c,a:1)、(b,c:2)、(c:1)上的結(jié)點(diǎn)d 不能刪除,前綴路徑(a:1)上的結(jié)點(diǎn)d 可以刪除,如圖1 的②處所示;求出a 的模式基:(b,c:1)、(b:2)、(c:1),這四條前綴路徑上都不包含a 的頻繁2-項集,查找數(shù)組可知:A[a,b]=3 、A[a,c]= 2 ,說明在整棵樹中找到包含a 頻繁2-項集{a,b},則將前綴路徑(c:1)上的結(jié)點(diǎn)a刪除,在尋找模式基的時候發(fā)現(xiàn)如圖1 中左③所示的結(jié)點(diǎn)a 的父親結(jié)點(diǎn)為根結(jié)點(diǎn),且a 又是個葉子結(jié)點(diǎn),根據(jù)定理4 可刪除該結(jié)點(diǎn);c、b 都不是葉子結(jié)點(diǎn),則裁剪結(jié)束。裁剪后的FP 樹如圖3 所示:

        圖3 裁剪后的FP 樹

        4 實驗結(jié)果與分析

        實驗采用數(shù)據(jù)集Connect 進(jìn)行實驗,分析數(shù)據(jù)源的大小為16.0MB,事務(wù)數(shù)為240112 條,項數(shù)為232 個。算法編程語言采用C+ +,實驗環(huán)境為:處理器為Intel (R)Core (TM)i7-5500,運(yùn)算速度是2.40GHz,內(nèi)存(RAM)為8GB,64 位WIN7 操作系統(tǒng)。兩種算法在最小支持度為0.1、0.25、0.5、1、1.5 時,最小支持度與執(zhí)行時間的關(guān)系如圖4 所示,隨著最小支持度的升高兩種算法的執(zhí)行時間大幅度減少,顯然,在相同的條件下,由于對FP 樹進(jìn)行有效裁剪,生成的條件FP 樹也大大減少,減少了遞歸調(diào)用條件FP 樹的時間,相比FP-Growth算法,改進(jìn)后的算法執(zhí)行時間效率優(yōu)勢明顯。

        圖4 P_ FP 算法和FP-Growth 算法執(zhí)行時效比較

        在輸入數(shù)據(jù)集相同的情況下,P_ FP 算法和FP-Growth 算法中與FP 樹的結(jié)點(diǎn)個數(shù)與事務(wù)數(shù)之間的關(guān)系如圖5 所示,可以看出:輸入事務(wù)數(shù)越多,改進(jìn)后的P_ FP 算法生成的結(jié)點(diǎn)個數(shù)和FP-Growth 算法相比,差距越大,說明生成的條件FP樹越少,算法執(zhí)行效率越高。隨著事務(wù)數(shù)的增多,改進(jìn)后的P_ FP 算法和FP-Growth 算法相比生成的結(jié)點(diǎn)個數(shù)減少了1 倍以上。

        圖5 P_ FP 算法和FP-Growth 算法的結(jié)點(diǎn)數(shù)比較

        5 結(jié)束語

        FP-Growth 算法在執(zhí)行過程中生成大量的條件FP 樹,遍歷這些條件FP 樹的時空消耗的過大,為了解決這個問題,本文提出了一種基于數(shù)組的FP 樹裁剪方法,利用“若某一項集的子集是非頻繁的,那么該項集一定不是頻繁項集”這一性質(zhì)來對要裁剪的結(jié)點(diǎn)進(jìn)行篩選,有效減少了條件FP樹的生成,提高算法挖掘效率,實驗結(jié)果證明P_FP 算法的可行性和有效性。

        [1] Agrawal R,Imielinski T,Swami A.Mining Association Rules between Sets of Items in Large Databases[C].In:Proc of the ACM SIGMOD International conference on Management of Data,Washington DC,1993:207-216.

        [2]Agrawal R,Srikant R.Fast algorithms for mining association rules[A].Proc.1994 Int’l Conf.Very LargeData Bases (VLDB’94)[C].Santiago,1994:487-499.

        [3]HAN J,PEI J,YIN Y,etal.Mining frequent patterns without candidate generation a frequent_pattern tree approach[J].Data Mining and Knowledge Discovery,2004,8(1):53-87.

        [4]吳倩,羅健旭. 壓縮FP-tree 的改進(jìn)搜索算法[J]. 計算機(jī)工程與設(shè)計,2015,36(7):1771-1777.

        [5]張中平,李巖,楊靜. 基于矩陣的頻繁項集挖掘算法[J]. 計算機(jī)工程,2009,35(1):84-86.

        [6]王利鋼,陳平,胡松. 基于FP-tree 的項約束關(guān)聯(lián)規(guī)則挖掘算法[J]. 信息化研究,2014,40(6):11-15.

        [7]宋威,劉文博,李晉宏. 基于動態(tài)裁剪頻繁模式樹的頻繁項集并發(fā)挖掘算法[J],山東大學(xué)學(xué)報,2011,41(4):49-55.

        [8]郭偉,葉德謙. 改進(jìn)的基于FP-tree 頻繁項集挖掘算法[J]. 計算機(jī)工程與應(yīng)用,2007,43(19):174-176.

        [9]付冬梅,王志強(qiáng). 基于FP-tree 和約束概念格的關(guān)聯(lián)規(guī)則挖掘算法及應(yīng)用研究[J]. 計算機(jī)應(yīng)用研究,2014,31(4):1013-1016.

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        一本一道久久综合狠狠老| 久久中文字幕亚洲综合| 人妻久久久一区二区三区蜜臀| 麻豆精品国产精华精华液好用吗| 在线播放人成午夜免费视频| 国产女主播强伦视频网站| 激情久久黄色免费网站| 国产精品特级毛片一区二区三区| 久久夜色撩人精品国产小说| 久久人妻av无码中文专区| 国产性感午夜天堂av| 日韩av无码久久一区二区| 亚洲精品无码高潮喷水在线| 无码伊人久久大香线蕉| 蜜桃视频一区二区三区四| 色视频综合无码一区二区三区| 亚洲欧美国产日韩天堂在线视| 少妇被粗大猛进进出出| 国产性虐视频在线观看| 成人综合网站| 午夜三级网| 亚洲第一女人天堂av| 国产精品日日做人人爱| 中国a级毛片免费观看| 精品一二区| 国产乱子伦一区二区三区国色天香| 国产精品av在线| 一本色道久久99一综合| 亚州韩国日本区一区二区片| 日本在线一区二区三区不卡| 东京热加勒比无码少妇| 免费国产一级片内射老| 色婷婷av一区二区三区丝袜美腿| 又爽又黄又无遮挡网站| 久久精品中文字幕第23页| 国产美女高潮流的白浆久久| 香蕉视频在线观看亚洲| 麻豆亚洲av永久无码精品久久| 亚洲精品99久久久久久| av男人的天堂亚洲综合网| 国产精品午夜爆乳美女视频|