一種基于興趣度度量的頻繁模式挖掘方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種頻繁模式挖掘方法,具體涉及一種基于興趣度量的頻繁模式挖掘方法。本發(fā)明屬于數(shù)據(jù)挖掘領(lǐng)域。
【背景技術(shù)】
[0002]頻繁項(xiàng)集挖掘是數(shù)據(jù)挖掘領(lǐng)域中一個(gè)重要研宄方向,其主要用于發(fā)掘頻繁出現(xiàn)在數(shù)據(jù)集中的模式(如項(xiàng)集,子序列和子結(jié)構(gòu))。由于頻繁項(xiàng)集可以很方便地生成關(guān)聯(lián)規(guī)則,便于目標(biāo)系統(tǒng)應(yīng)用,因而頻繁模式挖掘一直以來(lái)都是數(shù)據(jù)挖掘研宄和應(yīng)用領(lǐng)域的熱點(diǎn)。傳統(tǒng)的頻繁模式挖掘方法基本都是研宄如何高效快速地發(fā)現(xiàn)頻繁項(xiàng)集,以提高算法效率為主,它們的評(píng)價(jià)體系大多都以絕對(duì)或相對(duì)頻率為依據(jù)。然而,在實(shí)際應(yīng)用中,出現(xiàn)頻率高的頻繁模式未必令人感興趣;反之,令人感興趣的頻繁模式未必出現(xiàn)頻率就一定高。此外,單純依賴頻率指標(biāo)(如支持度)會(huì)導(dǎo)致其他問(wèn)題的出現(xiàn),那就是頻率指標(biāo)的閾值難以確定。當(dāng)閾值設(shè)置較大時(shí),結(jié)果頻繁項(xiàng)集會(huì)變小,難以有效發(fā)現(xiàn)有用的頻繁模式,影響生成合理的關(guān)聯(lián)規(guī)則;當(dāng)閾值設(shè)置較小時(shí),結(jié)果頻繁項(xiàng)集變大,容易混雜無(wú)用模式,需要用戶再次人工辨別,增大了用戶的工作量,減少了算法的實(shí)用性。可見,僅僅依賴頻率指標(biāo),難以發(fā)現(xiàn)合適的頻繁模式結(jié)果。
[0003]目前已有的公認(rèn)的頻繁模式挖掘算法包括:Apr1ri,F(xiàn)P-growth以及它們的改進(jìn)算法,均以頻率指標(biāo)為依據(jù)挖掘頻繁模式,雖然在時(shí)間效率方面逐級(jí)改進(jìn),但本質(zhì)上難以突破上述限制。
【發(fā)明內(nèi)容】
[0004]為解決現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于興趣度度量的頻繁模式挖掘方法,以解決現(xiàn)有挖掘方法難以簡(jiǎn)便發(fā)現(xiàn)合適的頻繁模式結(jié)果的技術(shù)問(wèn)題。
[0005]為了實(shí)現(xiàn)上述目標(biāo),本發(fā)明采用如下的技術(shù)方案:
一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,包括如下步驟:
步驟一:用戶指定top k結(jié)果頻繁集合中的元素?cái)?shù)量k ;
步驟二:用戶指定原始數(shù)據(jù)集,原始數(shù)據(jù)集即需要進(jìn)行挖掘的頻繁模式數(shù)據(jù)集;
步驟三:讀入原始數(shù)據(jù)集中的數(shù)據(jù);
步驟四:將原始數(shù)據(jù)集中的出現(xiàn)的元素,按照出現(xiàn)頻率從大到小排列,組成元素集合
IS ;
步驟五:針對(duì)元素集合IS,逐個(gè)生成備選頻繁項(xiàng)集S ;并進(jìn)行檢查,檢查中符合條件的項(xiàng)集更新到top k結(jié)果頻繁集合中;
步驟六:輸出top k結(jié)果頻繁集合中的內(nèi)容。
[0006]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,所述步驟五包括:
步驟5a:從元素集合IS中取出當(dāng)前位置的元素item,形成一個(gè)元素個(gè)數(shù)為I的備選頻繁項(xiàng)集S ;
步驟5b:將元素集合IS中位于item后面的所有元素,組合成一個(gè)備選元素集合ISNew ;
步驟5c:基于備選頻繁項(xiàng)集S和備選元素集合ISNew,對(duì)備選頻繁項(xiàng)集S進(jìn)行檢查,檢查中符合條件的項(xiàng)集更新到top k結(jié)果頻繁集合中;
步驟5d:檢測(cè)元素集合IS中的所有元素是否已經(jīng)都執(zhí)行過(guò)上述步驟,若存在未執(zhí)行的項(xiàng)目,則重復(fù)步驟5a,否則執(zhí)行步驟六。
[0007]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,所述步驟5c包括:
步驟5cl:讀入備選頻繁項(xiàng)集S和備選元素集合ISNew ;
步驟5c2:初始化新的備選項(xiàng)集ISNewRecursive為空;初始化閾值t=_l ;
步驟5c3:從備選元素集合ISNew中逐個(gè)選取備選元素,將其放入備選頻繁項(xiàng)集S中,形成頻繁項(xiàng)集SNew,并對(duì)所述頻繁項(xiàng)集SNew進(jìn)行檢驗(yàn),如果符合要求,則將其更新到top k結(jié)果頻繁集合中;
步驟5c4:從備選項(xiàng)集ISNewRecursive中逐個(gè)取出項(xiàng)目,添加到備選頻繁項(xiàng)集S,形成新的頻繁項(xiàng)集,并對(duì)該頻繁項(xiàng)集進(jìn)行校驗(yàn);
步驟5c5:結(jié)束退出;
前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,所述步驟5c3包括: 步驟5c3a:初始化新的頻繁項(xiàng)集SNew,內(nèi)容與S相同;
步驟5c3b:從備選項(xiàng)集ISNew中取出當(dāng)前項(xiàng)目元素i,并添加到頻繁項(xiàng)集SNew中; 步驟5c3c:將SNew作為參數(shù),計(jì)算SNew的興趣度;
步驟5c3d:如果SNew的興趣度大于閾值t,則執(zhí)行步驟5c3e,否則直接執(zhí)行步驟步驟5c3i ;
步驟5c3e:將SNew更新到top k結(jié)果頻繁集合中;
步驟5c3f:將項(xiàng)目元素i添加到備選項(xiàng)集ISNewRecursive集合;
步驟5c3g:將top k結(jié)果頻繁集合中的元素按照各自的興趣度值從大到小排序;
步驟5c3h:如果top k結(jié)果頻繁集合中的元素?cái)?shù)量大于k,則僅僅保留前k個(gè)項(xiàng)目,同時(shí)更新t值為結(jié)果集合中興趣度的最小值;
步驟5c31:檢查項(xiàng)目i是否是元素集合IS中的最后元素;如果不是,則重復(fù)執(zhí)行步驟5c3 ;否則,執(zhí)行步驟5c4。
[0008]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,所述步驟5c4包括:
步驟5c4a:從備選項(xiàng)集ISNewRecursive中取出項(xiàng)目元素j,并追加到備選頻繁項(xiàng)集S的最后,形成新的頻繁項(xiàng)集SCandidate ;
步驟5c4b:以頻繁項(xiàng)集SCandidate和備選項(xiàng)集ISNew為參數(shù),調(diào)用步驟5c I ;
步驟5c4c:檢查項(xiàng)目j是否是從備選項(xiàng)集ISNewRecursive中的最后元素;如果不是,則重復(fù)執(zhí)行步驟5c4 ;否則,執(zhí)行步驟5c5。
[0009]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,步驟5c3c包括: 步驟5c3cl:讀入待計(jì)算興趣度的頻繁項(xiàng)集S ; 步驟5c3c2:計(jì)算原始樣本庫(kù)中,包含頻繁項(xiàng)集S的樣本數(shù)量sup ;初始化備選數(shù)量集合SupSet為空;計(jì)算整個(gè)原始樣本庫(kù)中的樣本總數(shù)total ;初始化興趣度Interest的值為-1 ;
步驟5c3c3:將頻繁項(xiàng)集S中的元素分割,形成兩個(gè)頻繁項(xiàng)集SLeft和SRight ;對(duì)于所有分割,形成集合Partit1nSet,其中的元素由{SLeft, SRight}構(gòu)成;
步驟5c3c4:針對(duì)集合Partit1nSet中的所有元素{SLeft, SRight},計(jì)算其與原始頻繁項(xiàng)集S的Fisher檢驗(yàn)值和支持度集合;
步驟5c3c5:計(jì)算集合SupSet中的最小值minsup ;
步驟5c3c6:將頻繁項(xiàng)集S的興趣度Interest,設(shè)定為minsup,并將該值作為本算法的結(jié)果返回。
[0010]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,步驟5c3c4包括: 步驟5c3c4a:從備選頻繁集合Partit1nSet中取出當(dāng)前元素頻繁項(xiàng)集集合{SLeft,
SRight};
步驟5c3c4b:計(jì)算原始頻繁樣本庫(kù)中,包含頻繁項(xiàng)集SLeft的樣本數(shù)量supl ;
步驟5c3c4c:計(jì)算原始頻繁樣本庫(kù)中,包含頻繁項(xiàng)集SRight的樣本數(shù)量sup2 ;
步驟 5c3c4d:以 total,sup,supl, sup2 為參數(shù),計(jì)算 Fisher 檢驗(yàn)值 p ;
步驟5c3c4e:檢查P是否小于閾值0.05,如果滿足條件,則執(zhí)行步驟5c3c4f,否則執(zhí)行步驟 5c3c4h ;
步驟 5c3c4f:計(jì)算數(shù)值 sup_supl*sup2 ;
步驟5c3c4g:將數(shù)上述數(shù)值加入集合SupSet ;
步驟5c3c4h:檢查條件:當(dāng)前元素集合{SLeft, SRight}是否為集合Partit1nSet的最后一個(gè)元素;如果{SLeft, SRight}不是最后一個(gè)元素,表示Partit1nSet還有元素沒有處理,則執(zhí)行(4.1);否則執(zhí)行(5) ο
[0011]前述的一種基于興趣度度量的頻繁模式挖掘方法,其特征在于,步驟5c3c4d包括:
步驟5c3c4dl:讀入樣本總數(shù)量total ;讀入頻繁項(xiàng)集SLeft的樣本數(shù)量supl ;讀入頻繁項(xiàng)集SRight的樣本數(shù)量sup2 ;讀入頻繁項(xiàng)集S的樣本數(shù)量sup ;
步驟5c3c4d2:初始化P為O ;初始化局部變量a為total-supl_sup2+sup ;初始化局部變量b為supl-sup ;初始化局部變量c為sup2-sup ;初始化局部變量d為sup ;
步驟5c3c4d3:當(dāng)b大于等于O而且c大于等于O時(shí),依次執(zhí)行如下:P加上((a+b) !* (c+d) !* (a+c) !* (b+d) !) / (a!*b!*c!*d!* (a+b+c+d) !),其中!表不階乘運(yùn)算,* 表示乘法運(yùn)算;a賦值為a+1 ;) b賦值為b-1 ;c賦值為c-1 ;d賦值為d+1 ;檢查循環(huán)條件b大于等于O而且c大于等于O ;當(dāng)條件滿足時(shí),執(zhí)行步驟5c3c4d3 ;否則執(zhí)行步驟5