一種序列規(guī)則的挖掘方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)挖掘領(lǐng)域,尤其涉及一種序列規(guī)則的挖掘方法及系統(tǒng)。
【背景技術(shù)】
[0002] 序列模式挖掘有著廣泛應(yīng)用。然而,已有的序列模式挖掘中,挖掘出的序列模式常 常會誤導(dǎo)用戶,因為發(fā)掘的模式常常是面向應(yīng)用的。比如,大數(shù)據(jù)服務(wù)日志中的{a},, {c}序列模式,它意味著系統(tǒng)日志以{a},,{c}的順序記錄了系統(tǒng)和用戶事件發(fā)生的順 序。例如在序列A1、A2、A3和A4中,符合這種序列模式的序列有序列A2和序列A4,因此這 種序列模式有50%的支持度。然而,這種模式是有誤導(dǎo)性的,因為在序列A1中{a},按 照序列模式中的順序出現(xiàn)。
[0003] A1 :, {a}, xv3r9jzsqg, {e}, {m}, {j}, {q}, {c}
[0004] A2 : xv3r9jzsqg,{e},{f},{a},,{c},{p}
[0005] A3 : {a},,xv3r9jzsqg,{h},{〇},{g}
[0006] A4 : {a},xv3r9jzsqg,,{c},{i}
[0007] 因此,如果基于這種模式,將會將序列A1中的序列模式排除。在實際中,{a}, 可能并不一定是按照嚴(yán)格的順序發(fā)生,所以基于這種模式會導(dǎo)致錯誤的決定。有一種解決 這一問題的方案是添加可信性度量指標(biāo)。但是,由于序列的數(shù)目可能很多,給序列模式添加 這種度量指標(biāo)并不簡單。
[0008] 序列規(guī)則中存在一些規(guī)則,他們的區(qū)別僅僅在于項目的順序不同。由于序列模式 指定項目之間遵守嚴(yán)格的排序,所以可能存在與該序列模式具有相同項目但不同排序的支 持率較低的規(guī)則未被挖掘。例如,{a} - {c}有2種具有相同項目但排序不同的規(guī)則, 如以下所表示的B1、B2規(guī)則。但是,所有這些變化說明了同樣的情況。
[0009] B1 : {a} - {c}
[0010] B2 : {a} - {c}
[0011] 這種相似規(guī)則的評估值的差別可能很大。例如,規(guī)則的B1具有較高的支持度和可 信度,而規(guī)則B2由于支持度和可信度過低不會被選為規(guī)則。這些評估值的差異給用戶造成 了錯誤的印象。
【發(fā)明內(nèi)容】
[0012] 要解決的技術(shù)問題
[0013] ( -)如何挖掘序列中的低支持率的序列關(guān)聯(lián)規(guī)則。
[0014] (二)技術(shù)方案
[0015] 針對以上技術(shù)問題,一方面本發(fā)明提供了一種序列規(guī)則的挖掘方法,包括:在至少 一個序列中的所有序列元素中獲取頻繁序列元素;包含所述頻繁序列元素的序列占所述至 少一個序列的比例大于第一閾值;
[0016] 在所述頻繁序列元素形成的關(guān)聯(lián)規(guī)則中,獲取所有的目標(biāo)關(guān)聯(lián)規(guī)則以組成第一集 合;
[0017] 其中,所述目標(biāo)關(guān)聯(lián)規(guī)則的前件和后件均由不分順序的至少一個頻繁序列元素組 成;為所述目標(biāo)關(guān)聯(lián)規(guī)則的前件和后件各自規(guī)定一種排列順序后形成一個有序目標(biāo)規(guī)則;
[0018] 所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)支持度大于第二閾值;所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)支持度 為該目標(biāo)關(guān)聯(lián)規(guī)則所有有序目標(biāo)規(guī)則在所述至少一個序列中的支持度的總和;
[0019] 所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)置信度大于第三閾值;所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)置信度 為所述至少一個序列中符合該目標(biāo)關(guān)聯(lián)規(guī)則的任一有序目標(biāo)規(guī)則的序列的數(shù)量,與所述至 少一個序列中包含該目標(biāo)關(guān)聯(lián)規(guī)則的前件的序列的數(shù)量之間的比值。
[0020] 進(jìn)一步地,所述在所述頻繁序列元素形成的關(guān)聯(lián)規(guī)則中,獲取所有的目標(biāo)關(guān)聯(lián)規(guī) 則以組成第一集合,包括:
[0021] 獲取以兩個所述頻繁序列元素分別作為前件和后件而形成的所有目標(biāo)關(guān)聯(lián)規(guī)則, 并加入第一集合;
[0022] 重復(fù)執(zhí)行下述步驟,直到不能得到新的目標(biāo)關(guān)聯(lián)規(guī)則:在第一集合中的一個目標(biāo) 關(guān)聯(lián)規(guī)則的前件或后件中加入不包含在該前件和該后件中的頻繁序列元素,以將形成的目 標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合。
[0023] 進(jìn)一步地,所述在第一集合中的一個目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中加入不包含在 該前件和該后件中的頻繁序列元素,以將形成的目標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合的步驟,包 括:
[0024] 在將一個頻繁序列元素加入至一個目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中時,判斷該頻繁 序列元素是否沒有出現(xiàn)在任意一個該目標(biāo)關(guān)聯(lián)規(guī)則的相符序列中;所述目標(biāo)關(guān)聯(lián)規(guī)則的相 符序列為所述至少一個序列中符合該目標(biāo)關(guān)聯(lián)規(guī)則的序列;
[0025] 若是,則不再將該頻繁序列元素加入至前件包含該目標(biāo)關(guān)聯(lián)規(guī)則的前件、后件包 含該目標(biāo)關(guān)聯(lián)規(guī)則的后件的目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中。
[0026] 進(jìn)一步地,所述在第一集合中的一個目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中加入不包含在 該前件和該后件中的頻繁序列元素,以將形成的目標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合的步驟,還 包括:
[0027] 若一個頻繁序列元素于一個目標(biāo)關(guān)聯(lián)規(guī)則的所有相符序列中全部位于該目標(biāo)關(guān) 聯(lián)規(guī)則的前件中的頻繁序列元素首次出現(xiàn)的位置之后,則不再將該頻繁序列元素加入至該 目標(biāo)關(guān)聯(lián)規(guī)則的前件中;
[0028] 若一個頻繁序列元素于一個目標(biāo)關(guān)聯(lián)規(guī)則的所有相符序列中全部位于該目標(biāo)關(guān) 聯(lián)規(guī)則的后件中的頻繁序列元素最后出現(xiàn)的位置之前,則不再將該頻繁序列元素加入至該 目標(biāo)關(guān)聯(lián)規(guī)則的后件中。
[0029] 進(jìn)一步地,所述在第一集合中的一個目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中加入不包含在 該前件和該后件中的頻繁序列元素,以將形成的目標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合的步驟,包 括:
[0030] 在所有頻繁序列元素排列而成的一個參考序列中,若一個頻繁序列元素沒有位于 一個目標(biāo)關(guān)聯(lián)規(guī)則的前件中的所有頻繁序列元素之前,則不向該目標(biāo)關(guān)聯(lián)規(guī)則的前件中加 入該頻繁序列元素;
[0031 ] 在所述參考序列中,若一個頻繁序列元素沒有位于一個目標(biāo)關(guān)聯(lián)規(guī)則的后件中的 所有頻繁序列元素之前,則不向該目標(biāo)關(guān)聯(lián)規(guī)則的后件中加入該頻繁序列元素。
[0032]另一方面,本發(fā)明提供了一種序列規(guī)則的挖掘系統(tǒng),包括:第一獲取模塊和第二獲 取模塊;其中,
[0033] 所述第一獲取模塊用于在至少一個序列中的所有序列元素中獲取頻繁序列元素; 包含所述頻繁序列元素的序列占所述至少一個序列的比例大于第一閾值;
[0034] 所述第二獲取模塊用于在所述頻繁序列元素形成的關(guān)聯(lián)規(guī)則中,獲取所有的目標(biāo) 關(guān)聯(lián)規(guī)則以組成第一集合;
[0035] 其中,所述目標(biāo)關(guān)聯(lián)規(guī)則的前件和后件均由不分順序的至少一個頻繁序列元素組 成;為所述目標(biāo)關(guān)聯(lián)規(guī)則的前件和后件各自規(guī)定一種排列順序后形成一個有序目標(biāo)規(guī)則;
[0036] 所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)支持度大于第二閾值;所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)支持度 為該目標(biāo)關(guān)聯(lián)規(guī)則所有有序目標(biāo)規(guī)則在所述至少一個序列中的支持度的總和;
[0037] 所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)置信度大于第三閾值;所述目標(biāo)關(guān)聯(lián)規(guī)則的目標(biāo)置信度 為所述至少一個序列中符合該目標(biāo)關(guān)聯(lián)規(guī)則的任一有序目標(biāo)規(guī)則的序列的數(shù)量,與所述至 少一個序列中包含該目標(biāo)關(guān)聯(lián)規(guī)則的前件的序列的數(shù)量之間的比值。
[0038] 進(jìn)一步地,所述第二獲取模塊包括:第一獲取子模塊、第一判斷子模塊和第一執(zhí)行 子模塊;其中,
[0039] 所述第一獲取子模塊用于獲取以兩個所述頻繁序列元素分別作為前件和后件而 形成的所有目標(biāo)關(guān)聯(lián)規(guī)則,并加入第一集合;
[0040] 所述第一執(zhí)行子模塊用于接收來自所述第一獲取子模塊或者所述第一判斷子模 塊的第一集合,并在第一集合中的一個目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中加入不包含在該前件 和該后件中的頻繁序列元素,以將形成的目標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合;
[0041] 所述第一判斷子模塊用于接收來自所述第一執(zhí)行子模塊的第一集合,并在判定所 述第一執(zhí)行子模炔基于該第一集合還能得到新的目標(biāo)關(guān)聯(lián)規(guī)則時將該第一集合發(fā)送給所 述第一執(zhí)行子模塊。
[0042] 進(jìn)一步地,所述第一執(zhí)行子模塊包括:接收單元、獲取單元、第一判斷單元和執(zhí)行 單元;其中,
[0043] 所述接收單元用于接收來自所述第一獲取子模塊或者所述第一判斷子模塊的第 一集合;
[0044] 所述獲取單元用于從所述接收單元接收的第一集合中獲取一個目標(biāo)關(guān)聯(lián)規(guī)則,并 從所述第一獲取模塊中獲取不包含在該目標(biāo)關(guān)聯(lián)規(guī)則的前件和后件中的一個頻繁序列元 素;
[0045] 所述第一判斷單元用于判斷所述獲取單元獲取的頻繁序列元素是否沒有出現(xiàn)在 任意一個該目標(biāo)關(guān)聯(lián)規(guī)則的相符序列中;所述目標(biāo)關(guān)聯(lián)規(guī)則的相符序列為所述至少一個序 列中符合該目標(biāo)關(guān)聯(lián)規(guī)則的序列;
[0046] 所述執(zhí)行單元用于在所述判斷單元判定該頻繁序列元素出現(xiàn)在任意一個該目標(biāo) 關(guān)聯(lián)規(guī)則的相符序列中時,將該頻繁序列元素加入至該目標(biāo)關(guān)聯(lián)規(guī)則的前件或后件中,以 將形成的目標(biāo)關(guān)聯(lián)規(guī)則加入至第一集合。
[0047] 進(jìn)一步地,所述第一執(zhí)行模塊中還包括:第二判斷單元;
[0048] 所述第二判斷單元用于判斷所述獲取單元獲取的頻繁序列元素于所述獲取單元 獲取的目標(biāo)關(guān)聯(lián)規(guī)則的所有相符序列中是否全部位于該目標(biāo)關(guān)聯(lián)規(guī)則的前件中的頻繁序 列元素首次出現(xiàn)的位置之后;
[0049] 所述執(zhí)行單元進(jìn)一步用于在所述第二判斷單元判定所述獲取單元獲取的頻繁序 列元素于所述獲取單元獲取的目標(biāo)關(guān)聯(lián)規(guī)則的所有相符序列中全部位于該目標(biāo)關(guān)聯(lián)規(guī)則 的前件中的頻繁序列元素首次出現(xiàn)的位置之后時,將該頻繁序列元素加入到該目標(biāo)關(guān)聯(lián)規(guī) 則的后件中;
[0050] 或者,
[0051] 所述執(zhí)行單元進(jìn)一步用于在所述第二判斷單元用于判斷所述獲取單元獲取的頻 繁序列元素于所述獲取單元獲取的目標(biāo)關(guān)聯(lián)規(guī)則的所有相符序列中是否全部位于該目標(biāo) 關(guān)聯(lián)規(guī)則的后件中的頻繁序列元素最后出現(xiàn)的位置之前;
[0052] 在所述第二判斷單元判定所述獲取單元獲取的頻繁序列元素于所述獲取單元獲 取的所有相符序列中全部位于該目標(biāo)關(guān)聯(lián)規(guī)則的后件中的頻繁序列元素最后出現(xiàn)的位置 之前時,將該頻繁序列元素加入到該目標(biāo)關(guān)聯(lián)規(guī)則的前件中。
[0053] 進(jìn)一步地,所述第一執(zhí)行模塊中還包括,第三判斷單元;
[0054] 所述第三判斷單元用于判斷在所有頻繁序列元素排列而成的一個參考序列中,一 個頻繁序列元素是否位于一個目標(biāo)關(guān)聯(lián)規(guī)則的前件中的所有頻繁序列元素之前;
[0055] 所述執(zhí)行單元進(jìn)一步用于在所述第三判斷單元判定該頻繁序列元素位于該目標(biāo) 關(guān)聯(lián)規(guī)則的前件中的所有頻繁序列元素之前時,將該頻繁序列元素加入到該目標(biāo)關(guān)聯(lián)規(guī)則 的前件中;
[0056] 或者,
[0057] 所述第三判斷單元用于判斷在所述參考序列中,一個頻繁序列元素是否位于一個 目標(biāo)關(guān)聯(lián)規(guī)則的后件中的所有頻繁序列元素之前;
[0058] 所述執(zhí)行單元進(jìn)一步用于在所述判斷單元判定該頻繁序列元素位于該目標(biāo)關(guān)聯(lián) 規(guī)則的后件中的所有頻繁序列元素之前時,將該頻繁序列元素加入到該目標(biāo)關(guān)聯(lián)規(guī)則的后 件中。
[0059](三)有益效果
[0060] 本發(fā)明提供的序列規(guī)則的挖掘方法和系統(tǒng),能夠?qū)⑶凹秃蠹慕M成元素相同但 排序不同的低支持度的關(guān)聯(lián)規(guī)則和高支持度的規(guī)則作為一個整體的規(guī)則進(jìn)行挖掘。與現(xiàn)有 技術(shù)相比,本發(fā)明提供的序列規(guī)則挖掘方法將前件和后件的組成元素相同但排序不同的低 支持度的關(guān)聯(lián)規(guī)則