• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Fork/Join的事務(wù)日志伴隨模式挖掘方法

    2023-02-17 06:23:00冉義兵畢國鵬
    關(guān)鍵詞:項(xiàng)集事務(wù)日志

    孔 明,魏 東,2,冉義兵,畢國鵬

    1(北京建筑大學(xué) 電氣與信息工程學(xué)院,北京 100044)2(北京市科學(xué)技術(shù)委員會(huì) 建筑大數(shù)據(jù)智能處理方法研究北京市重點(diǎn)實(shí)驗(yàn)室,北京 100044)3(北京聲訊電子股份有限公司,北京 100094)

    1 引 言

    隨著信息網(wǎng)絡(luò)的快速發(fā)展和信息技術(shù)的廣泛應(yīng)用,客戶關(guān)系管理系統(tǒng)、電子商務(wù)系統(tǒng)、監(jiān)控系統(tǒng)等各類信息系統(tǒng)得以部署,從這些系統(tǒng)中可以獲取大量的事務(wù)日志.事務(wù)日志一般包括活動(dòng)內(nèi)容、執(zhí)行時(shí)間、參與者等信息[1].通過對日志信息進(jìn)行挖掘,可以發(fā)現(xiàn)在給定時(shí)間段內(nèi)經(jīng)常共同出現(xiàn)在同一地點(diǎn)的對象(用戶、車輛、人群等),而這些在時(shí)空上頻繁共現(xiàn)的對象,即為伴隨模式.伴隨模式通常蘊(yùn)含著事物間潛在的關(guān)系,因此伴隨模式的挖掘被廣泛應(yīng)用于各類信息系統(tǒng)中.例如,利用學(xué)生卡管理系統(tǒng)的刷卡數(shù)據(jù)推斷學(xué)生的時(shí)空共現(xiàn),有利于構(gòu)建和分析真實(shí)社會(huì)網(wǎng)絡(luò)[1];在車輛智能監(jiān)測記錄系統(tǒng)的過車數(shù)據(jù)中挖掘伴隨車輛,有利于公安部門搜尋有結(jié)伴作案的嫌疑車輛[2];基于移動(dòng)通信基站IP數(shù)據(jù)的伴隨人員推薦,有利于移動(dòng)運(yùn)營商向潛在的用戶推薦服務(wù);基于用戶位置簽到數(shù)據(jù)的伴隨人群發(fā)現(xiàn),有利于解決所在簽到地點(diǎn)的資源配置和規(guī)劃決策問題[3].

    現(xiàn)有伴隨模式可分為軌跡伴隨模式和頻繁伴隨模式,軌跡伴隨模式是指在設(shè)定的時(shí)間長度閾值上,具有相同或相似運(yùn)動(dòng)軌跡的移動(dòng)對象群體;頻繁伴隨模式是指在設(shè)定時(shí)間內(nèi)頻繁出現(xiàn)在多個(gè)不同數(shù)據(jù)流上的一組對象[4].伴隨模式挖掘方法可分為軌跡相似度算法和關(guān)聯(lián)規(guī)則算法.

    軌跡相似性算法一般用于挖掘軌跡伴隨模式,該算法通過構(gòu)建對象的移動(dòng)序列,求得對象之間移動(dòng)軌跡的最長公共子序列,當(dāng)最長公共子序列的長度達(dá)到設(shè)定閾值,則判定這些對象存在伴隨關(guān)系.趙新勇等[5]提出了基于車牌自動(dòng)識別數(shù)據(jù)的最長公共子序列算法,以實(shí)現(xiàn)伴隨車輛的檢測和識別;Zheng等[6]提出了一種基于密度聚類的伴隨模式挖掘算法,用于發(fā)現(xiàn)蘊(yùn)含在軌跡數(shù)據(jù)中的伴隨模式;SHEIN等[7]提出了一種微聚類算法用于發(fā)現(xiàn)軌跡數(shù)據(jù)流中的松散伴隨模式.然而,軌跡相似度算法需要事先指定待比對的對象,才能通過其軌跡數(shù)據(jù)找出與其存在伴隨關(guān)系的其他對象.若挖掘數(shù)據(jù)中所有的伴隨模式,軌跡相似度算法會(huì)耗費(fèi)大量的時(shí)間.

    關(guān)聯(lián)規(guī)則算法一般用于挖掘頻繁伴隨模式,相比軌跡相似度算法,關(guān)聯(lián)規(guī)則算法能夠高效地挖掘出數(shù)據(jù)中所有的伴隨模式[8],它將一定時(shí)間范圍內(nèi)一起出現(xiàn)的對象集作為事務(wù)集(伴隨數(shù)據(jù)集),通過所設(shè)定的支持度閾值,挖掘出存在伴隨關(guān)系的頻繁項(xiàng)集.常用的頻繁伴隨模式挖掘方法主要是利用滑動(dòng)窗口或時(shí)間切片方法,來劃定伴隨數(shù)據(jù)集,再運(yùn)用關(guān)聯(lián)規(guī)則算法挖掘出伴隨模式.王齊童等[9]提出了基于時(shí)空數(shù)據(jù)的滑動(dòng)窗口方法用于劃定伴隨數(shù)據(jù)集,并將剪枝算法、貪心算法與Apriori 技術(shù)相結(jié)合,對移動(dòng)對象的伴隨模式進(jìn)行挖掘;朱美玲等[10]提出了基于車牌識別流數(shù)據(jù)的PlatoonFinder算法來挖掘伴隨車輛,其中利用了滑動(dòng)窗口劃定伴隨數(shù)據(jù)集;Liu等[11]采用滑動(dòng)窗口劃定伴隨數(shù)據(jù)集,并利用改進(jìn)SeqStream算法挖掘伴隨車輛;陳瑤等[12]通過時(shí)間切片劃定伴隨數(shù)據(jù)集,并基于Spark計(jì)算框架的矩陣剪枝頻繁項(xiàng)集挖掘算法發(fā)現(xiàn)伴隨車輛;劉惠惠等[8]通過時(shí)間切片劃定伴隨數(shù)據(jù)集,基于Spark計(jì)算框架的FP-Growth算法挖掘伴隨車輛.此外,還有學(xué)者采用聚類算法劃定伴隨數(shù)據(jù)集.YAO等[13]采用DBSCAN算法對軌跡數(shù)據(jù)進(jìn)行聚類,然后利用FP-Growth算法挖掘蘊(yùn)含在軌跡數(shù)據(jù)的伴隨模式;YAO等[14]采用HDBSCAN算法,解決了傳統(tǒng)DBSCAN算法在處理密度不同的聚類問題時(shí)遇到的困難,再利用FP-Growth算法挖掘伴隨模式.雖然上述學(xué)者在伴隨模式挖掘方面取得了一些成果,但是現(xiàn)有劃定伴隨數(shù)據(jù)集的方法主要應(yīng)用于軌跡數(shù)據(jù),并非事務(wù)日志數(shù)據(jù);而且上述成果尚未利用伴隨模式挖掘結(jié)果生成關(guān)聯(lián)規(guī)則,無法進(jìn)一步獲得和分析對象間潛在的關(guān)聯(lián)關(guān)系.

    事務(wù)日志是一種大規(guī)模的歷史靜態(tài)數(shù)據(jù),由于傳統(tǒng)串行的滑動(dòng)窗口算法和FP-Growth算法只能調(diào)用單一線程進(jìn)行計(jì)算,無法充分利用多核配置的加速性能,隨著數(shù)據(jù)規(guī)模的擴(kuò)張,會(huì)導(dǎo)致挖掘伴隨模式的時(shí)間急劇增加.目前計(jì)算機(jī)技術(shù)的快速發(fā)展促進(jìn)了多核處理器與并行計(jì)算框架的發(fā)展與應(yīng)用,然而現(xiàn)有的Hadoop和Spark并行計(jì)算框架不夠輕量,難以對串行的算法進(jìn)行并行化改造,不利于應(yīng)用的遷移和擴(kuò)展[15],并且通信成本、負(fù)載平衡和I/O操作會(huì)導(dǎo)致運(yùn)維費(fèi)用較高[16].為此,本文在共享內(nèi)存的多核平臺(tái)上,提出一種基于事務(wù)日志的伴隨模式挖掘框架,該框架以Java的并發(fā)性和Fork/Join并行計(jì)算技術(shù)為基礎(chǔ),包括劃定伴隨數(shù)據(jù)集、頻繁項(xiàng)集挖掘和關(guān)聯(lián)規(guī)則挖掘3部分.在劃定伴隨數(shù)據(jù)集部分,本文提出一種多核并行滑動(dòng)窗口(parallel sliding window,PSW)算法,通過對事務(wù)日志數(shù)據(jù)庫進(jìn)行劃分,能夠并行地在各個(gè)子數(shù)據(jù)庫上劃定子伴隨數(shù)據(jù)集.在頻繁項(xiàng)集挖掘部分,本文提出一種多核并行FP-Growth(parallel FP-Growth,PFP-Growth)算法,能夠并行地在各個(gè)子伴隨數(shù)據(jù)集上構(gòu)造FP樹,從而縮短挖掘頻繁項(xiàng)集的時(shí)間;在關(guān)聯(lián)規(guī)則挖掘部分,本文利用支持度、置信度和提升度3個(gè)參數(shù)來挖掘伴隨模式中的關(guān)聯(lián)規(guī)則,目的是通過這些關(guān)聯(lián)規(guī)則分析出對象間的關(guān)聯(lián)關(guān)系和規(guī)律性.基于門禁刷卡數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,相比傳統(tǒng)算法,本文所提出的框架能夠挖掘出更多的伴隨模式,同時(shí)挖掘效率較高.

    2 伴隨模式挖掘框架

    2.1 框架結(jié)構(gòu)及問題描述

    伴隨模式挖掘框架結(jié)構(gòu)如圖1所示,由劃定伴隨數(shù)據(jù)集、頻繁項(xiàng)集挖掘、關(guān)聯(lián)規(guī)則挖掘3部分組成.

    圖1 伴隨模式挖掘框架圖Fig.1 Schematic illustration of the proposed co-occurrence pattern mining frame

    在劃定伴隨數(shù)據(jù)集部分,本文首先將事務(wù)日志數(shù)據(jù)庫D劃分為n個(gè)子數(shù)據(jù)庫D1,D2,…,Di,…,Dn(1≤i≤n).D中共包含h條事務(wù)日志記錄,其中第j條事務(wù)日志記錄可表示為:

    xj={oj,lj,tj}(1≤j≤h)

    (1)

    式中,oj表示xj所記錄的對象;lj表示oj所經(jīng)過的監(jiān)測點(diǎn);tj表示oj經(jīng)過lj的時(shí)間.

    給定最大時(shí)間閾值λ,?xu,xv∈Di,1≤u≤h,1≤v≤h,u≠v,若xu={ou,lu,tu},xv={ov,lv,tv}同時(shí)滿足ou≠ov、lu=lv、|tu-tv|≤λ這3個(gè)條件,則稱xu與xv在最大時(shí)間閾值內(nèi)共同出現(xiàn)一次,即兩者可能存在共現(xiàn)關(guān)系.

    在此基礎(chǔ)上,本文采用將Fork/Join并行技術(shù)與滑動(dòng)窗口相結(jié)合的PSW算法,以高效地從D中劃定出伴隨數(shù)據(jù)集S:

    S={S1,S2,…,Si,…,Sn}

    (2)

    式中,Si表示從Di中劃定出的子伴隨數(shù)據(jù)集,它由若干個(gè)存在共現(xiàn)關(guān)系的項(xiàng)集(item set)組成,項(xiàng)集IS可表示為:

    IS={item1,item2,itemp,…,itemr} (2≤p≤r)

    (3)

    式中,itemp表示由地點(diǎn)lp與對象op組成的項(xiàng)(item),該項(xiàng)在Di中有唯一的事務(wù)日志記錄xp={op,lp,tp}與之對應(yīng);r表示IS共包含項(xiàng)的個(gè)數(shù).IS可重新表示為:

    IS={l1∧o1,l2∧o2,lp∧op,…,lr∧or}
    (l1=l2=lp=…=lr,o1≠o2≠op≠…≠or)

    (4)

    其中,?itemp∈IS(p≠1),itemp={lp∧op}需滿足|t1-tp|≤λ的條件.

    在頻繁項(xiàng)集挖掘部分,本文提出基于Fork/Join并行框架的PFP-Growth算法,該算法能夠并行地從S中挖掘出局部頻繁項(xiàng)集T:

    T={T1,T2,…,Ti,…,Tn}

    (5)

    式中,Ti表示從Si中挖掘出的子局部頻繁項(xiàng)集,它由若干個(gè)頻繁項(xiàng)集(frequent itemset)組成.頻繁項(xiàng)集是指Si中頻繁出現(xiàn)的項(xiàng)集,其結(jié)構(gòu)與IS的結(jié)構(gòu)類似.若IS?Si,IS≠?并且IS滿足式(6)的條件時(shí),則將IS稱為頻繁項(xiàng)集.

    support(IS)≥minSup

    (6)

    式中,support(IS)表示IS的支持度,即IS在Si中出現(xiàn)的頻次,minSup表示絕對最小支持度閾值.

    然后,本文通過合并Ti,得到全局頻繁項(xiàng)集Tglobal,即所有的頻繁k-項(xiàng)集.這些頻繁k-項(xiàng)集,既滿足伴隨模式對兩者以上的對象,在最大時(shí)間閾值內(nèi)一起出現(xiàn)在同一地點(diǎn)的要求,又滿足出現(xiàn)在伴隨數(shù)據(jù)集S中的支持度不小于絕對最小支持度的條件,因此本文認(rèn)為這些項(xiàng)集是伴隨模式.

    在關(guān)聯(lián)規(guī)則挖掘部分,本文采用支持度、置信度和提升度3個(gè)參數(shù),描述從Tglobal中挖掘的關(guān)聯(lián)規(guī)則的有效性.關(guān)聯(lián)規(guī)則集V由若干關(guān)聯(lián)規(guī)則R組成,R可表示為:

    R:A?B

    (7)

    式中,A表示規(guī)則的前件,B表示規(guī)則的后件,且A?IS,B?IS,A∩B=?,規(guī)則R表示當(dāng)A中的對象出現(xiàn)時(shí),B中的對象也將隨之出現(xiàn),有助于用戶發(fā)現(xiàn)和分析蘊(yùn)含在伴隨模式中對象間潛在的關(guān)聯(lián)關(guān)系.

    2.2 Fork/Join并行技術(shù)

    Fork/Join框架是Java提供的一個(gè)用于并行執(zhí)行任務(wù)的輕量級框架,能夠充分利用多核CPU性能,提高程序的運(yùn)行效率.該框架便于學(xué)習(xí)和實(shí)現(xiàn),可以簡化開發(fā)人員編寫并行程序的工作[17].

    Fork/Join采用分治思想[18],通過遞歸分割大規(guī)模復(fù)雜的父任務(wù),形成多個(gè)小規(guī)模簡單的子任務(wù);然后把各個(gè)子任務(wù)分配到不同的CPU線程中開始并行計(jì)算;最后合并所有子任務(wù)的執(zhí)行結(jié)果,得到最終的任務(wù)結(jié)果.Fork/Join可以根據(jù)問題規(guī)模的閾值來控制子任務(wù)的計(jì)算規(guī)模,采用線程池對工作線程進(jìn)行統(tǒng)一管理,避免因線程的多次創(chuàng)建和關(guān)閉造成資源被不斷消耗的問題.圖2為Fork/Join 框架并行計(jì)算原理.

    圖2 Fork/Join 框架并行計(jì)算原理Fig.2 Principles of Fork/Join parallel computing

    工作竊取算法是Fork/Join框架中一種用來實(shí)現(xiàn)負(fù)載均衡、提高運(yùn)算性能的方法,其實(shí)際上是一種工作任務(wù)的調(diào)度方法.它的基本思想是當(dāng)一個(gè)線程把自身任務(wù)隊(duì)列中全部任務(wù)執(zhí)行完畢后,該線程會(huì)從其他未執(zhí)行完畢的線程任務(wù)隊(duì)列中竊取任務(wù)執(zhí)行,避免線程處于閑置狀態(tài),從而能夠保證負(fù)載均衡,提高CPU的利用率,減少程序的處理時(shí)間.

    本文基于Fork/Join并行技術(shù),采用Java語言編程實(shí)現(xiàn)了PSW和PFP-Growth算法,偽代碼如下:

    1.public class ParallelTask extends RecursiveAction{ //繼承RecursiveAction類

    2. @Override

    3. protected void compute(){

    4. if(end-start<=Threshold){//如果問題規(guī)模小于閾值

    5. ComputePswPfp(start,end);}//執(zhí)行子任務(wù)

    6. else{

    7. int pivot =(start + end)/2;//對半分解父任務(wù)

    8. ParallelTask task1 = new ParallelTask(start,pivot,Threshold);

    9. ParallelTask task2 = new ParallelTask(pivot,end,Threshold);

    10. invokeAll(task1,task2);}}//子任務(wù)遞歸

    11. public void ComputePswPfp(start,end){

    12. for(int i = start;i <= end;i++){//i表示第i個(gè)子數(shù)據(jù)庫

    13. PSW(i);//從Di中劃定子伴隨數(shù)據(jù)集

    14. PFP_Growth(i);}}//從Si中挖掘子頻繁項(xiàng)集

    15. public static void main(){

    16. int n = 子數(shù)據(jù)庫的總數(shù);

    17. ParallelTask task = new ParallelTask(1,n,Threshold);

    18. int thread = Runtime.getRuntime().availableProcessors();

    19. ForkJoinPool pool = new ForkJoinPool(thread);//創(chuàng)建ForkJoin線程池

    20. pool.invoke(task);//并行執(zhí)行問題

    21. 匯總各子任務(wù)的計(jì)算結(jié)果;}}

    為實(shí)現(xiàn)上述算法的并行,需要對Fork/Join框架進(jìn)行重構(gòu),建立可以被Fork/Join框架執(zhí)行的任務(wù)類ParallelTask,該類通過繼承Fork/Join應(yīng)用接口類java.util.concurrent.RecursiveAction得到.在ParallelTask類中,通過重寫compute()方法,可實(shí)現(xiàn)對各個(gè)子任務(wù)的計(jì)算.main()方法表示程序的主函數(shù),用于運(yùn)行PSW算法和PFP-Growth算法.

    在compute()方法中,首先需要判斷事務(wù)數(shù)據(jù)庫的規(guī)模是否小于閾值,本文用start與end的差值(1≤start≤n,1≤end≤n,start≠end)來表示事務(wù)日志數(shù)據(jù)庫的規(guī)模,用Threshold來表示閾值.Threshold的設(shè)定是決定Fork/Join框架執(zhí)行時(shí)間的關(guān)鍵因素,其大小需要根據(jù)經(jīng)驗(yàn)或?qū)嶒?yàn)分析來設(shè)定[19],本文將Threshold設(shè)定為1.如果差值小于等于閾值,則執(zhí)行子任務(wù),即執(zhí)行ComputePswPfp方法;如果差值大于閾值,則對任務(wù)進(jìn)行第一次分解.第一次分解完成后,程序會(huì)再次進(jìn)行判定,如果start與end的差值仍大于閾值,則利用invokeAll()方法對分解后的任務(wù)進(jìn)行遞歸分解,直到滿足條件為止.

    2.3 劃定伴隨數(shù)據(jù)集

    本文采用滑動(dòng)窗口掃描事務(wù)日志數(shù)據(jù)庫以劃定出伴隨數(shù)據(jù)集,其中伴隨數(shù)據(jù)集由滿足共現(xiàn)關(guān)系的項(xiàng)集組成.

    2.3.1 滑動(dòng)窗口

    由于事務(wù)日志并非實(shí)質(zhì)上的事務(wù)數(shù)據(jù),本文不能直接將其作為關(guān)聯(lián)規(guī)則挖掘算法的輸入,需要將事務(wù)日志數(shù)據(jù)轉(zhuǎn)換為伴隨數(shù)據(jù)集.考慮到事務(wù)日志是按照時(shí)間順序?qū)?shù)據(jù)進(jìn)行記錄,此處適合采用滑動(dòng)窗口[20](sliding window,SW)找出所有可能存在共現(xiàn)關(guān)系的項(xiàng)集,實(shí)現(xiàn)伴隨數(shù)據(jù)集的劃定.

    滑動(dòng)窗口SW可由m個(gè)連續(xù)的基本窗口組成,SW可表示為:

    SW={SW1,…,SWd,…,SWm}(1≤d≤m)

    (8)

    式中,SWd可表示為:

    SWd={x1,…,xs,…,xw}(1≤s≤w)

    (9)

    式中,w表示滑動(dòng)窗口的寬度.

    本文將SWd作為一個(gè)包含了w條事務(wù)日志記錄的隊(duì)列,隊(duì)列的長度固定為w.通過將SWd向前滑動(dòng)一條事務(wù)日志記錄,同時(shí)將這條新記錄放入隊(duì)尾,并扔掉原來位于隊(duì)首的記錄,可得到SWd+1(d+1≤m).

    SW算法的計(jì)算對象不再是當(dāng)前的整個(gè)事務(wù)日志數(shù)據(jù)庫,而是事務(wù)日志數(shù)據(jù)庫的子集,因此可以在每個(gè)SWd內(nèi)判斷事務(wù)日志記錄之間是否存在共現(xiàn)關(guān)系,以提高劃定伴隨數(shù)據(jù)集的效率,并減少所需的內(nèi)存.

    2.3.2 PSW算法

    本文對串行SW算法進(jìn)行了改進(jìn),所提出的PSW算法采用基于分治策略的Fork/Join并行技術(shù),能夠并行地劃定Di上的子伴隨數(shù)據(jù)集Si,以解決串行SW算法對事務(wù)日志這種大規(guī)模的歷史靜態(tài)數(shù)據(jù)處理效率低的問題.

    在執(zhí)行PSW算法前,本文需要先對事務(wù)日志數(shù)據(jù)庫進(jìn)行劃分,得到n個(gè)具有一定規(guī)模的子數(shù)據(jù)庫Di.然而,將事務(wù)日志數(shù)據(jù)庫劃分為若干個(gè)不相交的子數(shù)據(jù)庫,可能會(huì)造成各子數(shù)據(jù)庫失去與其相鄰子數(shù)據(jù)庫的聯(lián)系,從而使計(jì)算結(jié)果與不采用數(shù)據(jù)庫劃分的串行SW算法不同.因此,本文在子數(shù)據(jù)庫最后一條事務(wù)日志記錄的時(shí)間上,額外增加時(shí)間長度為最大時(shí)間閾值的數(shù)據(jù),從而為每個(gè)子數(shù)據(jù)庫增加了冗余數(shù)據(jù)空間,以保留不同子數(shù)據(jù)庫之間的關(guān)聯(lián)性[21].

    PSW算法具體流程如下:

    1)首先遍歷D中的Di,利用哈希映射(HashMap)中鍵的唯一性,將出現(xiàn)在相同地點(diǎn)的事務(wù)日志記錄分為一組,從而減少程序的冗余計(jì)算.本文將Di的分組數(shù)據(jù)稱為dMap,其鍵值對(key-value)中的key存儲(chǔ)地點(diǎn),value存儲(chǔ)所有出現(xiàn)在該地點(diǎn)的事務(wù)日志記錄.

    2)然后,本文采用滑動(dòng)窗口處理dMap,在每個(gè)基本窗口SWd中,判斷位于隊(duì)首的事務(wù)日志記錄與隊(duì)列中其他記錄是否滿足時(shí)間差TD小于等于λ的條件,同時(shí)判斷兩者的對象是否相同.若TD=|t1-ts|≤λ且o1≠os,則根據(jù)式(4)將這些事務(wù)日志記錄轉(zhuǎn)換為一個(gè)項(xiàng)集ISd;若TD=|t1-ts|>λ且o1≠os,則中斷后續(xù)判斷,因?yàn)殛?duì)列中的記錄是按照時(shí)間順序排列的,顯然隊(duì)列中剩余的記錄均不滿足TD≤λ的條件.

    3)最后,為避免當(dāng)前窗口SWd產(chǎn)生的ISd是上一個(gè)窗口SWd -1產(chǎn)生的ISd-1的子集,算法需要判斷ISd-1是否包含ISd,以及ISd包含項(xiàng)的個(gè)數(shù)r是否大于1.若ISd?ISd-1且r>1,則將ISd存入子伴隨數(shù)據(jù)集Si中.

    基于Java編程語言實(shí)現(xiàn)的 PSW算法流程如算法1所示.

    算法1.PSW算法

    輸入:數(shù)據(jù)數(shù)據(jù)庫D,滑動(dòng)窗口寬度w,最大時(shí)間閾值λ

    輸出:伴隨數(shù)據(jù)集S

    1.for eachDiinD//開啟多線程并行計(jì)算

    2. 初始化Si

    3.dMap=groupByPlace(Di)//根據(jù)地點(diǎn)對Di中的數(shù)據(jù)進(jìn)行分組

    4. for eachdListindMap.values()

    5.start=0,end=dList.size(),初始tempSWList//tempSWList存儲(chǔ)項(xiàng)集ISd-1

    6. while(start!=end)

    7. 初始化SWList//SWList存儲(chǔ)項(xiàng)集ISd

    8.SWList.add(dList.get(start).getPlace()+dList.get(start).getObject())

    9. for(right=start+1;right

    10.TD=dList.get(right).getTD(dList.get(start))//TD表示兩條記錄間的時(shí)間差

    11. if(TD≤λ)

    12.SWList.add(dList.get(right).getPlace()+dList.get(right).getObject())

    13. else

    14. break

    15. if(SWList.size()>1&&tempSWList.containsAll(SWList))

    16.Si.add(SWList)

    17.tempSWList=SWList

    18.start++,w++

    19.S.add(Si)

    20.returnS

    在算法1中,第1行開啟基于Fork/Join框架的多線程并行計(jì)算,并行地對每個(gè)Di劃定伴隨數(shù)據(jù)集;groupByPlace()函數(shù)用于根據(jù)地點(diǎn)對Di進(jìn)行分組,并將分組數(shù)據(jù)存入dMap中;getPlace()和getObject()方法用于獲取當(dāng)前記錄的地點(diǎn)和對象.

    對于參數(shù)w的確定,可采用簡單的搜索法,先從一個(gè)較小的w(例如w=2)開始執(zhí)行PSW算法,然后逐漸增大w,記錄S的變化,直到S的大小不再改變,此時(shí)的w為最佳的w.因?yàn)檫@個(gè)w能夠使滑動(dòng)窗口包含較少數(shù)量的事務(wù)日志記錄,同時(shí)使滑動(dòng)窗口劃定出的S盡可能大.至于參數(shù)λ,需要用戶根據(jù)業(yè)務(wù)需求自行確定,一般在1~5min的范圍內(nèi).

    為了更好地描述PSW算法,本文以圖1中劃定伴隨數(shù)據(jù)集部分為實(shí)例來說明該算法.在該實(shí)例中,w=5,λ=5min.由于Di中所有記錄的地點(diǎn)均為La,本文省略了PSW算法中分組的步驟.已知SW1={x1,x2,x3,x4,x5},雖然x1,x2,x3,x4,x5所記錄的對象各不相同,但只有x1與x2、x1與x3滿足TD≤5min的條件.因此,根據(jù)式(4)得到SW1產(chǎn)生的項(xiàng)集IS1={LaΛOa,LaΛOb,LaΛOc}.同理,可得到SW2產(chǎn)生的IS2={LaΛOb,LaΛOc},SW3產(chǎn)生的IS3={LaΛOc,LaΛOd,LaΛOe}.最后,由于IS2?IS3而IS2?IS1,Si只存儲(chǔ)了IS1和IS3.

    2.4 頻繁項(xiàng)集挖掘

    頻繁項(xiàng)集挖掘是指在伴隨數(shù)據(jù)集中尋找滿足最小支持度閾值的所有項(xiàng)集,目的是發(fā)現(xiàn)在給定時(shí)間段內(nèi)頻繁的共同出現(xiàn)在同一地點(diǎn)的對象.

    2.4.1 傳統(tǒng)FP-Growth算法

    目前常用的關(guān)聯(lián)規(guī)則算法有Apriori[22]和FP-Growth[23]算法.Apriori算法需要多次掃描事務(wù)集,利用候選頻繁項(xiàng)集來產(chǎn)生頻繁項(xiàng)集,具有I/O負(fù)載較高和算法效率較低的缺點(diǎn).FP-Growth算法只需要掃描事務(wù)集兩次,通過樹形結(jié)構(gòu)產(chǎn)生頻繁項(xiàng)集,與Apriori算法相比,能夠提高挖掘頻繁項(xiàng)集的效率.

    傳統(tǒng)FP-Growth算法挖掘頻繁項(xiàng)集的方法為掃描伴隨數(shù)據(jù)集,獲得每個(gè)項(xiàng)的頻次,去除不滿足最小支持度的項(xiàng),將剩余項(xiàng)存入項(xiàng)頭表,并按照支持度的大小將各項(xiàng)按照降序排列(次序記為Seq);然后再次掃描伴隨數(shù)據(jù)集,按次序Seq組成相應(yīng)的項(xiàng)集以將其插入到FP樹中,并構(gòu)建節(jié)點(diǎn)鏈表以連接項(xiàng)頭表與FP樹;最后,對每一個(gè)頻繁項(xiàng)目對應(yīng)的條件模式基進(jìn)行挖掘,從而得到所有能夠滿足最小支持度約束的頻繁k-項(xiàng)集[24].其流程如圖1中頻繁項(xiàng)集挖掘部分所示.

    然而,當(dāng)對大型的伴隨數(shù)據(jù)集進(jìn)行挖掘時(shí),FP-Growth算法會(huì)顯著增加時(shí)間和空間的消耗,甚至還有可能使內(nèi)存無法完全容納一個(gè)完整的FP樹.另外,當(dāng)設(shè)定較小的支持度閾值時(shí),即使數(shù)據(jù)庫規(guī)模不大,FP-Growth算法仍需要遞歸地產(chǎn)生大量的條件FP樹,使得算法運(yùn)行速度較慢,占用內(nèi)存較大.

    2.4.2 PFP-Growth算法

    文獻(xiàn)[25]從理論上證明,對每個(gè)子事務(wù)數(shù)據(jù)庫構(gòu)造FP樹,再通過合并局部頻繁項(xiàng)集,能夠得到全局頻繁項(xiàng)集.基于此,本文采用基于Fork/Join框架的PFP-Growth算法,以解決當(dāng)事務(wù)數(shù)據(jù)庫規(guī)模較大或支持度閾值較小時(shí),傳統(tǒng)的串行FP-Growth算法時(shí)空效率不高的問題.

    PFP-Growth算法具體流程如下:

    1)首先通過式(10)計(jì)算出子伴隨數(shù)據(jù)集Si上的局部的絕對最小支持度minSupi.

    (10)

    式中,minSup表示伴隨數(shù)據(jù)集S上的全局的絕對最小支持度;符號‖·‖用于獲取相應(yīng)數(shù)據(jù)集中含有的項(xiàng)集總數(shù).

    2)在求取minSupi后,PFP-Growth算法開始在各個(gè)Si上構(gòu)造FP樹,以挖掘出子局部頻繁項(xiàng)集Ti.然后,算法開始遍歷Ti中的頻繁項(xiàng)集IS,并判斷全局頻繁項(xiàng)集Tglobal中是否已經(jīng)存在與IS相同的頻繁項(xiàng)集ISexist,若存在,則更新ISexist的支持度(ISexist在S中出現(xiàn)的頻次),ISexist更新后的支持度等于ISexist未更新前的支持度與IS的支持度(IS在Si中出現(xiàn)的頻次)相加;若不存在,則將IS存入Tglobal中,同時(shí)記錄IS的支持度.

    3)當(dāng)并行計(jì)算完成后,PFP-Growth算法需要遍歷Tglobal中的項(xiàng)集ISglobal,若ISglobal的支持度低于全局的絕對最小支持度,即support(ISglobal)

    基于 Java編程語言實(shí)現(xiàn)的PFP-Growth算法流程如算法2所示.

    算法2.PFP-Growth算法

    輸入:伴隨數(shù)據(jù)集S,最小支持度minSup

    輸出:全局頻繁項(xiàng)集Tglobal

    1.for eachSiinS//開啟多線程并行計(jì)算

    2. 根據(jù)式(10)計(jì)算出minSupi

    3.Ti=FP_Growth(Si,minSupi)

    4. for eachISinTi

    5.countIS=Ti.get(IS)//countIS表示IS的支持度

    6. if(Tglobal.hasExist(IS)==false)

    7.Tglobal.put(IS,countIS)//將IS與countIS存入Tglobal的鍵值對中

    8. else

    9.countIS=countIS+Tglobal.get(IS)

    10.Tglobal.put(IS,countIS)

    11.for eachISglobalinTglobal

    12. if(Tglobal.get(ISglobal)

    13.Tglobal.remove(ISglobal)

    14.returnTglobal

    算法從第1行到第10行利用Fork/Join技術(shù)并行地對每個(gè)Si進(jìn)行頻繁項(xiàng)集挖掘.其中FP_Growth(Si,minSupi)函數(shù)表示根據(jù)minSupi,對Si調(diào)用FP-Growth算法;Ti和Tglobal采用Hash結(jié)構(gòu)存儲(chǔ),兩者的鍵值對相同,key用于存儲(chǔ)頻繁項(xiàng)集,value用于存儲(chǔ)頻繁項(xiàng)集的支持度;Tglobal.hasExist(IS)用于判斷Tglobal中是否已經(jīng)存在與IS相同的項(xiàng)集.

    2.5 關(guān)聯(lián)規(guī)則挖掘

    關(guān)聯(lián)規(guī)則是一個(gè)非監(jiān)督的學(xué)習(xí)過程,數(shù)據(jù)并不被特別標(biāo)識,學(xué)習(xí)模型是為了推斷出數(shù)據(jù)的一些內(nèi)在結(jié)構(gòu).對于關(guān)聯(lián)規(guī)則而言,判斷其產(chǎn)生的規(guī)則是否有效,一般看它的支持度、置信度是否滿足最小支持度、最小置信度閾值,如果大于閾值則為有用的、正確的規(guī)則,否則為無用的規(guī)則.除支持度和置信度指標(biāo)之外,為去除具有誤導(dǎo)性的冗余規(guī)則,本文引入提升度來描述規(guī)則的相關(guān)性,以有效發(fā)現(xiàn)伴隨式所蘊(yùn)含的內(nèi)在規(guī)律,提煉對象之間的內(nèi)在聯(lián)系.

    2.5.1 支持度指標(biāo)

    支持度表示項(xiàng)集在伴隨數(shù)據(jù)集中的頻繁程度,關(guān)聯(lián)規(guī)則A?B的支持度定義為:

    (11)

    式中,count(A∪B)表示由A與B組成的項(xiàng)集在伴隨數(shù)據(jù)集中出現(xiàn)的頻次.值得一提的是,關(guān)聯(lián)規(guī)則中的支持度是指相對支持度而非絕對支持度,相對支持度表示絕對支持度與伴隨數(shù)據(jù)集中項(xiàng)集總數(shù)的比值,絕對支持度表示項(xiàng)集在伴隨數(shù)據(jù)集中出現(xiàn)的頻次.

    2.5.2 置信度指標(biāo)

    置信度表示出現(xiàn)規(guī)則前件后再出現(xiàn)規(guī)則后件的條件概率,關(guān)聯(lián)規(guī)則A?B的置信度定義為:

    (12)

    式中,count(A)表示A在伴隨數(shù)據(jù)集中出現(xiàn)的頻次.置信度越大說明出現(xiàn)A后再出現(xiàn)B的可能性越大.

    2.5.3 提升度指標(biāo)

    提升度表示先出現(xiàn)規(guī)則前件對出現(xiàn)規(guī)則后件的概率的提升作用,關(guān)聯(lián)規(guī)則A?B的提升度定義為:

    (13)

    其中,如果lift>1,表示A和B為正相關(guān)性;如果lift=1,表示A與B無相關(guān)性;如果lift<1,表示A和B為負(fù)相關(guān)性.

    2.5.4 產(chǎn)生規(guī)則

    本文將Tglobal中所有的頻繁k-項(xiàng)集(k=2,3,…)分解成由子項(xiàng)集組成的前件和后件.然后根據(jù)式(11)、式(12)、式(13)計(jì)算由前件和后件組成的規(guī)則的支持度、置信度、提升度.若規(guī)則滿足支持度閾值、置信度閾值、提升度閾值,則按文獻(xiàn)[26]提出的用于關(guān)聯(lián)規(guī)則可視化的數(shù)據(jù)結(jié)構(gòu),將規(guī)則存入關(guān)聯(lián)規(guī)則集V中,V可表示為:

    V={{A1,B1,θ1},{A2,B2,θ2},…,{Az,Bz,θz}}

    (14)

    式中θ表示規(guī)則的度量(例如規(guī)則的支持度、置信度、提升度),z表示規(guī)則的總數(shù).

    基于Java編程語言實(shí)現(xiàn)的產(chǎn)生規(guī)則的算法流程如算法3所示.

    算法3.產(chǎn)生規(guī)則的算法

    輸入:支持度閾值minSupport,置信度閾值minConfidence,提升度閾值minLift,全局頻繁項(xiàng)集Tglobal

    輸出:關(guān)聯(lián)規(guī)則集V

    1.for eachISinTglobal

    2. if(IS.size()>1)//如果IS的項(xiàng)數(shù)大于1

    3.countA∪B=Tglobal.get(IS)

    4. for(i=1;i

    5.combination=getCombi(IS,i)

    6. for eachAincombination

    7.B=getleft(IS,A)

    8.countA=Tglobal.get(A)

    9. 根據(jù)式(11)計(jì)算規(guī)則的支持度

    10. 根據(jù)式(12)計(jì)算規(guī)則的置信度

    11. 根據(jù)式(13)計(jì)算規(guī)則的提升度

    12. if(support>=minSupport&& confidence>=minConfiedence&& lift>=minLift)

    13.V.add(A,B,support,confidence,lift)

    14.returnV

    算法中g(shù)etCombi(IS,i)函數(shù)用于從IS中獲取所有項(xiàng)數(shù)為i的子項(xiàng)集組合;getleft(IS,A)函數(shù)表示排除IS中的A后,所留下的子項(xiàng)集.關(guān)于生成規(guī)則的參數(shù)一般可以通過經(jīng)驗(yàn)與用戶的業(yè)務(wù)需求來確定,還可通過關(guān)聯(lián)規(guī)則的可視化結(jié)果來確定.

    3 實(shí)驗(yàn)研究

    3.1 實(shí)驗(yàn)配置

    本文基于某城市某社區(qū)門禁刷卡數(shù)據(jù)進(jìn)行實(shí)驗(yàn),以2020年4月-9月全天采集到的門禁刷卡數(shù)據(jù)作為數(shù)據(jù)集,數(shù)據(jù)集共包含12萬余條事務(wù)日志記錄,涉及930位對象,14個(gè)地點(diǎn),實(shí)驗(yàn)前已對數(shù)據(jù)進(jìn)行了清洗和隱私處理.實(shí)驗(yàn)在單臺(tái)計(jì)算機(jī)上進(jìn)行,處理器為Intel Core i7-6700 3.40GHz(4核8線程),內(nèi)存大小為8GB,操作系統(tǒng)為64位Windows10,JDK版本為1.8,采用MySQL數(shù)據(jù)庫存儲(chǔ)事務(wù)日志記錄.

    3.2 實(shí)驗(yàn)內(nèi)容和結(jié)果分析

    3.2.1 數(shù)據(jù)規(guī)模和并行度對算法性能的影響

    本文利用Fork/Join技術(shù)對基于密度的DBSCAN算法[27]、時(shí)間切片[12]、Apriori進(jìn)行了并行化改造,并將改進(jìn)算法分別命名為PDBSCAN(parallel DBSCAN)、PTS(parallel time slice)和PApriori(parallel Apriori).

    為了驗(yàn)證本文所提出算法的時(shí)間復(fù)雜度,本文在不同數(shù)據(jù)規(guī)模下,使用PDBSCAN、PTS、PSW算法對事務(wù)日志數(shù)據(jù)進(jìn)行劃定伴隨數(shù)據(jù)集實(shí)驗(yàn),以及采用PApriori算法、PFP-Growth算法對伴隨數(shù)據(jù)集進(jìn)行頻繁項(xiàng)集挖掘?qū)嶒?yàn),實(shí)驗(yàn)結(jié)果如圖3所示.在未標(biāo)明參數(shù)的情況下,默認(rèn)各算法的參數(shù)如表1所示.本文使用時(shí)間差來度量PDBSCAN算法中兩個(gè)對象之間的距離(相似性),因此表中PDBSCAN算法的鄰域半徑單位為分鐘.

    表1 各算法的參數(shù)設(shè)置Table 1 Parameter setting of each algorithm

    從圖3可知,PDBSCAN算法的運(yùn)行時(shí)間高于其他算法,這是因?yàn)镻DBSCAN算法在聚類過程中需要訪問原始數(shù)據(jù)中的所有對象,并且有些對象可能需要重復(fù)訪問多次,導(dǎo)致算法的計(jì)算量較大.其中當(dāng)事務(wù)日志記錄數(shù)為107186條時(shí),PSW算法比PDBSCAN算法節(jié)省了35.5%的時(shí)間,與PTS算法相比兩者運(yùn)算時(shí)間較為接近.因此PSW算法適合處理海量的事務(wù)日志數(shù)據(jù).

    從圖3還可發(fā)現(xiàn),PApriori算法的運(yùn)行時(shí)間遠(yuǎn)高于PFP-Growth算法,這是因?yàn)樵陬l繁k-1-項(xiàng)集生成候選頻繁k-項(xiàng)集時(shí),需要進(jìn)行連接與剪枝操作,以及在驗(yàn)證候選頻繁k-項(xiàng)集時(shí),需要對整個(gè)事務(wù)數(shù)據(jù)庫進(jìn)行掃描,增加了算法的計(jì)算量和運(yùn)行時(shí)間.其中當(dāng)事務(wù)日志記錄數(shù)為107186條時(shí),PFP-Growth算法比PApriori算法節(jié)省了98.9%的時(shí)間.

    圖3 不同數(shù)據(jù)集下的算法運(yùn)行時(shí)間Fig.3 Algorithm executing time under different data sizes

    綜上所述,相較于傳統(tǒng)算法,本文所提出的融合了數(shù)據(jù)庫劃分和Fork/Join并行計(jì)算技術(shù)的伴隨模式挖掘框架能夠有效減少算法的計(jì)算量,提高挖掘伴隨模式的運(yùn)行效率.

    為了探究并行度對本文所提出算法的影響,本文對算法在同一臺(tái)計(jì)算機(jī)上的CPU可運(yùn)行線程數(shù)進(jìn)行了限制,以測試在同一記錄數(shù)(記錄數(shù)為107186條)、不同并行度下算法運(yùn)行時(shí)間,實(shí)驗(yàn)結(jié)果如圖4所示.由圖4可知,隨著線程數(shù)的增加,PSW算法、PFP-Growth算法的運(yùn)行時(shí)間均不斷降低.因此對于計(jì)算規(guī)模較大的任務(wù),較多的可運(yùn)行線程數(shù)將可以更加顯著地提高本文所提出的改進(jìn)算法的效率.

    圖4 不同并行度下的算法運(yùn)行時(shí)間Fig.4 Algorithm executing time under different parallelism degrees

    3.2.2 最大時(shí)間閾值和支持度對算法性能的影響

    本文通過調(diào)整最大時(shí)間閾值和全局最小支持度這兩個(gè)參數(shù),使算法能夠發(fā)現(xiàn)不同時(shí)間段內(nèi)共同出現(xiàn)在同一地點(diǎn)的對象,以及不同頻繁程度的伴隨模式,從而提高伴隨模式挖掘的靈活性.

    如表2和圖5所示,本文統(tǒng)計(jì)了不同最大時(shí)間閾值對PDBSCAN、PTS、PSW算法運(yùn)行時(shí)間,以及伴隨數(shù)據(jù)集劃定結(jié)果的影響,其中實(shí)驗(yàn)的事務(wù)日志記錄數(shù)為107186條.由表2和圖5可知,隨著最大時(shí)間閾值的增加,所有算法生成伴隨數(shù)據(jù)集的數(shù)量均不斷增加,這是因?yàn)樵谳^大的時(shí)間段內(nèi)可能會(huì)有更多的對象出現(xiàn)在同一地點(diǎn),增加了算法所挖掘出伴隨數(shù)據(jù)集的數(shù)量.此外,在PDBSCAN算法中可能會(huì)存在類內(nèi)第一個(gè)對象與最后一個(gè)對象間時(shí)間差大于最大時(shí)間閾值λ的情況,使得PDBSCAN算法產(chǎn)生的伴隨數(shù)據(jù)集的數(shù)量較小,這是因?yàn)榈谝粋€(gè)對象和最后一個(gè)對象不滿足直接密度可達(dá)的條件.雖然PTS算法均滿足切片內(nèi)第一個(gè)對象與最后一個(gè)對象間時(shí)間差不大于λ,但是出現(xiàn)在某時(shí)某地的對象只能屬于一個(gè)切片,無法同PSW算法一樣,可以屬于不同的滑動(dòng)窗口,因此時(shí)間切片產(chǎn)生的伴隨數(shù)據(jù)集的數(shù)量不及PSW算法.可見PSW算法能夠更加充分地挖掘出伴隨數(shù)據(jù)集,并縮短所需的挖掘時(shí)間.

    表2 不同最大時(shí)間閾值對算法運(yùn)行時(shí)間的影響Table 2 Effects of different time thresholds on the algorithm executing time

    圖5 不同最大時(shí)間閾值對伴隨數(shù)據(jù)集的影響Fig.5 Effects of different time thresholds on the CP dataset

    如表3和圖6所示,本文統(tǒng)計(jì)了不同全局最小支持度對PApriori算法、PFP-Growth算法的運(yùn)行時(shí)間和頻繁項(xiàng)集挖掘結(jié)果的影響,其中輸入數(shù)據(jù)為圖5中PSW算法在最大時(shí)間閾值為5min時(shí)生成的伴隨數(shù)據(jù)集.由表3和圖6可知,當(dāng)全局最小支持度不斷增加時(shí),各算法的運(yùn)行時(shí)間和頻繁項(xiàng)集的大小不斷減少,這是因?yàn)轭l繁程度高的伴隨模式比頻繁程度低的伴隨模式更少,造成運(yùn)行時(shí)間和頻繁項(xiàng)集大小減少.此外,在相同的全局最小支持度下,PFP-Growth算法生成頻繁項(xiàng)集的大小不僅與PApriori算法相同,而且運(yùn)行時(shí)間更少.

    圖6 不同全局最小支持度對頻繁項(xiàng)集的影響Fig.6 Effects of different global support on the frequent itemsets

    表3 不同全局最小支持度對算法運(yùn)行時(shí)間的影響Table 3 Effects of different global support on the algorithm executing time

    3.3 關(guān)聯(lián)規(guī)則可視化展示

    為了幫助用戶直觀地從大量規(guī)則中篩選出有效的強(qiáng)關(guān)聯(lián)規(guī)則,并分析出項(xiàng)與項(xiàng)之間的關(guān)聯(lián)關(guān)系,本文利用SpringBoot技術(shù)設(shè)計(jì)了一個(gè)基于HTML與Echarts的動(dòng)態(tài)數(shù)據(jù)顯示前端,使其成為關(guān)聯(lián)規(guī)則挖掘結(jié)果可視化的承載體,關(guān)聯(lián)規(guī)則的散點(diǎn)圖和網(wǎng)圖如圖7和圖8所示.實(shí)驗(yàn)中規(guī)則的支持度閾值設(shè)置為0.0001,置信度閾值設(shè)置為30%,提升度閾值設(shè)置為10,共生成502條規(guī)則.支持度閾值很小的原因是本文頻繁項(xiàng)集在伴隨數(shù)據(jù)集中出現(xiàn)的頻次一般很小.

    在圖7中,x軸表示置信度,y軸表示支持度,點(diǎn)的明暗表示規(guī)則的支持度計(jì)數(shù),點(diǎn)的大小表示提升度.由圖7可以看出所有規(guī)則在散點(diǎn)圖中的分布,其中支持度和置信度較低,而提升度較高的規(guī)則集中于散點(diǎn)圖的底部,這有助于用戶調(diào)整支持度閾值、置信度閾值和提升度閾值,以篩選出相關(guān)性更高的規(guī)則.

    圖7 關(guān)聯(lián)規(guī)則的散點(diǎn)圖Fig.7 Scatterplot of association rules

    圖8只截取了關(guān)聯(lián)規(guī)則可視化網(wǎng)圖的一部分,沒有包含所有的關(guān)聯(lián)規(guī)則.圖中圓點(diǎn)表示項(xiàng),較大的圓形表示規(guī)則,圓形的大小表示規(guī)則的支持度計(jì)數(shù),箭頭表示規(guī)則內(nèi)部項(xiàng)與項(xiàng)的關(guān)系.從圖8可以看出不同規(guī)則之間如何共享一個(gè)前件,并可發(fā)現(xiàn)哪個(gè)前件是網(wǎng)圖的中心,這有利于用戶直觀地發(fā)現(xiàn)規(guī)則中項(xiàng)與項(xiàng)之間一對一、一對多、多對多的關(guān)系.

    圖8 關(guān)聯(lián)規(guī)則的網(wǎng)圖Fig.8 Network diagram of association rules

    4 總 結(jié)

    隨著事務(wù)日志的數(shù)據(jù)規(guī)模不斷擴(kuò)大,傳統(tǒng)基于滑動(dòng)窗口的伴隨數(shù)據(jù)集劃定方法,以及傳統(tǒng)FP-Growth算法,無法充分利用計(jì)算機(jī)的多核性能,導(dǎo)致挖掘伴隨模式的時(shí)間急劇增加,為此本文提出基于Fork/Join并行技術(shù)的伴隨模式挖掘框架.該框架包括劃定伴隨數(shù)據(jù)集、頻繁項(xiàng)集挖掘和關(guān)聯(lián)規(guī)則挖掘3部分.首先,本文提出了基于Fork/Join的PSW算法,以并行地從事務(wù)日志數(shù)據(jù)庫中劃定伴隨數(shù)據(jù)集;然后,本文提出了PFP-Growth算法,以并行地在伴隨數(shù)據(jù)集上構(gòu)造FP樹,縮短挖掘頻繁項(xiàng)集的時(shí)間;最后,本文利用支持度、置信度和提升度來挖掘伴隨模式中的關(guān)聯(lián)規(guī)則,以進(jìn)一步分析對象間的關(guān)聯(lián)關(guān)系和規(guī)律性.基于門禁刷卡數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,相比傳統(tǒng)算法,本文所提出的框架能夠挖掘出更多的伴隨模式,同時(shí)挖掘效率較高.

    本文所提出的伴隨模式挖掘框架目前僅適用于靜態(tài)歷史的事務(wù)日志數(shù)據(jù).下一步本文將研究如何實(shí)時(shí)地從事務(wù)日志數(shù)據(jù)流中挖掘伴隨模式,擬利用分布式計(jì)算框架對數(shù)據(jù)流進(jìn)行切片,并改進(jìn)滑動(dòng)窗口和關(guān)聯(lián)規(guī)則算法,以滿足實(shí)時(shí)挖掘伴隨模式的需求.

    猜你喜歡
    項(xiàng)集事務(wù)日志
    “事物”與“事務(wù)”
    基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    一名老黨員的工作日志
    扶貧日志
    心聲歌刊(2020年4期)2020-09-07 06:37:14
    河湖事務(wù)
    游學(xué)日志
    關(guān)聯(lián)規(guī)則中經(jīng)典的Apriori算法研究
    卷宗(2014年5期)2014-07-15 07:47:08
    一種頻繁核心項(xiàng)集的快速挖掘算法
    一種基于粗集和SVM的Web日志挖掘模型
    SQLServer自治事務(wù)實(shí)現(xiàn)方案探析
    欧美最新免费一区二区三区| 99久国产av精品国产电影| 国产精品秋霞免费鲁丝片| 国产又爽黄色视频| 黄色视频在线播放观看不卡| 国产视频首页在线观看| 亚洲天堂av无毛| 亚洲人成77777在线视频| 国产亚洲av高清不卡| 中文字幕av电影在线播放| 男人操女人黄网站| 亚洲男人天堂网一区| 国产一区二区三区av在线| 国产午夜精品一二区理论片| 日本欧美国产在线视频| 中国三级夫妇交换| 国产成人精品无人区| 久久精品人人爽人人爽视色| 天天躁狠狠躁夜夜躁狠狠躁| 另类精品久久| 男人爽女人下面视频在线观看| svipshipincom国产片| 最黄视频免费看| 制服诱惑二区| 天天操日日干夜夜撸| 国产精品国产av在线观看| 国产日韩欧美视频二区| 中文字幕最新亚洲高清| 亚洲国产欧美在线一区| 七月丁香在线播放| 国产有黄有色有爽视频| 中文字幕亚洲精品专区| 天美传媒精品一区二区| 亚洲av电影在线观看一区二区三区| 在线天堂中文资源库| 婷婷成人精品国产| 日本av手机在线免费观看| 午夜日本视频在线| 亚洲精品一二三| 一区二区三区激情视频| 欧美久久黑人一区二区| 日本av免费视频播放| 热99久久久久精品小说推荐| 国产亚洲av高清不卡| 精品第一国产精品| 国产精品成人在线| 久久鲁丝午夜福利片| 黄色视频在线播放观看不卡| 国产成人啪精品午夜网站| 国产女主播在线喷水免费视频网站| 欧美97在线视频| 国产精品99久久99久久久不卡 | 久久久精品国产亚洲av高清涩受| 亚洲国产日韩一区二区| 国产精品蜜桃在线观看| 啦啦啦中文免费视频观看日本| av福利片在线| 国产精品一区二区在线观看99| 日日啪夜夜爽| 热99国产精品久久久久久7| 又粗又硬又长又爽又黄的视频| 国产精品一区二区在线观看99| 另类亚洲欧美激情| 国产精品一二三区在线看| 精品少妇久久久久久888优播| 又大又黄又爽视频免费| 国产高清不卡午夜福利| 天天躁狠狠躁夜夜躁狠狠躁| 国产 精品1| 国产精品久久久久成人av| 精品国产乱码久久久久久小说| 国产欧美亚洲国产| 老司机在亚洲福利影院| svipshipincom国产片| 成人手机av| 伦理电影大哥的女人| videos熟女内射| 美女福利国产在线| 中文字幕色久视频| a级毛片在线看网站| 欧美av亚洲av综合av国产av | 欧美97在线视频| 亚洲欧美日韩另类电影网站| 亚洲欧美成人综合另类久久久| 国产亚洲精品第一综合不卡| 一二三四在线观看免费中文在| 亚洲自偷自拍图片 自拍| 久久久国产一区二区| 日韩不卡一区二区三区视频在线| 欧美日韩成人在线一区二区| 亚洲国产精品一区二区三区在线| 久久精品人人爽人人爽视色| 男女床上黄色一级片免费看| 日韩欧美一区视频在线观看| 少妇精品久久久久久久| 韩国精品一区二区三区| 另类精品久久| 亚洲精品成人av观看孕妇| 久久久久网色| 亚洲综合精品二区| 黄色毛片三级朝国网站| 黄片播放在线免费| 男女高潮啪啪啪动态图| av又黄又爽大尺度在线免费看| 久久这里只有精品19| 国产精品一国产av| 超色免费av| 久久精品国产亚洲av涩爱| 黄色视频在线播放观看不卡| 国精品久久久久久国模美| 人人妻人人澡人人爽人人夜夜| 麻豆乱淫一区二区| 精品午夜福利在线看| 精品酒店卫生间| 日韩中文字幕欧美一区二区 | 欧美黑人欧美精品刺激| 亚洲国产精品成人久久小说| 国产成人免费观看mmmm| 女性生殖器流出的白浆| 黄色 视频免费看| 一级毛片电影观看| 狠狠婷婷综合久久久久久88av| 久久久久久人人人人人| 国产一区二区 视频在线| 日本av免费视频播放| 欧美亚洲 丝袜 人妻 在线| 日韩人妻精品一区2区三区| 亚洲欧美一区二区三区黑人| 丝袜美腿诱惑在线| 久久久久久久久久久免费av| 黄色视频不卡| 不卡视频在线观看欧美| 亚洲成av片中文字幕在线观看| 欧美激情 高清一区二区三区| avwww免费| 精品一品国产午夜福利视频| 欧美在线黄色| 国产免费又黄又爽又色| 亚洲成人免费av在线播放| av线在线观看网站| 狠狠精品人妻久久久久久综合| 蜜桃国产av成人99| 久久久精品区二区三区| 精品少妇一区二区三区视频日本电影 | 精品一区二区免费观看| 午夜老司机福利片| 国产欧美日韩综合在线一区二区| av免费观看日本| 又粗又硬又长又爽又黄的视频| 大片电影免费在线观看免费| 日日撸夜夜添| 桃花免费在线播放| 国产成人91sexporn| 丰满迷人的少妇在线观看| 黑人欧美特级aaaaaa片| 久久影院123| 欧美精品av麻豆av| av一本久久久久| 中文字幕最新亚洲高清| av天堂久久9| 久久热在线av| 色视频在线一区二区三区| 黄色怎么调成土黄色| 国产av国产精品国产| av国产精品久久久久影院| 最近中文字幕高清免费大全6| 免费观看性生交大片5| 校园人妻丝袜中文字幕| 久久99热这里只频精品6学生| 久久青草综合色| 丁香六月欧美| 午夜日韩欧美国产| 精品久久久精品久久久| 又黄又粗又硬又大视频| 国产精品熟女久久久久浪| 久久久久精品性色| 9热在线视频观看99| 少妇 在线观看| 一边摸一边做爽爽视频免费| 最近的中文字幕免费完整| 国产亚洲av高清不卡| 亚洲成人一二三区av| 三上悠亚av全集在线观看| 久久久久久人人人人人| 黑人巨大精品欧美一区二区蜜桃| 涩涩av久久男人的天堂| 国产xxxxx性猛交| 考比视频在线观看| 宅男免费午夜| 久久久久精品人妻al黑| 久久久国产精品麻豆| 国产免费现黄频在线看| 在线精品无人区一区二区三| 十八禁网站网址无遮挡| 新久久久久国产一级毛片| 亚洲成人免费av在线播放| 国产精品香港三级国产av潘金莲 | 美女午夜性视频免费| 国产淫语在线视频| 两个人免费观看高清视频| 亚洲男人天堂网一区| 国产精品.久久久| 在线天堂中文资源库| 久久国产精品大桥未久av| 亚洲国产精品一区二区三区在线| 亚洲精品视频女| 日本午夜av视频| 亚洲免费av在线视频| 熟女少妇亚洲综合色aaa.| 亚洲精品国产色婷婷电影| 最近中文字幕高清免费大全6| 好男人视频免费观看在线| 在现免费观看毛片| 麻豆乱淫一区二区| 三上悠亚av全集在线观看| 丝袜喷水一区| 少妇被粗大的猛进出69影院| 高清视频免费观看一区二区| 亚洲av日韩精品久久久久久密 | 韩国精品一区二区三区| 日本欧美视频一区| 国产一卡二卡三卡精品 | 亚洲精品视频女| 少妇被粗大猛烈的视频| 亚洲av男天堂| www.精华液| 午夜免费鲁丝| 亚洲综合精品二区| 少妇人妻精品综合一区二区| 国产精品蜜桃在线观看| 午夜影院在线不卡| 亚洲国产精品999| 色网站视频免费| 久久天躁狠狠躁夜夜2o2o | 免费人妻精品一区二区三区视频| 午夜老司机福利片| √禁漫天堂资源中文www| 亚洲,一卡二卡三卡| 亚洲自偷自拍图片 自拍| 建设人人有责人人尽责人人享有的| 999久久久国产精品视频| 亚洲国产看品久久| 国产探花极品一区二区| 叶爱在线成人免费视频播放| 这个男人来自地球电影免费观看 | 建设人人有责人人尽责人人享有的| 嫩草影视91久久| 成人午夜精彩视频在线观看| 五月开心婷婷网| 91国产中文字幕| 午夜老司机福利片| 国产精品三级大全| 亚洲色图综合在线观看| 女性被躁到高潮视频| 黄网站色视频无遮挡免费观看| 免费黄网站久久成人精品| 日韩精品免费视频一区二区三区| 不卡视频在线观看欧美| 国产免费福利视频在线观看| 香蕉国产在线看| 精品午夜福利在线看| 久久精品久久精品一区二区三区| 99久久99久久久精品蜜桃| 在线免费观看不下载黄p国产| 成年av动漫网址| 80岁老熟妇乱子伦牲交| 久久女婷五月综合色啪小说| 久久久亚洲精品成人影院| 波多野结衣一区麻豆| 色吧在线观看| 久久ye,这里只有精品| 精品国产国语对白av| 国产日韩欧美视频二区| 日本91视频免费播放| 国产不卡av网站在线观看| 欧美日韩亚洲综合一区二区三区_| 亚洲精品日韩在线中文字幕| 99热网站在线观看| 91老司机精品| 欧美日韩av久久| 伊人久久国产一区二区| 国产成人一区二区在线| 高清黄色对白视频在线免费看| 欧美日韩一级在线毛片| 国产精品 欧美亚洲| 久久精品国产综合久久久| 亚洲精品在线美女| 国产淫语在线视频| 久久久久久久久久久免费av| 18在线观看网站| 精品午夜福利在线看| 久久韩国三级中文字幕| 水蜜桃什么品种好| 新久久久久国产一级毛片| 久久精品国产亚洲av涩爱| 母亲3免费完整高清在线观看| 99久久精品国产亚洲精品| 亚洲av福利一区| 国产男女内射视频| 一二三四中文在线观看免费高清| 少妇 在线观看| 超碰97精品在线观看| 三上悠亚av全集在线观看| 无遮挡黄片免费观看| 国产精品久久久av美女十八| 欧美激情极品国产一区二区三区| 国产黄色免费在线视频| 国产成人欧美在线观看 | 天天躁夜夜躁狠狠躁躁| 亚洲欧美成人精品一区二区| 最近最新中文字幕大全免费视频 | 国产精品无大码| 多毛熟女@视频| av不卡在线播放| 亚洲图色成人| 欧美日本中文国产一区发布| 国产极品天堂在线| av又黄又爽大尺度在线免费看| 男男h啪啪无遮挡| 婷婷成人精品国产| 蜜桃在线观看..| 精品福利永久在线观看| 性少妇av在线| 看免费av毛片| 黄网站色视频无遮挡免费观看| 久久婷婷青草| 亚洲欧美一区二区三区黑人| 日韩一卡2卡3卡4卡2021年| av国产精品久久久久影院| 一边摸一边做爽爽视频免费| 国产淫语在线视频| 免费女性裸体啪啪无遮挡网站| 精品国产一区二区久久| 欧美日韩视频高清一区二区三区二| 国产精品一区二区精品视频观看| 国产日韩欧美在线精品| 最近中文字幕2019免费版| 国产国语露脸激情在线看| 我的亚洲天堂| 性色av一级| 亚洲视频免费观看视频| 老鸭窝网址在线观看| 777米奇影视久久| 一区二区三区乱码不卡18| 狠狠精品人妻久久久久久综合| 99re6热这里在线精品视频| 汤姆久久久久久久影院中文字幕| 多毛熟女@视频| 亚洲欧美中文字幕日韩二区| 国产成人系列免费观看| 精品国产乱码久久久久久男人| 久久久精品国产亚洲av高清涩受| 日日爽夜夜爽网站| 欧美成人精品欧美一级黄| 亚洲久久久国产精品| 免费高清在线观看视频在线观看| 黑人猛操日本美女一级片| 女性被躁到高潮视频| 午夜影院在线不卡| 欧美xxⅹ黑人| 久久久久国产一级毛片高清牌| 午夜福利影视在线免费观看| 十八禁高潮呻吟视频| 老司机影院毛片| 菩萨蛮人人尽说江南好唐韦庄| 黄色毛片三级朝国网站| 在线亚洲精品国产二区图片欧美| 制服丝袜香蕉在线| 国产男人的电影天堂91| 一本大道久久a久久精品| 精品亚洲成国产av| 免费高清在线观看日韩| 国产麻豆69| 亚洲欧美一区二区三区久久| 亚洲伊人色综图| 国产av精品麻豆| 色婷婷av一区二区三区视频| 亚洲国产最新在线播放| 在线观看人妻少妇| av.在线天堂| 自拍欧美九色日韩亚洲蝌蚪91| 欧美国产精品va在线观看不卡| 搡老岳熟女国产| 久久精品国产亚洲av高清一级| 啦啦啦在线观看免费高清www| 国产精品久久久久久精品电影小说| 美女中出高潮动态图| 老鸭窝网址在线观看| www.熟女人妻精品国产| 国产黄色视频一区二区在线观看| 午夜免费男女啪啪视频观看| 亚洲av国产av综合av卡| 9色porny在线观看| 黄色 视频免费看| 女人久久www免费人成看片| 亚洲国产av新网站| 在线观看免费高清a一片| 老汉色∧v一级毛片| 欧美黄色片欧美黄色片| 汤姆久久久久久久影院中文字幕| 美女扒开内裤让男人捅视频| 国产黄色视频一区二区在线观看| 岛国毛片在线播放| 久久久久视频综合| 午夜激情久久久久久久| 成人手机av| 制服人妻中文乱码| 悠悠久久av| 永久免费av网站大全| 一级毛片电影观看| 韩国精品一区二区三区| 超色免费av| 国产精品嫩草影院av在线观看| 99re6热这里在线精品视频| 国产成人欧美在线观看 | 成年美女黄网站色视频大全免费| 天美传媒精品一区二区| 男女无遮挡免费网站观看| 亚洲美女视频黄频| 麻豆乱淫一区二区| 中文字幕另类日韩欧美亚洲嫩草| 久久久久精品国产欧美久久久 | 日韩一区二区三区影片| videosex国产| 成人漫画全彩无遮挡| 免费黄频网站在线观看国产| 成人手机av| 不卡av一区二区三区| 国产成人精品福利久久| 男女国产视频网站| 日韩制服丝袜自拍偷拍| 久久人妻熟女aⅴ| www.精华液| 久久人人97超碰香蕉20202| 男女边摸边吃奶| 中文字幕高清在线视频| 午夜福利一区二区在线看| 欧美在线一区亚洲| 制服人妻中文乱码| 嫩草影视91久久| 国产极品天堂在线| av国产久精品久网站免费入址| av视频免费观看在线观看| 国产精品二区激情视频| 中文字幕色久视频| 国产亚洲精品第一综合不卡| 亚洲美女视频黄频| 免费日韩欧美在线观看| 两个人免费观看高清视频| 一本—道久久a久久精品蜜桃钙片| 日韩一区二区三区影片| 天天添夜夜摸| av卡一久久| 亚洲成人av在线免费| 国产男人的电影天堂91| 久久久久久人妻| 欧美日韩成人在线一区二区| 亚洲,一卡二卡三卡| 日韩,欧美,国产一区二区三区| 欧美久久黑人一区二区| 日韩视频在线欧美| 久久久久网色| 久久久精品免费免费高清| 欧美日韩一级在线毛片| 成年人午夜在线观看视频| 啦啦啦 在线观看视频| 国产高清国产精品国产三级| 天天躁狠狠躁夜夜躁狠狠躁| 丝袜人妻中文字幕| 中文乱码字字幕精品一区二区三区| 欧美最新免费一区二区三区| 国产av国产精品国产| 久久久国产欧美日韩av| 亚洲成av片中文字幕在线观看| 久久免费观看电影| 日本猛色少妇xxxxx猛交久久| 国产欧美日韩一区二区三区在线| 天天躁夜夜躁狠狠久久av| 高清欧美精品videossex| 午夜福利,免费看| 午夜久久久在线观看| 国产欧美日韩一区二区三区在线| 久久99精品国语久久久| 秋霞在线观看毛片| av在线观看视频网站免费| 亚洲欧美中文字幕日韩二区| 男女下面插进去视频免费观看| 女人爽到高潮嗷嗷叫在线视频| 欧美日韩综合久久久久久| 亚洲精品国产色婷婷电影| 国产精品香港三级国产av潘金莲 | 91aial.com中文字幕在线观看| 亚洲三区欧美一区| 十八禁人妻一区二区| 9热在线视频观看99| 亚洲七黄色美女视频| 亚洲 欧美一区二区三区| 欧美老熟妇乱子伦牲交| 十分钟在线观看高清视频www| 黑人巨大精品欧美一区二区蜜桃| 青草久久国产| 久久国产亚洲av麻豆专区| 国语对白做爰xxxⅹ性视频网站| 亚洲av综合色区一区| 精品免费久久久久久久清纯 | 亚洲美女视频黄频| 韩国av在线不卡| 男女之事视频高清在线观看 | 婷婷色麻豆天堂久久| 国产免费一区二区三区四区乱码| 久久天堂一区二区三区四区| 久久这里只有精品19| 一区二区三区激情视频| 国产免费福利视频在线观看| 日日摸夜夜添夜夜爱| 精品一品国产午夜福利视频| 精品久久久久久电影网| 性色av一级| 久久久久久久久久久久大奶| 亚洲婷婷狠狠爱综合网| 欧美黄色片欧美黄色片| 又粗又硬又长又爽又黄的视频| 成年av动漫网址| 亚洲精品日韩在线中文字幕| 无限看片的www在线观看| 19禁男女啪啪无遮挡网站| 丰满乱子伦码专区| 国产成人系列免费观看| 视频区图区小说| 啦啦啦啦在线视频资源| 成人毛片60女人毛片免费| 丝袜美足系列| 十八禁网站网址无遮挡| 国产亚洲最大av| 欧美在线黄色| 桃花免费在线播放| 黄色 视频免费看| 久久精品国产亚洲av高清一级| 久久国产亚洲av麻豆专区| 午夜福利,免费看| 欧美少妇被猛烈插入视频| 亚洲成人免费av在线播放| 看非洲黑人一级黄片| 久久精品久久久久久久性| 伊人亚洲综合成人网| 亚洲自偷自拍图片 自拍| 国产精品.久久久| 午夜免费鲁丝| 熟女av电影| 男女高潮啪啪啪动态图| 一级爰片在线观看| 性少妇av在线| 亚洲美女搞黄在线观看| 男人操女人黄网站| 韩国高清视频一区二区三区| 电影成人av| av女优亚洲男人天堂| 亚洲第一区二区三区不卡| av国产久精品久网站免费入址| 19禁男女啪啪无遮挡网站| 欧美日韩视频高清一区二区三区二| 久久久精品免费免费高清| 亚洲综合色网址| 亚洲欧美色中文字幕在线| 日日撸夜夜添| 人人妻,人人澡人人爽秒播 | 中文字幕人妻丝袜一区二区 | 免费少妇av软件| 中国三级夫妇交换| 国产乱人偷精品视频| 亚洲欧洲国产日韩| 在线亚洲精品国产二区图片欧美| 香蕉国产在线看| 热re99久久精品国产66热6| 国产不卡av网站在线观看| av网站在线播放免费| 国产一区有黄有色的免费视频| 少妇人妻 视频| 免费黄网站久久成人精品| 在线观看免费午夜福利视频| 如何舔出高潮| 欧美人与性动交α欧美精品济南到| 天堂俺去俺来也www色官网| 这个男人来自地球电影免费观看 | 精品国产一区二区三区久久久樱花| 91精品国产国语对白视频| 日韩,欧美,国产一区二区三区| 久久久久久久精品精品| 国产探花极品一区二区| 久久99热这里只频精品6学生| 深夜精品福利| 日本av手机在线免费观看| 老汉色av国产亚洲站长工具| 亚洲精品久久午夜乱码| 精品人妻熟女毛片av久久网站| 色综合欧美亚洲国产小说| 老汉色∧v一级毛片| 国产精品成人在线| 亚洲精品在线美女| 两性夫妻黄色片| 国产无遮挡羞羞视频在线观看| 亚洲欧美一区二区三区黑人| 日韩成人av中文字幕在线观看| 亚洲欧美色中文字幕在线| 国产精品一国产av| www日本在线高清视频| 99国产精品免费福利视频| 大码成人一级视频| 欧美成人精品欧美一级黄| 国产成人精品无人区| 国产成人免费无遮挡视频| 成年动漫av网址| 菩萨蛮人人尽说江南好唐韦庄| 亚洲精品成人av观看孕妇| 99国产综合亚洲精品|