c3c4d4 ;步驟5c3c4d4:結(jié)束,返回P,所述P即Fisher檢驗值,并退出。
[0012]本發(fā)明的有益之處在于:本發(fā)明使用興趣度度量作為頻繁模式挖掘結(jié)果的評判依據(jù),提高了挖掘結(jié)果的實用性;僅僅需要用戶指定所需結(jié)果的數(shù)量,減少了算法輸入?yún)?shù)的數(shù)量,方便用戶使用;得到的結(jié)果頻繁項集按照興趣度度量由大到小自動排序,減少了用戶對結(jié)果的甄別過程,提高了本發(fā)明的實用性和適用性。
【附圖說明】
[0013]圖1是本發(fā)明的總流程示意圖;
圖2是本發(fā)明主干程序流程圖;
圖3是本發(fā)明頻繁項集檢驗與擴展算法流程圖;
圖4是本發(fā)明頻繁項集興趣度計算算法流程圖。
【具體實施方式】
[0014]以下結(jié)合附圖和具體實施例對本發(fā)明作具體的介紹。
[0015]參照圖1所示,本發(fā)明主要旨在實現(xiàn)一類基于興趣度度量的頻繁模式挖掘方法,給定k值以后,算法能夠挖掘出top k條結(jié)果頻繁模式。同時,頻繁模式結(jié)果按照興趣度度量值由大到小順序排列,便于用戶采納使用。算法僅僅需要用戶提供潛在目標(biāo)結(jié)果的數(shù)量,降低了用戶交互過程中對用戶的要求,方便了用戶對算法的使用。
[0016]本發(fā)明的具體實施方法包括如下具體步驟:
算法I,主體結(jié)構(gòu)程序:
(I)基本數(shù)據(jù)信息輸入
(1.1)用戶指定結(jié)果頻繁模式集合中的元素數(shù)量k,這里的結(jié)果頻繁模式集合也稱為top k結(jié)果頻繁集合或者top k結(jié)果集合。
[0017](1.2)用戶指定需要進行挖掘的頻繁模式數(shù)據(jù)集。
[0018](2)數(shù)據(jù)預(yù)處理
(2.1)初始化top k結(jié)果頻繁項集集合為空。
[0019](2.2)讀入原始數(shù)據(jù)集中的數(shù)據(jù)。
[0020](2.3)將原始數(shù)據(jù)集中的出現(xiàn)的元素,按照出現(xiàn)頻率從大到小排列,組成元素集合IS。
[0021](3)針對元素集合IS,逐個生成備選頻繁,并進行檢查,符合條件的項集更新到top k結(jié)果頻繁集合中。具體包含如下步驟:
(3.1)從元素集合IS中取出當(dāng)前位置的元素item,形成一個元素個數(shù)為I的備選頻繁項集S。
[0022](3.2)將元素集合IS中位于item后面的所有元素,組合成一個備選元素集合ISNew0
[0023](3.2)將備選頻繁項集S和備選元素集合ISNew作為參數(shù),調(diào)用算法2,對備選頻繁項集S進行擴展與檢測。
[0024](3.3)檢測元素集合IS中的所有元素是否已經(jīng)都執(zhí)行過上述步驟,若存在未執(zhí)行的項目,則重復(fù)步驟(3.1),否則執(zhí)行步驟(4)
(4)輸出top k結(jié)果頻繁集合中的內(nèi)容。
[0025]算法2,頻繁項集的擴展與檢驗程序:
(I)基本數(shù)據(jù)信息輸入。
[0026](1.1)讀入備選頻繁項集S。
[0027](1.2)讀入當(dāng)前的備選元素集合ISNew。
[0028](2)初始化局部變量。
[0029](2.1)初始化新的備選項集ISNewRecursive為空。
[0030](2.2)初始化閾值 t=_l。
[0031](3)從備選項集ISNew中逐個選取備選元素,將其放入備選頻繁項集S中,形成新的頻繁項集SNew,進而對該頻繁項集SNew進行檢驗,如果符合要求,則將其更新到top k結(jié)果頻繁集合中。具體過程如下:
(3.1)初始化新的頻繁項集SNew,內(nèi)容與S相同。
[0032](3.2)從備選項集ISNew中取出當(dāng)前項目元素i,并添加到頻繁項集SNew中。
[0033](3.3)將SNew作為參數(shù),調(diào)用算法3,計算SNew的興趣度。
[0034](3.4)如果SNew的興趣度大于閾值t,則執(zhí)行步驟(3.4.1),否則直接執(zhí)行步驟(3.5)
(3.4.1)將SNew更新到top k結(jié)果頻繁集合中。
[0035](3.4.2)將項目元素i添加到備選項集ISNewRecursive集合中。
[0036](3.4.3)將top k結(jié)果頻繁集合中的元素按照各自的興趣度值從大到小排序。
[0037](3.4.4)如果結(jié)果集合中的元素數(shù)量大于k,則僅僅保留前k個元素,同時更新t值為結(jié)果集合中興趣度的最小值。
[0038](3.5)檢查項目i是否是備選項集IS中的最后元素。如果不是,則重復(fù)執(zhí)行步驟
(3);否則,執(zhí)行步驟(4)。
[0039](4)從備選項集ISNewRecursive中逐個取出項目元素,添加到備選頻繁項集S,形成新的頻繁項集,并對該頻繁項集進行校驗。具體過程如下:
(4.1)從備選項集ISNewRecursive中取出項目元素j,并追加到備選頻繁項集S的最后,形成新的頻繁項集SCandidate。
[0040](4.2)以頻繁項集SCandidate和備選項集ISNew為參數(shù),遞歸調(diào)用算法2。
[0041](4.3)檢查項目j是否是從備選項集ISNewRecursive中的最后元素。如果不是,則重復(fù)執(zhí)行步驟(4);否則,執(zhí)行步驟(5)。
[0042](5)本段程序正常結(jié)束,退出。
[0043]算法3,計算頻繁項集的興趣度:
(I)基本數(shù)據(jù)信息輸入。
[0044](1.1)讀入待計算興趣度的頻繁項集S。
[0045](2)初始化局部變量。
[0046](2.2)計算原始樣本庫中,包含頻繁項集S的樣本數(shù)量sup。
[0047](2.3)初始化備選數(shù)量集合SupSet為空。
[0048](2.4)計算整個原始樣本庫中的樣本總數(shù)total。
[0049](2.5)初始化興趣度Interest的值為-1。
[0050](3)將頻繁項集S中的元素分割,形成兩個頻繁項集SLeft和SRight。對于所有分割,形成集合Partit1nSet,其中的元素由{SLeft, SRight}構(gòu)成。
[0051](4)針對集合Partit1nSet中的所有元素{SLeft, SRight},計算其與原始頻繁項集S的Fisher檢驗值和支持度集合,具體過程如下:
(4.1)從備選頻繁集合Partit1nSet中取出當(dāng)前元素頻繁項集集合{SLeft,SRight}ο
[0052](4.2)計算原始頻繁樣本庫中,包含頻繁項集SLeft的樣本數(shù)量supl。
[0053](4.3)計算原始頻繁樣本庫中,包含頻繁項集SRight的樣本數(shù)量sup2。
[0054](4.4)以 total,sup,supl,sup2 為參數(shù),使用算法 4 計算 Fisher 檢驗值 P。
[0055](4.5)檢查P是否小于閾值0.05,如果滿足條件,則執(zhí)行(4.3.1),否則執(zhí)行(4.4) (4.3.1)計算數(shù)值 sup-supl*sup2。
[0056](4.3.2)將數(shù)上述數(shù)值加入集合SupSet。
[0057](4.4)檢查條件:當(dāng)前元素集合{SLeft, SRight}是否為集合Partit1nSet的最后一個元素。如果{SLeft, SRight}不是最后一個元素,表示Partit1nSet還有元素沒有處理,則執(zhí)行(4.1);否則執(zhí)行(5)
(5)計算集合SupSet中的最小值minsup。
[0058](6)將頻繁項集S的興趣度Interest,設(shè)定為minsup,并將該值作為本算法的結(jié)果返回。
[0059](7)本段程序正常結(jié)束,退出。
[0060]算法4,計算Fisher檢驗值:
(I)基本數(shù)據(jù)信息輸入。
[0061](1.1)讀入樣本總數(shù)量total。
[0062](1.2)讀入頻繁項集SLeft的樣本數(shù)量supl。
[0063](1.3)讀入頻繁項集SRight的樣本數(shù)量sup2。
[0064](1.3)讀入頻繁項集S的樣本數(shù)量sup。
[0065](2)初始化局部變量。
[0066](2.1)初始化 P 為 O。
[0067](2.1)初始化局部變量 a 為 total-supl_sup2+sup0
[0068](2.1)初始化局部變量b為supl-sup ο
[0069](2.1)初始化局部變量c為sup2_sup0
[0070](2.1)初始化局部變量d為sup。
[0071](3)當(dāng)b大于等于O而且c大于等于O時執(zhí)行如下循環(huán)過程:
(3.1) P 加上((a+b) !*(c+d) !*(a+c) !*(b+d) !)/(a!*b!*c!*d!*(a+b+c+d) !)。其中!表示階乘運算,*表示乘法運算。
[0072](3.2) a 賦值為 a+1。
[0073](3.