999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于差異點(diǎn)集的頻繁項(xiàng)集挖掘算法

2020-04-24 03:07:38朱璐偉
關(guān)鍵詞:定義效率方法

尹 遠(yuǎn),朱璐偉,文 凱

(1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065;2.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心,重慶 400065;3.重慶信科設(shè)計(jì)有限公司, 重慶 401121;4.中國(guó)電信股份有限公司 重慶分公司,重慶 401121)

0 引 言

挖掘關(guān)聯(lián)規(guī)則之前最重要且繁瑣的一步是頻繁項(xiàng)集的挖掘,頻繁項(xiàng)集挖掘算法可分為兩種:①水平逐級(jí)搜索,例如崔馨月等[1]提出的Eclat改進(jìn)算法,該算法采用位存儲(chǔ)結(jié)構(gòu),減少了進(jìn)行交集運(yùn)算的項(xiàng)目所占內(nèi)存;宋文慧等[2]提出基于矩陣的Apriori算法(M-Apriori),該算法將數(shù)據(jù)庫(kù)用上三角矩陣表示,可直接獲取頻繁1、2-項(xiàng)集,減少大量項(xiàng)候選項(xiàng)集的產(chǎn)生。②分而治之,例如何晴等[3]提出新的FP-Growth算法,該算法采用改進(jìn)的哈希頭表代替?zhèn)鹘y(tǒng)FP-Growth頭表,通過(guò)合并最小支持度相同的節(jié)點(diǎn)壓縮FP-tree,從而減少建樹所占用的內(nèi)存;李校林等[4]采用B-list結(jié)構(gòu)表示項(xiàng)集,并結(jié)合子父等價(jià)修剪策略對(duì)搜索空間進(jìn)行挖掘,時(shí)間性能大大提高。

針對(duì)傳統(tǒng)閾值設(shè)置過(guò)大或過(guò)小帶來(lái)不理想頻繁項(xiàng)集數(shù)量的影響,Giang等[5]采用Top-rank-k挖掘模式挖掘可擦除項(xiàng)集,并提出一種新的dPID-list結(jié)構(gòu),減少了節(jié)點(diǎn)信息冗余度。Deng等[6]采用Node-list結(jié)構(gòu)表示項(xiàng)集,并可通過(guò)項(xiàng)集交集運(yùn)算快速獲取項(xiàng)集支持度,提高了算法時(shí)間效率。

本文提出的基于差異點(diǎn)集[7]的DNTK算法,采用差異點(diǎn)集結(jié)構(gòu)中特有的差集運(yùn)算方法,避免了項(xiàng)集間復(fù)雜的連接過(guò)程;結(jié)合一種線性時(shí)間復(fù)雜度連接方法和早期修剪策略[8],提出一種更為高效的1-項(xiàng)集連接方法來(lái)避免項(xiàng)集節(jié)點(diǎn)間無(wú)效連接;采用包含索引策略[9]來(lái)減少項(xiàng)集連接次數(shù)。

1 相關(guān)知識(shí)

1.1 頻繁項(xiàng)集

定義1k-項(xiàng)集:對(duì)于集合P屬于I,稱集合P為一個(gè)項(xiàng)集,包含k個(gè)項(xiàng)目的項(xiàng)集稱為k-項(xiàng)集。

定義2 頻繁k-項(xiàng)集:對(duì)于給定的事務(wù)數(shù)據(jù)庫(kù)DB,min-sup為用戶給定的最小支持度,如果sup(X)≥min-sup×|DB|, 則稱X為頻繁項(xiàng)集。如果X為k-項(xiàng)集,則稱為頻繁k-項(xiàng)集。

定義3Top-rank-k頻繁項(xiàng)集:給定一個(gè)數(shù)據(jù)集DB和閾值k,當(dāng)且僅當(dāng)RP≤k,項(xiàng)集P稱為Top-rank-k頻繁項(xiàng)集(RP為支持度大于等于項(xiàng)集P支持度的項(xiàng)集個(gè)數(shù))。

1.2 差異點(diǎn)集(DiffNodeset)

近些年,許多數(shù)據(jù)結(jié)構(gòu)被提出用來(lái)提高挖掘頻繁項(xiàng)集的效率,例如Node-list,N-list[9]和Nodeset[10]。這三者都使用前綴編碼樹來(lái)表示項(xiàng)集信息,Nodeset結(jié)構(gòu)與前兩者不同之處在于Nodeset只需用pre-order或post-order來(lái)表示項(xiàng)集信息,因此其內(nèi)存消耗較小,但隨著數(shù)據(jù)集的增大,Nodeset的基數(shù)也會(huì)隨之變大。針對(duì)該問(wèn)題,本文將差異點(diǎn)集結(jié)構(gòu)運(yùn)用到Top-rank-k挖掘模式中,該結(jié)構(gòu)所產(chǎn)生基數(shù)較Nodeset要小得多。

定義4 設(shè)L1為按支持度降序排列的頻繁1-項(xiàng)集,對(duì)于任何兩個(gè)項(xiàng)目i1和i2(i1,i2∈L1), 我們表示i1

定義5 PP-code:對(duì)于PPC-tree中的每一個(gè)節(jié)點(diǎn)N,記PPN=[(N.pre-order,N.post-order,N.count)], 因 (N.pre-order,N.count) 和 (N.post-order,N.count) 都可以表示N節(jié)點(diǎn),因此這兩種表示方法是等價(jià)的。

定義6 1-項(xiàng)集的Nodeset:對(duì)于給定的PPC-tree與節(jié)點(diǎn)P,所有名為P的節(jié)點(diǎn)的所有PP-code構(gòu)成的集合稱為其對(duì)應(yīng)的Nodeset,記為NSP。其中所有PP-code按pre-order遞增順序排列。

定義7 2-項(xiàng)集的差異點(diǎn)集:設(shè)項(xiàng)目i1和i2(i1i2∈L1∩i1

(1)

性質(zhì)1 設(shè)2-項(xiàng)集i1i2的DiffNodeset為DN12,項(xiàng)集i1i2的支持度表示為

sup(i1i2)=sup(i1)-∑(E∈DN12)E.count

(2)

詳細(xì)證明過(guò)程請(qǐng)參考文獻(xiàn)[7]。

性質(zhì)2 設(shè)項(xiàng)集P=i1i2i3…ik(ij∈L1且i1

DNP=DN2/DN1

(3)

其中,/表示集合差。

詳細(xì)證明過(guò)程請(qǐng)參考文獻(xiàn)[7]。

性質(zhì)3 設(shè)項(xiàng)集P=i1i2i3…ik且P1=i1i2…ik-2ik-1, 則項(xiàng)集P的支持度可按以下公式計(jì)算

sup(P)=sup(P1)-∑(E∈DNP)E.count

(4)

詳細(xì)證明過(guò)程請(qǐng)參考文獻(xiàn)[7]。

2 DNTK算法

2.1 改進(jìn)的1-項(xiàng)集連接方法

早期修剪策略的算法步驟:

(1)分別計(jì)算1-項(xiàng)集ix和iy的Nodeset計(jì)數(shù)值,并表示為Cx和Cy;

(2)每一步,判定節(jié)點(diǎn)PPz若無(wú)父子關(guān)系,需確定PPz屬于1-項(xiàng)集ix的Nodeset還是iy的Nodeset,若屬于ix的Nodeset,更新Cx=Cx-PPz.count, 若屬于iy的Nodeset,更新Cy=Cy-PPz.count;

(3)判定Cx或Cy,若小于閾值,則停止計(jì)算并返回空值。

文獻(xiàn)[7]中項(xiàng)集連接方法Build_2-itemset_DN()可將兩個(gè)項(xiàng)集的連接線性時(shí)間復(fù)雜度降為O(m+n),m和n分別代表兩個(gè)項(xiàng)集的Nodeset大小。結(jié)合該項(xiàng)集連接方法和早期修剪策略,本文提出一種更為高效的項(xiàng)集連接算法Improved Build_2-itemset_DN(),該算法在項(xiàng)集連接過(guò)程中可及時(shí)判斷其連接的可行性,避免了多次無(wú)效運(yùn)算,偽代碼如下:

Procedure Improved Build_2-itemset_DN(ixiy)

(1) DNxy=?;

(2) k=0 and j=0;

(3) Cxbe the count of Nx(Nodesets of ix) and Cybe the count of Ny(Nodesets of iy); //Cx:ix的支持度

(4) Let m=1;

(5) While k

(6) If Nx[k].post-order> Ny[j].post-order then

(7) Cy=Cy-m*Ny[j++].count;

(8) m=1;

(9) Else

(10) If Nx[k].post-orderNy[j].pre-order then

(11) m=0;

(12) k++;

(13) Else

(14) DNxy←DNxy∪{(Nx[k].post-order,Nx[k].count)};

(15) Cx=Cx-Nx[k++].count;

(16) m=1;

(17) Endif

(18) Endif

(19) if(Cx

(20) k=Nx.size; //停止繼續(xù)獲取DNxy

(21) return NULL//DNxy返回為空, 且整個(gè)循環(huán)結(jié)束

(22) end if

(23) Endwhile

//若返回不為空值, 把ix的剩余節(jié)點(diǎn)都?xì)w為DN(ixiy)

(24) If k

(25) While k

(26) DNxy←DNxy∪{(Nx[k].post-order, Nx[k].count)};

(27) k++;

(28) Endwhile

(29) Endif

(30) Return DNxy

以文獻(xiàn)[7]中PPC-tree為例,項(xiàng)集e和c的Nodeset分別為 {5,8} 和 {{2,2},{7,1},{10,2}}。 設(shè)閾值為4,首先比較節(jié)點(diǎn)2和節(jié)點(diǎn)5,由于節(jié)點(diǎn)2的前后序編碼分別小于節(jié)點(diǎn)5的前后序編碼,按偽代碼第(13)行,則存在Nx[k].post-order

2.2 基于包含索引的頻繁2-項(xiàng)集挖掘

定義8 頻繁項(xiàng)集A的包含索引表示為subsume(A),定義為

subsume(A)={B∈I|g(A)?g(B)}

(5)

其中,g(A)表示項(xiàng)集A的事務(wù)集合。

性質(zhì)4 設(shè)項(xiàng)集P包含索引為subsume(P)={p1,p2…pm}, 項(xiàng)集P和集合 {p1,p2…pm} 的任何子集相結(jié)合的支持度等于項(xiàng)集P的支持度。詳細(xì)證明過(guò)程參考文獻(xiàn)[9]。

性質(zhì)5 設(shè)項(xiàng)集A∈subsume(B),B∈subsume(C), 則項(xiàng)集A∈subsume(C)。 詳細(xì)過(guò)程參考文獻(xiàn)[9]。

本文將包含索引策略與改進(jìn)后的1-項(xiàng)集連接方法Improved Build_2-itemset_DN()有效結(jié)合,即先將頻繁1-項(xiàng)集X與其非包含索引子集的1-項(xiàng)集進(jìn)行結(jié)合獲取候選2-項(xiàng)集,然后利用Improved Build_2-itemset_DN()方法計(jì)算其差異點(diǎn)集,因此不需要產(chǎn)生項(xiàng)集X與其包含索引子集結(jié)合的候選2-項(xiàng)集,減少了項(xiàng)集連接次數(shù),提高了算法時(shí)間效率。

2.3 基于包含索引的頻繁k(k>2)-項(xiàng)集挖掘

根據(jù)性質(zhì)2和性質(zhì)3,可直接利用項(xiàng)集的差異點(diǎn)集做差集運(yùn)算來(lái)獲取k(>2)項(xiàng)集的支持度,避免了項(xiàng)集間利用子父關(guān)系進(jìn)行連接,提高了時(shí)間效率。本文將包含索引策略和此差集方法進(jìn)行有效結(jié)合,不需產(chǎn)生項(xiàng)集與其包含索引子集結(jié)合的候選項(xiàng)集,減少了項(xiàng)集連接次數(shù),時(shí)間效率得到提高。

3 算法描述

DNTK算法具體流程如圖1所示。

圖1 DNTK算法流程

(1)支持度設(shè)為0,獲取所有頻繁1-項(xiàng)集,掃描數(shù)據(jù)庫(kù),建立PPC-tree;

(2)掃描PPC-tree,獲取所有1-項(xiàng)集的Nodeset;

(3)獲取所有1-項(xiàng)集的包含索引;

(4)設(shè)定值k,遍歷每個(gè)1-項(xiàng)集并將其插入Top-rank-ktable中,該表中包含項(xiàng)集和支持度,支持度相同的項(xiàng)集在同一個(gè)條目中,條目的數(shù)量不超過(guò)k,并更新閾值為表中最小支持度;

(5)先遍歷table中每個(gè)k-項(xiàng)集Y1,后遍歷前k-1個(gè)項(xiàng)目與Y1前k-1個(gè)項(xiàng)目相同;最后一個(gè)項(xiàng)目與Y1最后一個(gè)項(xiàng)目不同且不為Y1的包含索引子集的每個(gè)k-項(xiàng)集Y2。若Y1和Y2滿足閾值并且k=1,運(yùn)用Improved Build_2-itemset_DN(ixiy)方法對(duì)項(xiàng)集Y1和Y2進(jìn)行連接,并將項(xiàng)集Y1Y2的包含索引更新為Y1的包含索引,若兩個(gè)項(xiàng)集連接后返回不為空值,將其插入表中,刪除條目值大于k的條目并更新閾值為表中最小支持度。若Y1和Y2滿足閾值并且k>1,將Y1和Y2進(jìn)行差集運(yùn)算,并將項(xiàng)集Y1Y2的包含索引更新為Y1的包含索引,若項(xiàng)集Y1Y2的支持度滿足閾值,將其插入表中,刪除條目值大于k的條目并更新閾值為表中最小支持度;

(6)重復(fù)步驟(5),直到?jīng)]有新的項(xiàng)集產(chǎn)生;

(7)將表中包含索引不為空集的項(xiàng)集與其包含索引每個(gè)子集進(jìn)行結(jié)合產(chǎn)生新的項(xiàng)集,根據(jù)性質(zhì)4,可直接將其插入到Top-rank-ktable中。

4 實(shí)驗(yàn)結(jié)果分析

本文將DNTK*與DNTK算法的運(yùn)行時(shí)間比例在不同數(shù)據(jù)集中作對(duì)比(DNTK*為未采用包含索引策略的DNTK算法),以測(cè)試采用了包含索引策略的DNTK算法因減少項(xiàng)集連接次數(shù)所帶來(lái)的時(shí)間效益。并且本文將DNTK算法與FAE和NTK算法在運(yùn)行時(shí)間和內(nèi)存占用方面進(jìn)行比較,以驗(yàn)證該算法的整體性能。用java語(yǔ)言在實(shí)驗(yàn)環(huán)境為Inter(R) Core(TM) i5 3317U @ 1.7GHz CPU,內(nèi)存4 GB,64位操作系統(tǒng)設(shè)備上實(shí)現(xiàn)以上算法比較,各組實(shí)驗(yàn)中每種算法所挖掘的頻繁項(xiàng)集數(shù)量和內(nèi)容是相同的,確保了實(shí)驗(yàn)公平性。實(shí)驗(yàn)所用數(shù)據(jù)集為常用數(shù)據(jù)集Retail,Connect,T10I4D100K和T2K50K1D,見(jiàn)表1。實(shí)驗(yàn)通過(guò)改變top rank value(k)的大小來(lái)測(cè)試算法運(yùn)行時(shí)間和內(nèi)存占用的情況。DNTK*算法與DNTK算法的運(yùn)行時(shí)間比例實(shí)驗(yàn)結(jié)果如圖2所示,DNTK算法與FAE和NTK算法的運(yùn)行時(shí)間和內(nèi)存占用對(duì)比實(shí)驗(yàn)結(jié)果分別如圖3和圖4所示。

表1 數(shù)據(jù)集參數(shù)

圖2 運(yùn)行時(shí)間比例

圖3 運(yùn)行時(shí)間對(duì)比

圖4 內(nèi)存消耗對(duì)比

如圖2所示,DNTK*算法與DNTK算法的運(yùn)行時(shí)間比例在Connect和T2K50K1D數(shù)據(jù)集中隨著k值增大而增大,在T2K50K1D數(shù)據(jù)集中運(yùn)行時(shí),當(dāng)k接近800的時(shí)候,DNTK算法時(shí)間效率比DNTK*算法快約兩倍。因此可得出以下結(jié)論:采用了包含索引策略的DNTK算法因減少了項(xiàng)集連接次數(shù),其時(shí)間效率得到提高;尤其在k值增大的時(shí)候,項(xiàng)集連接減少的次數(shù)會(huì)隨之增加。

如圖3所示,3種算法的運(yùn)行時(shí)間都隨著k值增大而增大,在T10I4D100K數(shù)據(jù)集上運(yùn)行時(shí),DNTK算法的時(shí)間效率優(yōu)于FAE和NTK算法尤其是在Table-rank-value(k)越來(lái)越大的時(shí)候。在數(shù)據(jù)集Retail上運(yùn)行時(shí),當(dāng)k值接近500的時(shí)候,DNTK算法比FAE算法快約5倍,比NTK算法快約3倍。隨著k值越來(lái)越小,DNTK算法的時(shí)間效率優(yōu)勢(shì)也越來(lái)越不明顯。如圖4所示,在內(nèi)存消耗方面,這3種算法在不同數(shù)據(jù)集上的內(nèi)存消耗都隨著k值增大而增大,當(dāng)k值較大時(shí),由于差異點(diǎn)集的結(jié)構(gòu)性優(yōu)勢(shì),DNTK算法的內(nèi)存消耗明顯少于FAE和NTK算法。實(shí)驗(yàn)結(jié)果表明DNTK算法在不同類型數(shù)據(jù)集中都有著較高的時(shí)間效率與空間效率。

5 結(jié)束語(yǔ)

本文提出一種頻繁模式挖掘算法-DNTK。該算法將一種樹形結(jié)構(gòu)差異點(diǎn)集運(yùn)用在Top-rank-k挖掘模式中,利用差集運(yùn)算快速獲取k(>2)項(xiàng)集支持度;結(jié)合Build_2-itemset_DN()項(xiàng)集連接方法和早期修剪策略,本文提出一種更為高效的項(xiàng)集連接方法,該方法可及時(shí)發(fā)現(xiàn)項(xiàng)集連接的可行性,提高時(shí)間效率;在DNTK算法中引入包含索引策略,減少了項(xiàng)集連接次數(shù),提高了時(shí)間效率。實(shí)驗(yàn)結(jié)果表明DNTK算法在不同的數(shù)據(jù)集中性能優(yōu)于FAE和NTK算法。考慮數(shù)據(jù)集越來(lái)越大的情況和當(dāng)前大數(shù)據(jù)環(huán)境,DNTK算法與Spark平臺(tái)結(jié)合[11]將會(huì)是下一步的研究方向。

猜你喜歡
定義效率方法
提升朗讀教學(xué)效率的幾點(diǎn)思考
甘肅教育(2020年14期)2020-09-11 07:57:42
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
跟蹤導(dǎo)練(一)2
“錢”、“事”脫節(jié)效率低
修辭學(xué)的重大定義
山的定義
提高講解示范效率的幾點(diǎn)感受
體育師友(2011年2期)2011-03-20 15:29:29
主站蜘蛛池模板: 国产亚洲欧美在线人成aaaa| 欧美精品在线看| 91久久国产综合精品| 久久精品亚洲热综合一区二区| 精品一区二区三区水蜜桃| 一本久道久久综合多人| 91精品专区国产盗摄| 无遮挡一级毛片呦女视频| 久久视精品| 尤物视频一区| 97国产精品视频自在拍| 亚洲成人播放| 欧美精品成人一区二区视频一| 成人欧美在线观看| 国产幂在线无码精品| 亚洲香蕉在线| 日韩人妻少妇一区二区| 欧美亚洲国产精品久久蜜芽| 欧美人与性动交a欧美精品| 久草国产在线观看| 亚洲AV无码久久天堂| 性视频久久| 亚卅精品无码久久毛片乌克兰| 毛片久久网站小视频| 久久人体视频| 日本亚洲国产一区二区三区| 麻豆国产精品一二三在线观看| 99久久国产综合精品2020| 国产另类视频| 国内熟女少妇一线天| 欧美一区二区三区欧美日韩亚洲| 国产91视频免费| 国产永久免费视频m3u8| 综合色亚洲| 国产97视频在线| 亚洲成人高清无码| 欧美视频在线播放观看免费福利资源| 在线观看免费黄色网址| 免费毛片网站在线观看| 老司机久久99久久精品播放| 99热这里只有免费国产精品 | 亚洲香蕉在线| 国产99在线| 一级一级特黄女人精品毛片| 制服无码网站| 国产永久无码观看在线| 国产女人18水真多毛片18精品| 日韩欧美国产另类| 国产精品人人做人人爽人人添| 久久男人视频| 欧美精品伊人久久| 亚洲v日韩v欧美在线观看| 一级毛片不卡片免费观看| 91久久性奴调教国产免费| 欧美亚洲国产精品第一页| 无码国产伊人| 中国特黄美女一级视频| 人妻无码中文字幕第一区| 日韩最新中文字幕| 国产成人免费观看在线视频| 区国产精品搜索视频| 亚洲欧美日韩成人在线| 亚洲色婷婷一区二区| 日韩一二三区视频精品| 免费人成网站在线观看欧美| 亚洲一级毛片免费观看| 亚洲成人在线网| 3344在线观看无码| 久久天天躁狠狠躁夜夜躁| 日韩欧美一区在线观看| 在线观看无码av五月花| 1024你懂的国产精品| 午夜毛片福利| 国产精品视频久| 美女高潮全身流白浆福利区| 丁香亚洲综合五月天婷婷| 丰满人妻被猛烈进入无码| 国产成人亚洲无吗淙合青草| 中文字幕资源站| 亚洲成人黄色网址| 亚洲人成影院在线观看| 东京热av无码电影一区二区|