專利名稱:通過確定輸入數(shù)據(jù)中的模式進行數(shù)據(jù)挖掘的制作方法
技術領域:
本發(fā)明一般地涉及數(shù)據(jù)挖掘。具體地說,本發(fā)明涉及確定輸入數(shù)據(jù)中 的模式。
背景技術:
數(shù)據(jù)挖掘一般指用于從輸入數(shù)據(jù)提取信息的數(shù)據(jù)驅動的方法。其他用于從輸入數(shù)據(jù)提取信息的方法通常是假設驅動的(hypothesis driven ),其 中從輸入數(shù)據(jù)的角度證明 一組假設是正確還是4綠。輸入數(shù)據(jù)量可能很龐大,因此數(shù)據(jù)挖掘技術通常需要考慮如何有效處 理大量數(shù)據(jù)??紤]制造產(chǎn)品作為一個實例。其中,輸入數(shù)據(jù)可以包括各種 與組件的起源和功能、組件在制造廠中的處理、組件如何裝配在一起相關 的數(shù)據(jù)。在制造上下文中,數(shù)據(jù)挖掘的目的可以是解決與質(zhì)量分析和質(zhì)量 保證相關的問題。數(shù)據(jù)挖掘可以例如用于根本原因分析、制造廠內(nèi)的預警 系統(tǒng),以及減少索賠。作為第二個實例,考慮各種信息技術系統(tǒng)。其中, 數(shù)據(jù)挖掘可進一步用于入侵檢測、系統(tǒng)監(jiān)視和問題分析。數(shù)據(jù)挖掘還具有 各種其他用途,例如在零售和服務領域可以分析典型客戶行為,以及在醫(yī) 學和生命科學領域用于發(fā)現(xiàn)臨床研究中的因果關系。模式檢測是數(shù)據(jù)挖掘科目,其中輸入數(shù)據(jù)包括多個事務集合,而每個 事務包括一個項目集合。事務還可以被排序。可以根據(jù)時間排序,但是備 選地可以定義任何排序。例如,可以為每個事務提供順序號。關聯(lián)規(guī)則是 描述項目如何在事務內(nèi)出現(xiàn)的模式。另一方面,順序規(guī)則指順序事務中項 目集合的特定順序??紤]一個項目集合I-仏,l2,…IJ。假設D是一個事務集合,其中每 個事務T是一個屬于I的項目集合,TeI。因此,如果AqT,則事務T在I中包含項目集合A。關聯(lián)規(guī)則蘊含形式A^B,其中Acl, Bdl,并且 AflB=0; A被稱為規(guī)則體而B被稱為規(guī)則頭。如果D中包含A的c。/。事 務也包含B,關聯(lián)規(guī)則A-B在置信度c的事務集合D中為真。換言之, 置信度c是條件概率p(B|A),其中p(S)是在D中發(fā)現(xiàn)作為事務T的子集的 S的概率。當D中s。/。的事務包含AUB時,規(guī)則A-B在事務集合D中具 有支持度(support) s。換言之,支持度s是在事務中出現(xiàn)集合A和集合 B中的項目的并集的概率。通常,數(shù)據(jù)挖掘的目的是準確發(fā)現(xiàn)所有滿足用戶定義的準則的關聯(lián)規(guī) 則和順序規(guī)則。用戶可以針對規(guī)則定義最小支持度或置信度,因為極少的 或柏f相關的事件可能對某些應用而言并不重要。用戶還可能只對特定項 目感興趣并且只希望搜索包含這些感興趣項目中的至少一個項目的模式?;诤蜻x模式的生成來搜索關聯(lián)規(guī)則和順序規(guī)則,然后相對于輸入數(shù)據(jù)評 估候選模式。然后通過向規(guī)則添加新項目來擴展這些被發(fā)現(xiàn)適用的候選模 式,從而產(chǎn)生新的更復雜的候選模式。由于輸入數(shù)據(jù)量可能很龐大并且模式可能很復雜,因此需要有效地組 織在整個候選模式空間的搜索以及從數(shù)據(jù)角度的候選模式評估。根據(jù)現(xiàn)有 技術通過候選模式空間的方式,可以將這些技術分為兩類算法。例如,如果沒有達到已定義的最小支持度,將立即應用某些過濾器準 則,因為這些過濾器準則由子模式繼承。諸如最小置信度的其他準則僅可 以應用于完整的規(guī)則,這阻止了其早期應用。第一種類別的算法是廣度優(yōu)先搜索。在這些算法中,從具有兩個項目 的筒單模式開始在整個候選模式空間的搜索。首先相對于輸入數(shù)據(jù)產(chǎn)生和 評估所有的兩項目模式。然后相對于輸入數(shù)據(jù)產(chǎn)生和評估所有的三項目模 式。通常,根據(jù)輸入數(shù)據(jù)事務評估每個候選模式。未評估的候選模式通常 存儲在存儲器中。另一方面,輸入數(shù)據(jù)通常不存儲在存儲器中而是從數(shù)據(jù) 源讀取。廣度優(yōu)先搜索的實例可以在"Fast Algorithms for Mining Association Rules"(用于挖掘關聯(lián)規(guī)則的快速算法,作者Rakesh Agrawal 和Ramakrishnan Srikant,第20屆超大型數(shù)據(jù)庫(VLDB )國際^i義的會 議記錄,1994年)中找到。第二種類別的算法是深度優(yōu)先搜索。在這些算法中,候選模式集合的 評估從第 一種子候選模式開始,并在轉到其他候選模式之前評估其所有同 胞。作為深度優(yōu)先搜索算法的一個實例,考慮"Sequential pattern mining using a bitmap R印resentation"(使用位圖表示挖掘順序才莫式,作者Jay Ayres等,關于知識發(fā)現(xiàn)和數(shù)據(jù)挖掘的ACM SIGKDD國際會議的會議記 錄,2002年,429-435頁)中描述的算法。在此算法中,輸入數(shù)據(jù)被轉換 為二進制格式并存儲在存儲器中?;顒訑?shù)據(jù)記錄歷史(其用于維護有關哪 些數(shù)據(jù)記錄(事務)與特定模式相關的信息)也被保存在存儲器中。在特定情況下,這些公知的數(shù)據(jù)挖掘算法具有缺點。取決于輸入數(shù)據(jù) 量(尤其是事務的平均大小)和候選模式空間的大小,廣度優(yōu)先搜索可能 較慢,因為需要掃描許多原始數(shù)據(jù)源并且因為需要根據(jù)所有事務評估每個 候選模式。另一方面,深度優(yōu)先搜索對于大量輸入數(shù)據(jù)可能會耗盡存儲器, 或因為根據(jù)輸入數(shù)據(jù)進行大量評估,當輸入數(shù)據(jù)被交換到盤時,深度優(yōu)先 搜索可能較慢。因此,需要一種用于確定輸入數(shù)據(jù)中的模式的有效方法,所述方法將 克服上述與7>知的數(shù)據(jù)挖掘技術有關的問題中的至少部分問題。發(fā)明內(nèi)容根據(jù)本發(fā)明的第一方面,提供了一種用于檢測包含多個事務的輸入數(shù) 據(jù)中的模式的計算機化方法,每個事務具有至少一個項目,所述方法包括 以下步驟接收用于感興趣模式的過濾器條件,根據(jù)所接收的過濾器條件,確定與生成候選模式有關的第 一適用過濾 器條件集合,選擇已評估的候選模式作為父候選模式并維護有關所述父候選模式的 評估信息,
通過擴展所述父候選模式并考慮第一過濾器條件集合來生成子候選模式,相對于共同在多個類似候選模式集合內(nèi)的輸入數(shù)據(jù)并根據(jù)有關所述父 候選模式的所述評估信息來評估所述子候選模式,每個集合具有最多預定 數(shù)量的類似候選才莫式并且至少一個集合具有至少兩個類似候選才莫式,以及遞歸地使用至少 一個成功通過評估步驟的子候選模式作為父候選模式。每個類似候選模式集合中的候選模式彼此的差別在于被添加到公共父候選才莫式的一個相應項目。可以通過以下步驟生成子候選模式將一個新 項目添加到父候選模式的第一個項目集合;將一個新項目添加到父候選模 式的最后一個項目集合;和/或將包括一個項目的新項目集合附加到父候選 模式。候選模式的預定數(shù)量可以取決于執(zhí)行所述計算機化方法的計算系統(tǒng)的特性??梢愿鶕?jù)所述輸入數(shù)據(jù)來計算統(tǒng)計度量以便在生成和評估步驟中使 用,所述統(tǒng)計度量包括以下項中的至少一項項目對統(tǒng)計信息和權重統(tǒng)計 信息。當應用所述第一過濾器條件集合時,根據(jù)所述統(tǒng)計度量來限制所述 候選模式的搜索空間。可以根據(jù)所述統(tǒng)計度量來確定要擴展哪些子候選模 式以及擴展子候選模式的順序。所述過濾器條件可以包括至少 一個基于以下項中的至少一項的條件 權重、關于輸入數(shù)據(jù)的總權重、支持事務的平均權重、規(guī)則體的權重、規(guī) 則頭的權重、關于輸入數(shù)據(jù)的規(guī)則頭的總權重、關于輸入數(shù)據(jù)的規(guī)則體的 總斥又重,以及可訪問的其他總權重??梢栽诒硎据斎霐?shù)據(jù)中的事務集合的壓縮數(shù)據(jù)結構中提供所述輸入數(shù) 據(jù)。所述壓縮數(shù)據(jù)結構具有事務集合中不同項目的標識符的列表、指示 所述列表中的標識符數(shù)量的信息,以及指示所述事務集合中所述不同項目 的存在的位字段信息,根據(jù)所述列表組織所述位字段信息以便于相對于所 述事務集合來評估模式。可以針對所述位字段信息使用位圖操作評估所述 候選模式。
可以維護表示所述輸入數(shù)據(jù)中的事務、已評估的候選模式、已評估的 候選模式的評估信息、要評估的候選模式,以及結果模式的數(shù)據(jù)結構,并 且可以根據(jù)可用的總存儲器和所述數(shù)據(jù)結構的使用,動態(tài)確定在生成和評 估子候選模式期間要將哪些數(shù)據(jù)結構保存在存儲器中以及要將哪些數(shù)據(jù)結 構放置到盤??梢灾辽贋榈谝粩?shù)據(jù)結構指示在確定要將哪些數(shù)據(jù)結構保存 在存儲器中時是否應將所述第一數(shù)據(jù)結構按優(yōu)先順序排列。此外,可以至 少為第二數(shù)據(jù)結構指示從盤的最近取回時間,以便根據(jù)所述最近取回時間 確定要將哪些數(shù)據(jù)結構保存在存儲器中??梢砸韵铝懈袷街痪S護所述父候選模式的評估信息指示為所述父 候選模式的支持度^故出貢獻的輸入數(shù)據(jù)事件的第一位字段,所述第一位字 段的長度等于輸入數(shù)據(jù)事件的數(shù)量;指示為所述父候選模式的支持度做出 貢獻的輸入數(shù)據(jù)事件的第二位字段,所述第二位字段的長度等于為所述父 候選模式的另一父模式的支持度做出貢獻的輸入數(shù)據(jù)事件的數(shù)量;以及與 為所述父候選模式的支持度^t出貢獻的兩個連續(xù)輸入數(shù)據(jù)事件之間的輸入 數(shù)據(jù)事件數(shù)量有關的信息。在此,輸入數(shù)據(jù)事件是以下項之一 一個事務 和一組事務??梢愿鶕?jù)所述父候選模式的支持度來選擇所述父候選模式的 評估信息的格式??梢栽谒鲈u估步驟中在指示為相應子候選模式的支持度做出貢獻的 輸入數(shù)據(jù)事件的位字段內(nèi)維護所述子候選^t式集合的評估信息,其中輸入 數(shù)據(jù)事件是以下項之一 一個事務和一組事務。所述位字段的長度等于輸 入數(shù)據(jù)事件的數(shù)量。每個子候選模式集合的位字段的數(shù)量是為相應父模式 的支持度做出貢獻的輸入數(shù)據(jù)事件的數(shù)量??梢愿鶕?jù)所接收的過濾器條件,確定與評估所述子候選模式有關的第 二適用過濾器集合,以及考慮與評估所述子候選才莫式有關的所述第二過濾 器條件集合。此外,可以根據(jù)所接收的過濾器條件,確定在確定結果模式 期間適用的第三過濾器條件集合,考慮與評估所述子候選模式有關的所述 第三過濾器條件集合,以及將通過所述第三過濾器條件集合的已有效評估 的候選模式輸出為結果模式。 根據(jù)本發(fā)明的第二方面,提供了一種存儲在計算機可用介質(zhì)上的包括 計算機可讀程序指令的計算機程序產(chǎn)品,當所述計算枳4呈序產(chǎn)品被加載到 計算機時,所述指令將導致所述計算機執(zhí)行如上所述的方法。根據(jù)本發(fā)明的第三方面,提供了 一種用于檢測包含多個事務的輸入數(shù) 據(jù)中的模式的計算機系統(tǒng),每個事務具有至少一個項目,所述計算機系統(tǒng)被配置為接收用于感興趣模式的過濾器條件,根據(jù)所接收的過濾器條件,確定與生成候選模式有關的第 一適用過濾 器條件集合,選擇已評估的候選模式作為父候選模式并維護有關所述父候選模式的 評估信息,通過擴展所述父候選模式并考慮第一過濾器條件集合來生成子候選模式,相對于共同在多個類似候選才莫式集合內(nèi)的輸入數(shù)據(jù)并根據(jù)有關所述父 候選模式的所述評估信息來評估所述子候選模式,每個集合具有最多預定 數(shù)量的類似候選模式并且至少一個集合具有至少兩個類似候選模式,以及 遞歸地使用至少 一個成功通過評估的子候選模式作為父候選模式。 要理解的是,可以例如相對于原始輸入數(shù)據(jù)、預處理輸入數(shù)據(jù)(其中 例如原始項目標識符已被替換為唯一整數(shù))或壓縮輸入數(shù)據(jù)進行類似候選 模式集合中的候選模式的評估。除了評估類似候選模式集合之外,以下詳 細說明提供了有關壓縮輸入數(shù)據(jù)以及有關適合數(shù)據(jù)挖掘的動態(tài)存儲器管理 的某些詳細信息。
在附圖中,通過實例而非限制的方式示出了本發(fā)明,這些附圖是 圖1示意性地示出了根據(jù)本發(fā)明的可用于數(shù)據(jù)挖掘的計算系統(tǒng); 圖2示出了作為實例的其中相對于類似候選模式集合中的輸入數(shù)據(jù)評 估候選^f莫式的方法的流程圖; 圖3a、 3b和3c示出了根據(jù)公共父模式生成類似候選模式的某些實例; 圖4示出了作為實例的將父模式擴展為子模式的方法的流程圖; 圖5示出了作為實例的評估類似候選模式集合中的候選模式的方法的 更詳細的流程圖;圖6a、 6b和6c示出了作為實例的存儲父候選模式的評估信息的過程; 圖7a、 7b、 7c和7d示出了作為實例的以二進制格式有效地壓縮輸入 數(shù)據(jù)的數(shù)據(jù)結構;圖8示出了作為實例的將事務集合中包含的數(shù)據(jù)壓縮為特定數(shù)據(jù)結構 的方法的流程圖;圖9a和9b示出了作為實例的壓縮事務集合中包含的數(shù)據(jù)的進一步方 法的流禾呈圖;圖10a、 10b和10c示出了作為實例的相對于壓縮后的輸入數(shù)據(jù)檢驗關 聯(lián)規(guī)則的方法的流程圖以及所述方法的詳細信息;圖11示出了作為實例的相對于壓縮后的輸入數(shù)據(jù)檢驗類似規(guī)則集合 中的關聯(lián)規(guī)則的方法的流程圖;圖12a、 12b和12c示出了作為實例的相對于壓縮后的輸入數(shù)據(jù)檢驗類 似關聯(lián)規(guī)則集合中的關聯(lián)規(guī)則的方法的更詳細流程圖以及所述方法的詳細 信息;圖13a、 13b和13c示出了作為實例的相對于壓縮后的輸入數(shù)據(jù)檢驗順 序規(guī)則的方法的流程圖以及所述方法的詳細信息;以及圖14示意性地示出了作為實例的適合數(shù)據(jù)挖掘應用的動態(tài)存儲器管理。
具體實施方式
在下文中,討論了通過確定輸入數(shù)據(jù)中的才莫式進行數(shù)據(jù)挖掘。在下面 的說明中,術語"模式"是指順序、關聯(lián)規(guī)則和/或順序規(guī)則。本發(fā)明的實施例采用以下功能中的至少一種功能評估類似候選^^莫式 集合中的候選模式;高效地存儲父候選^^式的評估信息;將輸入數(shù)據(jù)高效 地壓縮為二進制格式;相對于壓縮后的輸入數(shù)據(jù)評估候選模式;處理權重 信息;以及在數(shù)據(jù)挖掘應用中動態(tài)地管理存儲器。圖l示出了可用于挖掘數(shù)據(jù)庫或其他輸入信息源的計算機系統(tǒng)10。具 體地說,計算機系統(tǒng)10可用于根據(jù)本發(fā)明的實施例進行數(shù)據(jù)挖掘和/或處 理輸入數(shù)據(jù)。在圖l示出的特定計算機體系結構中,系統(tǒng)10可以包括一個 或多個數(shù)字信息處理裝置,例如客戶端計算機12和服務器計算機14。所 述服務器計算機可以是位于紐約阿蒙克的IBM公司制造的主計算機,并且 使用以商標z/OS出售的多任務操作系統(tǒng)。服務器計算機14可以備選地為 UNIX計算機、Windows NT Server或使用AIX操作系統(tǒng)的IBM RS/6000 工作站。服務器計算機14可以包括數(shù)據(jù)庫系統(tǒng),例如DB2或ORACLE, 或者可以具有在其他數(shù)據(jù)存儲介質(zhì)上的文件中的數(shù)據(jù)。顯而易見,可以使 用上述或圖1中示出的其他體系結構。例如,客戶端計算機12的功能可以 結合到服務器計算機14中并且反之亦然。服務器計算機14本身可以;U良 務器計算機群集。如圖所示,服務器計算機14的操作系統(tǒng)可以托管數(shù)據(jù)挖掘程序/功能 16,后者可作為一系列計算機可執(zhí)行指令由服務器計算機14內(nèi)的處理器執(zhí) 行。這些計算機可執(zhí)行指令可駐留在存儲器中,例如,駐留在服務器計算 機14的RAM (隨MM儲器)或服務器計算機14的硬盤中。備選地, 所述指令可以包含在帶有計算機可讀介質(zhì)(如計算機磁盤、光盤)的數(shù)據(jù) 存儲設備中或稱為記憶棒的設備中。所述指令可以計算機程序產(chǎn)品的形式 提供,所述計算枳一呈序產(chǎn)品通常包含在計算機可讀介質(zhì)上。圖2-14涉及可以在數(shù)據(jù)挖掘中應用的各種功能。本領域的技術人員將 理解,可以在數(shù)據(jù)挖掘程序16或可能單獨的輸入數(shù)據(jù)壓縮程序17中實現(xiàn) 參考這些圖形描述的方法和數(shù)據(jù)結構。備選地,本發(fā)明的某些功能可以在 硬件中實現(xiàn)。還可以使用軟件和硬件的適當組合來提供適于執(zhí)行根據(jù)本發(fā) 明的實施例的方法的設備。輸入數(shù)據(jù)壓縮程序17可以駐留在與數(shù)據(jù)挖掘程 序16分離的單獨服務器計算機中。返回圖1,數(shù)據(jù)訪問程序和實用工具18通常可使數(shù)據(jù)挖掘程序16訪
問一個或多個數(shù)據(jù)庫20、壓縮后的輸入數(shù)據(jù)21和/或包含有關一個或多個 事務的數(shù)據(jù)的平面文件(即文本文件)22。備選地,數(shù)據(jù)訪問程序和實用 工具18可以從未駐留在服務器計算機14上的遠程數(shù)據(jù)庫服務器檢索數(shù)據(jù), 或者挖掘程序16可以嵌入數(shù)據(jù)庫20中。壓縮后的輸入數(shù)據(jù)21可以駐留在 服務器計算機14的存儲器和/或盤中。數(shù)據(jù)挖掘程序16通常輸出找到的模 式,或至少輸出那些用戶感興趣的模式。找到的模式可存儲在可由客戶端 計算機12訪問的數(shù)據(jù)庫20或單獨的結果存儲庫24中。如圖1所示,客戶端計算機12可以包括數(shù)據(jù)挖掘接口 26,該接口與 數(shù)據(jù)挖掘程序類似,可以以適當?shù)挠嬎銠C程序代碼實現(xiàn)。其中,所述接口 用作建立模式準則(有關詳細信息,請參閱下文中有關這些準則的討論) 的輸入機制。此外,客戶端計算機12優(yōu)選地包括輸出模塊28,其用于將 結果存儲庫24中存儲的結果輸出/顯示到圖形顯示器30、打印裝置32或數(shù) 據(jù)存儲介質(zhì)34。在下文中,將詳細介紹數(shù)據(jù)挖掘程序16的功能特征。首先介紹數(shù)據(jù)挖 掘中的常用符號和概念。如上面針對相關領域描述的,對于輸入數(shù)據(jù),存在一個項目集合I和 一個事務T的集合D。這些項目通常存在兩個嵌套的分組級別。同時出現(xiàn) 的所有項目將形成一個單個事務T (或者,換言之,形成一個項目集合)。 通常,每個事務T具有唯一的事務標識符TA—ID。 TAJD標識符因此將 屬于單個事務T的項目綁定在一起。若干個事務或項目集合可以形成一個 由標識符TA_Group—ID標識的事務組。TA—Group_ID因此將某些事務 TA綁定在一起。如果沒有臨時或其他的事務排序,則通常丟失事務組的 第二嵌套。因此,用于數(shù)據(jù)挖掘的輸入數(shù)據(jù)記錄包含TA一ID、 一個或多個ITEM 值、以及一個可選的TA—GroupjD。作為某些實例,TA—ID可以表示客 戶購買分析中的購買時間、特定生產(chǎn)步驟或失敗的日期和時間、特定網(wǎng)頁 點擊的時間,或距起點的距離。作為TA_Group—ID的某些實例,該標識 符可以表示客戶分析中的客戶標識符、生產(chǎn)和/或質(zhì)量控制中的產(chǎn)品標識
符,或Web使用跟蹤中的用戶標識符。例如,ITEM字段可以分別表示所 購商品的標識符、部件或生產(chǎn)步驟標識符或網(wǎng)頁地址。除了事務輸入數(shù)據(jù)之外,還可以進一步定義項目的分類(taxonomy )。 分類指層次結構的其他級別。分類信息聲明特定項目(子分類)屬于特定 的項目組(父分類)。模式的特定屬性是所感興趣的,以便測定它們的統(tǒng)計或業(yè)務重要性。 與實際問題和目的尤其相關的一個特定類別的模式力現(xiàn)則模式。規(guī)則是類 型"左側"—"右側"的謂語。左側稱為前項部分(antecedent part)或 規(guī)則體,右側稱為后項部分(consequent part)或規(guī)則頭。"卄"的語義 取決于用例和可用數(shù)據(jù)的類型。當查找若干項目、事實或事件之間的關聯(lián) 時,"的意思為"與之關聯(lián)"。當查找順序規(guī)則時,"的意思為 "在此之后發(fā)生"。在以上相關領域的部分中定義了關聯(lián)規(guī)則的支持度s 和置信度c。在下文中,使用b來標記規(guī)則體,使用h來標記規(guī)則頭。關 聯(lián)規(guī)則p :b( p )=> h( p )的作用度(lift) I將其統(tǒng)計顯著性計算為規(guī)則置信 度和規(guī)則預期置信度e的比率,可以根據(jù)項目在統(tǒng)計上獨立發(fā)生的假設將 所述預期置信度計算為e( p )=s(h( p ))。因此關聯(lián)規(guī)則的作用度1為 l( P )=c( p )/s(h( p ))。還可以為順序規(guī)則定義支持度、置信度和作用度。順序規(guī)則C7的支持 度值指示支持CT的事務組數(shù)和事務組總數(shù)之間的比率。順序規(guī)則CJ的置信度值定義為完全支持a的事務組數(shù)和支持a體的事務組數(shù)之間的比率。最 后,順序規(guī)則CJ的作用度1為C7的實際支持度和其預期支持度e( C7 )之間的 比率。因此順序規(guī)則的作用度為l(a)=c(a)/s(h(a))。出于實際目的,通常有必要將模式集合限制為可管理的大小。為此, 習慣上根據(jù)特定準則來過濾完整的模式集合。這些準則基于數(shù)字屬性和模 式內(nèi)容。用戶可能希望通過定義計數(shù)約束來將結果模式數(shù)限制為最大數(shù)。 作為選擇準則,可以使用任何數(shù)字屬性,例如置信度或支持度。范圍約束 僅允許位于諸如支持度或置信度之類的數(shù)字屬性的給定值范圍內(nèi)的模式。 使用范圍約束,結果模式數(shù)仍取決于數(shù)據(jù)。最后,用戶可能僅對在模式體 或才莫式頭內(nèi)具有(或沒有)特定項目的^^式感興趣。此類約束稱為項目約 束。如果項目/項目集合/模式的支持度超過用戶指定的最小支持度準則,則 將所述項目、項目集合或模式稱為"頻繁的"。作為一個實例,考慮確定來自計算機芯片生產(chǎn)線的錯誤產(chǎn)出的可能原 因的問題。在制造工藝中,要測量大量參數(shù)。這些參數(shù)可以包括溫度、每 立方米的灰塵顆粒數(shù)以及提供半導體材料的公司名。在隨后對所生產(chǎn)的芯 片的測試中,將測量芯片中是否存在任何邏輯4綠。在眾多結果模式中, 可能具有下列規(guī)則(1) 如果50° <T<60°并且材料由A公司提供,則出現(xiàn)邏輯錯誤。(2) 如果出現(xiàn)邏輯錯誤以及若干灰塵顆粒,則材料由B公司提供。 假設規(guī)則(1)支持度=0.02 %并且置信度為28 % ,規(guī)則(2)的支持度為0.9 %并且置信度為85 % 。現(xiàn)在可以由指定最小支持度為0.1 %的范圍約 束來排除規(guī)則(1)??梢耘懦?guī)則(2),因為用戶在規(guī)則頭中設置了僅 允許具有"邏輯錯誤"的規(guī)則的項目約束??梢詾檩斎霐?shù)據(jù)定義權重信息。例如,可以存在與每個項目(或與某 些項目,例如,默認權重與其余項目關聯(lián))關聯(lián)的單獨權重。權重可以代 表項目的成本、價格、物理重量、風險或任何其他連續(xù)的數(shù)字屬性。對于聚合的項目(也就是說,對于項目集合、規(guī)則、順序或順序規(guī)則), 與所述聚合關聯(lián)的相關權重信息可以是(基于)項目的權重或(基于)事 務的4又重。支持聚合的事務或事務組的(基于)項目的權重本質(zhì)上是事務或事務 組中的在聚合內(nèi)出現(xiàn)的那些項目的權重之和。事務(組)中那些未在聚合 中出現(xiàn)的項目將不會對事務(組)的項目權重做出貢獻。使用事務(事務 組)的項目權重,可以計算所有支持事務的平均權重。(基于)事務的權 重是支持聚合的事務(組)中的所有項目的權重之和。換言之,事務(組) 中項目的所有單個權重都將對事務權重做出貢獻。使用權重信息,可以定義各種過濾器準則。對于單個項目或項目聚合, 至少下面的過濾器準則是相關的權重、支持度乘以權重(全部輸入數(shù)據(jù)
的總權重)、支持項目聚合的事務的平均權重,以及支持項目或聚合的事 務組的平均權重。對于具有規(guī)則體(左側)和規(guī)則頭(右側)的規(guī)則模式,額外地以下過濾器準則可以是相關的規(guī)則體的權重、規(guī)則頭的權重、規(guī) 則頭的支持度乘以權重、規(guī)則體的支持度乘以權重,以及可訪問的額外總 權重。規(guī)則頭的支持度乘以權重是輸入數(shù)據(jù)中規(guī)則頭的總權重。該總權重 可以例如表示規(guī)則的總體業(yè)^Ht。同樣的,規(guī)則體的支持度乘以權重是 輸入數(shù)據(jù)中規(guī)則體的總權重。該總權重可以例如表示規(guī)則的前項部分的總 體業(yè)務價值。對此的了解可以例如幫助確定是否應從銷售中撤回規(guī)則后項 部分中的項目繼續(xù)出售某種本身沒有利潤的商品可以是有利的,其可以 吸引購買大量其他厚利商品(即指規(guī)則前項部分中的商品)的"優(yōu)質(zhì)"客 戶??稍L問的額外壽又重通過以下方式計算(l-confidence ) *absoluteBodySupport*confidence*weightOfHead。其中confidence指"規(guī) 則體—規(guī)則頭"規(guī)則的置信度,absoluteBodySupport指輸入數(shù)據(jù)中規(guī)則體 的總支持度。例如,可以在目標銷售中使用該過濾器準則它提供對額外 收益的估計,可以通過到規(guī)則體(而非規(guī)則頭)對于其為真的所有客戶的 目標郵寄來獲取該額外收益。符合聯(lián)系條件的客戶數(shù)為(l-confidence ) *absoluteBodySupport??梢云谕疃嗨?lián)系客戶的"置信度"的一小部 分將做出肯定響應,因為這是"規(guī)則體~>規(guī)則頭"的一般置信度。因此, 可訪問的額外權重例如表示目標營銷活動可取得的額外^的上限??梢詾橥诰蚰P偷腜MML3.1標準定義以下擴展以便結合權重信息。 可以至少為PMML元素<Item> 、 <Itemset> 、 <AssociationRule> 、 〈Sequence〉以及〈SequenceRule〉定義新才示i己〈weight〉。才示i己〈weight〉可以 至少具有以下屬性"mean" 、 "standardDeviation,, 、 "min" 、 "max" 和"type" 。 "type"屬性的意義將在下文描述。"Subset"表示權重統(tǒng)計 4言息指包含〈weight〉標i己的聚合(〈Item〉、 <Itemset>、 <AssociationRule>、 <Sequence>、 <SequenceRule> )本身的權重。"Total"表示權重統(tǒng)計信息 指支持包含〈weigh^標記的對象的事務(關聯(lián)模型)或事務組(順序模型) 的平均總權重。 在下文中,除了在檢查模式是否適合作為結果模式時以外,將使用項 目集合的順序作為模式。在關聯(lián)分析的情況下,這些順序的長度只能是長度2。圖2示出了相對于集合中的輸入數(shù)據(jù)來評估候選^^式的方法的流程 圖,每個集合包含類似的候選數(shù)據(jù)模式。因此,相對于輸入數(shù)據(jù)共同評估 候選模式集合。此外,在生成和評估候選模式的早期階段將考慮才莫式的過 濾器條件。優(yōu)選地,特定候選模式集合中的候選模式彼此的差別僅在于一個項目, 即被添加到它們的公共父模式的項目。每個候選模式集合都包含最多預定 數(shù)目的模式。該預定數(shù)目N取決于將在其中執(zhí)行數(shù)據(jù)挖掘程序的計算硬件。 該預定數(shù)目的典型實例包括32、 64和128。這些數(shù)字允許快速檢查候選才莫 式和相關輸入事務(以二進制格式存儲)之間是否一致。最優(yōu)值取決于硬 件體系結構。優(yōu)選地,將數(shù)字N選擇為可以由其上執(zhí)行挖掘程序的計算機 系統(tǒng)上的一個整數(shù)操作在一個時鐘周期內(nèi)處理的最大位數(shù)。這使能在單個 無符號整數(shù)變量(其被重新解釋為長度為N的位字段)內(nèi)高效地修改和存 儲所有被同時評估的候選模式(即,類似候選模式集合)的信息。例如, 對于輸入數(shù)據(jù)中的給定事務(TA)或事務組(TAG),單個此類位字段可 以指示對于N個候選模式中的哪些候選模式,給定TA或TAG將對該候 選模式的支持度做出關系。通過從公共父候選模式開始來生成候選模式,所述父候選模式通過一 個項目以不同的方式來擴展。初始父;f莫式的形式為"{iteml}, {item2},,。 可以通過在集合中添加項目或共同添加一個新集合來擴展這些初始父模 式,從而將生成以下形式的候選模式"{iteml, newltem}, {item2},,"{iteml}, {item2, newltem}""{iteml}, {item2}, {newltem}"圖3a、 3b和3c涉及生成子候選模式。 一般而言,通常采用以下方式 根據(jù)父候選模式(其可以是種子候選模式)來生成子候選模式??梢葬槍?創(chuàng)建子候選模式定義三種基本的擴展步驟。
第一個可能的擴展步驟是將一個新的項目添加到父模式的最后一個 項目集合。被添加的項目不能已經(jīng)存在于父模式的最后一個項目集合 中。在關聯(lián)規(guī)則中,被添加的項目不能出現(xiàn)在父規(guī)則內(nèi)的任何位置。圖3a示出了從父模式300a擴展的子模式301的實例。
第二個可能的擴展步驟是將包含一個項目的新項目集合附加到父模式。只能針對順序規(guī)則使用此步驟;所附加的項目是任意項目。圖3b 示出了從父模式300a擴展的子模式311的實例。
第三個可能的擴展步驟是將一個新的項目添加到父模式的第一個項 目集合。被添加的項目不能已經(jīng)存在于父模式的第一個項目集合中。 在關聯(lián)規(guī)則中,被添加的項目不能出現(xiàn)在父規(guī)則內(nèi)的任何位置。僅當 父候選模式只有兩個項目集合并且第二項目集合只有一個項目時,才 允許使用第三擴展步驟。如果沒有此約束,給定模式的構建路徑將不 唯一 ,并且會構建相同的模式并在候選才莫式擴展樹的不同位置處進行 驗證。圖3c示出了從父模式300b擴展的子模式321的實例。 作為進一步的實例,考慮父模式(A" {B}。作為擴展步驟l的實例, 可以構建以下子模式{A}、 {B,C}。作為擴展步驟2的實例,可以構建以 下子模式{A}、 {B}、 {C}。作為擴展步驟3的實例,可以構建以下子模式 {A,C}、 {B}。下面將結合圖4詳細說明父模式的擴展。在本發(fā)明的至少某些實施例中,在一步內(nèi)相對于輸入數(shù)據(jù)評估類似候 選模式集合。由于屬于一個集合的類似候選模式彼此的差別只是一個項目, 因此大部分評估工作只需針對集合進行一次,而不是針對每個單個候選模 式都進行一次。這是較之深度優(yōu)先搜索的一個明顯的優(yōu)點,在深度優(yōu)先搜 索中,必須針對每個單個候選模式重新進行全部的評估工作。返回圖2,在步驟201,為數(shù)據(jù)挖掘程序16提供模式的過濾器條件。 通常,用戶通過數(shù)據(jù)挖掘接口 26指定這些條件。在步驟202,對過濾器條 件進行分析來確定第 一過濾器條件集合、第二過濾器條件集合和第三過濾
器條件集合,將在生成候選模式時考慮所述第一過濾器條件集合,在評估 候選模式以確定它們是否適合作為未來的父候選模式時考慮所述第二過濾 器條件集合,在評估候選模式以確定它們是否為有效的結果模式時考慮所 述第三過濾器條件集合。不會以任何方式限制過濾器條件的數(shù)量。所述第一過濾器集合限制可能的擴展模式集合。作為一個實例,考慮從結果模式中排除特定項目E的過濾器。顯然,包含E的模式永遠不會通 過進一步的擴展而有效。所述第二過濾器集合限制潛在的候選模式集合。 作為一個實例,考慮將模式中的項目數(shù)限制為m的過濾器。包含m個項 目的模式本身可能是有效的,但是在進一步的擴展之后就不能再保持有效。 所述第三過濾器集合限制有效模式集合。作為一個實例,考慮指定最低置 信度的過濾器。從模式產(chǎn)生的規(guī)則本身可能不具有足夠的置信度,但是可 以通過添加更多的項目來增加置信度,使得它的子;f莫式可以生成潛在的結 果模式??梢詫⒁言谏衔闹薪榻B的項目權重準則和事務/事務組權重準則應用 于三種過濾器集合中的任意集合。將項目權重準則和事務(組)權重準則 應用于第一過濾器集合時,將使性能最大化。例如,如果存在最小項目權 重過濾器或最小事務權重過濾器,則可以在候選規(guī)則生成和檢驗開始之前 從輸入數(shù)據(jù)中除去單個項目或單個事務??梢栽诘诙偷谌^濾器集合中 使用上述所有的其他準則,也就是說,在根據(jù)輸入數(shù)據(jù)驗證了候選規(guī)則之 后。下面的代碼提取示出了如何在第三過濾器集合中應用4又重過濾器準則。l:oo丄 passesVJeight Filter = tMrue,'cioub-:e bo(iyW'e丄gh,— = .bo(iv'Weig'htStat:s .get—Mean < > ; (io u.b 二 e h e ^ cWe i g.h t 二 he3clWe i g h f二 S t a t s . ge t Me a n O '' double ruleWeight = hesdWeig'ht + bociyWeight. 7 doublo ':, AW eight , T_A, igh r_Stat:s getftear:( > ; if ( : 二-:.i 二匸o r ..丄s 二 niM 10'weciiRar1ge! ( RuleP丄l t::er : : BODVI^'E'工GHT,bodyWeight >望| :ifi一.te.r , is !TnAi, lovredR.ang^ ( Rra丄e:Filter : : H.E:ADWE工GH.T,hea.d.We.ig.ht. )j |.iru leWe igh L >i | :f i :—r.er: , is.:riAl lowec!Range ( RuleFilter : : SUP3 T工MESWE工GHT,support* r"uleWeight )| ! :filter .丄sInAliow^ciRange ( Rule5'ilter : : TOTALWEIGHT ,TAWe丄ght, >I I:f i丄t:er , is二nA上IcvweciRange ( Rulc Fi丄ter : : ACCE S S VOLUME,headWeighr*《1.confidence} *absSupport)〉 《 p a 3 s e '3 w e i g h t F1 .i 11 e r" = f a 1 s e
返回圖2,確定和評估初始候選模式集合(步驟203)。在步驟204, 從該候選模式集合將被評估的候選模式選擇為父候選模式并維護此父候選 模式的評估信息。在步驟205,通過擴展父候選模式并考慮第一過濾器條 件來生成子候選模式。通常使用上述三種擴展步驟中的至少一種來實現(xiàn)此 擴展。在步驟206,相對于輸入數(shù)據(jù)評估類似候選模式集合中的子候選模 式并考慮第二過濾器條件集合。此評估基于有關父候選模式的評估信息。 由于子模式的格式,作為它們父輩的超集,只需訪問那些,iL良現(xiàn)與父模式 匹配的輸入事務。所有被評估為潛在父模式的模式都被添加到候選模式集 合(更精確地說,其可以是堆棧而不是集合)。在步驟207,將維護有關 這些被肯定評估的子候選模式的評估信息以供未來使用。那些被使用第三 過濾器條件集合評估為有效結果模式的模式將存儲為結果模式。在步驟208,將檢查是否存在可用作父候選模式的其他候選模式。方 法200繼續(xù)重復步驟203-208,直到已評估所有的候選^t式。當沒有其他候 選模式可用作潛在父模式時,處理結束(209)。將理解,可以使用各種記錄方法來跟蹤哪些候選;f莫式已被評估并且可 以使用各種方法來維護與已被評估的候選模式的評估信息有關的信息。圖4示出了將父模式擴展為子模式的過程,圖4對圖2中的步驟205 做了更詳細的說明。圖4中的流程圖與參考圖3a、 3b和3c描述的三種擴 展步驟一致。在步驟401,首先檢查當前的父模式是否滿足下面的要求。 首先,父模式的最后一個項目集合應只包含一個項目,第二,模式中的項 目集合數(shù)目是兩個,第三,模式的第一個項目集合應是可擴展的。換言之, 模式的形式為山,l2,…ia—{1}。如果滿足這些條件,則在步驟402,通過向 父模式的第一集合添加一個項目(這與上面參考圖3c描述的第三擴展步驟 一致)來最多生成N個不同但類似的模式。如上所述,值N是預定的數(shù)目, 通常取決于計算枳^更件。從步驟402產(chǎn)生的實際模式數(shù)可以小于N,具體 取決于可添加到第一項目集合的項目數(shù)。此后,在步驟408返回生成的最 多N個子才莫式以^更才艮據(jù)輸入數(shù)據(jù)進行評估。如果不滿足步驟401中的條件,則在步驟403檢查父模式的最后一個
項目集合是否可擴展。如果是,則在步驟404通過向模式的最后一個項目 集合添加一個項目來最多生成N個不同但類似的子模式。此步驟403與上 面參考圖3a描述的第一擴展步驟一致。此后,在步驟408返回生成的最多 N個類似子模式以便進行評估。如果不滿足步驟403中的條件,則在步驟 405進行進一步的檢查。在步驟405,檢查是否可通過向模式添加新項目(如 圖3b所示,可以添加到規(guī)則頭,也可以添加到規(guī)則體)來擴展父模式。如 果是,則在步驟406創(chuàng)建最多N個類似的子模式,并在步驟408返回這些 子模式以便進行評估。如果不滿足步驟401、403或405中的任何一個M, 則在步驟407中不返回任何返回候選模式。
如果步驟402/404/406中的任一步驟將產(chǎn)生N個以上可能的類似子模 式,則相應地進行記錄并在之后的循環(huán)中評估其余的子模式。通常,從不 同的步驟402/404/406產(chǎn)生的子模式將不在一個步驟中進行評估,因為評估 結果差異可能太大而無法進行有效處理。但實際上,步驟402/404/406生成 的子模式遠多于N。在步驟408返回的某些類似候選模式集合可能只包含 一個要評估的候選模式。
圖5示出了方法500的流程圖,其中輸入數(shù)據(jù)被轉換為二進制格式以 節(jié)省存儲器并允許對候選模式集合進行更有效的評估。此外,將計算輸入 數(shù)據(jù)的初始統(tǒng)計信息以更有效地評估候選模式。在步驟504或508評估候 選模式時,可以使用這些初始統(tǒng)計信息除去某些成為這些初始結構的超集 的候選模式,例如項目對。此外,在特別適合相對于二進制輸入數(shù)據(jù)評估 候選模式的數(shù)據(jù)結構中保存候選模式的評估歷史。將理解,盡管這三種特 性存在于圖5示出的此組合中,但是其中任意一種都能獨立使用或存在于 其他特性組合中,以便微調(diào)參考圖2描述的方法。換言之,可以通過創(chuàng)建 二進制形式的輸入數(shù)據(jù);計算輸入數(shù)據(jù)的初始統(tǒng)計信息;和/或使用特定的 二進制數(shù)據(jù)結構來存儲候選^t式的評估歷史,來增強圖2中示出的方法。 此外,可以存在下面介紹的各種其他特性的組合,當本領域的技術人員閱 讀本說明時,這是顯而易見的。
在步驟501,計算輸入數(shù)據(jù)的初始統(tǒng)計信息。該步驟包括完整傳遞所
有輸入數(shù)據(jù)(例如,位于數(shù)據(jù)庫表或平面文件中的數(shù)據(jù))。將收集頻繁項
目和頻繁項目對。頻繁項目集合F是頻繁作為輸入事務T的子集出現(xiàn)的項 目I的子集。這些項目和項目對統(tǒng)計信息存儲在數(shù)據(jù)結構中,所述數(shù)據(jù)結 構優(yōu)選地為項目散列表,其中64位散列表示項目名稱。如果已對項目定義 了一個或多個分類,則將項目(對)統(tǒng)計信息擴展到在輸入數(shù)據(jù)中找到項 目的所有父分類。在不可能出現(xiàn)的散列沖突情況下,重新執(zhí)行步驟501并 使用另一散列種子重新創(chuàng)建散列表。但是,如果使用64位散列值,則根本 不太可能出現(xiàn)散列沖突。在這種情況下,平均在1019個項目名稱中僅出現(xiàn) 一次散列沖突。可以通過丟棄所有不頻繁(即頻率小于用戶指定的最低支 持度值)的項目和項目對,或者丟棄由已定義的另一規(guī)則過濾器準則停用 的項目和項目對,來結束步驟501。將為剩余的每個項目指定一個介于0 到弁frequentltems-l之間的整數(shù)項目ID。更精確地說,還有必要保留那些 具有頻繁父分類的不頻繁項目。這些不頻繁的項目也將獲得ID (#frequentltems,... ,#frequentltems+#infrequentltems-l)。
如果為輸入數(shù)據(jù)定義了權重信息,則還可以在步驟501確定項目權重 統(tǒng)計信息。權重信息可以例如存儲在上述項目散列表(或其他數(shù)據(jù)結構) 中。項目權重統(tǒng)計信息通常至少包括每個項目和每個父分類的平均權重。 此外,項目權重統(tǒng)計信息可以包括最小和/或最大值、標準偏差和/或有關項 目和父分類的統(tǒng)計分布(例如,分位數(shù)、偏度和/或峰度)的進一步信息。 可以丟棄所有權重統(tǒng)計信息違反基于權重的過濾器準則的那些項目和父分類。
在步驟502,創(chuàng)建二進制形式的輸入數(shù)據(jù)。下文參考圖7a到9b描述 了可能的詳細信息。此步驟包括第二次完整傳遞輸入數(shù)據(jù)以及將數(shù)據(jù)轉換 為二進制表示。在二進制表示中,所有屬于一個TA—group—ID (或者如果 不存在TA—group—ID,則為TA—ID )的輸入數(shù)據(jù)記錄都被J故置在一個二進 制數(shù)據(jù)對象(名為TAGroup)中。在該TAGroup二進制數(shù)據(jù)對象中,由 16位或32位整數(shù)ID替代文本項目值。將完全丟棄不頻繁的項目。在若干 DataPage對象中組織這些特定于事務或特定于事務順序的二進制數(shù)據(jù)對
象。每個DataPage對象的大小約為用于數(shù)據(jù)挖掘程序的總體可用RAM存 儲器的2 % - 5 % 。表示輸入數(shù)據(jù)的DataPage對象通常駐留在RAM內(nèi), 但是如果沒有足夠的存儲器來同時存儲所有對象,則每個DataPage對象
可以將自身轉儲到盤并在再次需要時透明地重新取回自身。下面將參考圖 14更詳細地介紹這種動態(tài)的存儲器管理。
執(zhí)行步驟502之后,不再需要在步驟501中形成的項目散列表?,F(xiàn)在 通過每個項目的16位(或32位)ID來描述每個項目。因此,可以丟棄項 目和項目對散列表,并將剩余的頻繁項目ID及其頻繁對信息以及它們的 原始(文本)名稱存儲在簡單陣列中(而不是存儲所有頻繁項目ID)。此 時,輸入數(shù)據(jù)由TAGROUP二進制對象以及將陣列索引(項目ID)與文 本名稱關聯(lián)的陣列來表示。不再需要訪問原始數(shù)據(jù)源。
在步驟503,按照上文參考步驟203所述來計算初始(種子)候選模 式。在步驟504,通過使用表示輸入數(shù)據(jù)的二進制數(shù)據(jù)對象來相對于輸入 數(shù)據(jù)評估這些初始候選才莫式。下文參考步驟508介紹評估候選模式的詳細 信息。
在步驟505,檢查是否存在新的可擴展候選模式。當存在更多可以添 加的項目并且沒有禁止擴展的過濾器條件時,候選模式是可擴展的。 一個 此類過濾器條件可以是模式中的最大項目數(shù)。如果測試505發(fā)現(xiàn)新的可擴 展候選模式(來自504中的評估),則在步驟506,將這些候選模式及其 評估信息推到堆棧。
在步驟507,使用上述三種擴展步驟將選擇的候選模式擴展N倍。此 處確保沒有違反任何過濾器條件。此類過濾器條件可以例如是才莫式不應同 時包含項目A和項目B。
在步驟508,使用表示輸入數(shù)據(jù)的二進制數(shù)據(jù)對象相對于輸入數(shù)據(jù)評 估N個類似候選才莫式的集合。在評估期間,將考慮第三過濾器條件集合, 該集合限制結果才莫式集合。例如,檢查可從模式生成的所有規(guī)則的置信度 是否滿足過濾器。如果找到結果模式,則現(xiàn)在可以將它們存儲為最終結果 的一部分。
重復執(zhí)行步驟505-508,直到?jīng)]有更多新的可擴展候選模式。然后方法 500繼續(xù)步驟509,其中檢查是否到達候選模式的頂層。如果否,則在步驟 510將候選模式從堆棧中刪除。在步驟509,將該候選模式擴展N倍。
可以理解圖5示出了對N個類似候選模式集合中的候選模式進行評估 以及將二進制格式用于輸入數(shù)據(jù)的組合。但是,將認識到在N個類似候選 模式集合中評估提高了效率,這與輸入數(shù)據(jù)的格式無關。如將在下文參考 圖11說明的,壓縮的二進制輸入數(shù)據(jù)格式(例如,圖7a和7b)和評估集 合中候選模式的組合非常有效。
在下文中,將父模式的評估信息稱為父模式歷史信息。對于輸入數(shù)據(jù) 中的每個事務(TA)或事務組(TAG),父模式歷史信息優(yōu)選地包括一個 布爾值,指示給定的TA或TAG是否為父^^式的支持度做出貢獻。那些為 模式的支持度做出貢獻的TA或TAG在此稱為'活動,TA或TAG。在 下文中,假設輸入數(shù)據(jù)中具有Ntot個TA (在關聯(lián)規(guī)則挖掘中)或TAG (在順序規(guī)則挖掘中),它們中的Nact個對于給定的父模式是活動的。
然后,父模式的評估信息(即,父模式歷史信息)的基本存儲方案可 以如下所述。父^=莫式歷史信息存儲在長度為Ntot的l位字段中,每個位表 示NTOT個TA或TAG中的一個,位=1表示活動的TA或TAG,位=0表 示不活動的TA或TAG。圖6a示意性地示出了長度為16 (NTOT=16)的 位字段600。位字段600中存儲的父模式歷史信息包含以下信息從O開 始為TA或TAG編號,TA/TAG 1、 3、 6、 7、 8、 11、 12和14為給定父 規(guī)則的支持度做出貢獻。
由于TA或TAG只在該TA/TAG為父模式的支持度做出貢獻時才為 子候選模式的支持度做出貢獻,因此只需針對父模式的活動TA/TAG評估 從父模式擴展的類似候選模式集合。圖5a示意性地示出了相對于TA/TAG 的有關類似候選^^莫式集合(所述集合具有N個候選模式)的評估信息如何 存儲在一個單個無符號整數(shù)變量中,所述變量被重新解釋為長度為N的位 字段。無符號整數(shù)變量611包含指示編號為1的TA/TAG是否為N個候選 模式集合的支持度做出貢獻的信息。同樣地,無符號整數(shù)變量612和613
包含有關編號為3和6的TA/TAG是否為N個類似候選模式集合的支持度 做出貢獻的信息。其余包含N個類似候選模式集合的評估信息的無符號整 數(shù)變量未在圖6a中示出。關于存儲活動父模式歷史信息(父模式的評估信息),下文將介紹某 些變型。如果父模式支持度足夠低,則圖6a中示出的方案的第一改進是選擇"稀疏"存儲格式。如果Naet/NTO^ 1/8,即如果父模式的相對支持度至少為12.5%,則圖6a中示出的逐位存儲方案通常為最有效的方案。存儲器消耗為NTOT/8字節(jié),與Naet無關。如果支持度低于12.5 % ,則存儲相鄰活動TA/TAG之間的步長通常更有效。圖6b中示意性地示出了這一情況, 其中以1000個TA或TAG(標記為0,…,999 )作為實例,其中TA或TAG 3、 250、 493和617是活動的,可以將父模式歷史信息存儲在4個1字節(jié) 無符號整數(shù)中,所述整數(shù)指示活動TA/TAG之間的不活動TA/TAG的編 號即3, 246 (圖6b中的間隔621) 、 142 (間隔622)和123 (間隔623)。 這是因為在第一個活動TA/TAG之前具有3個不活動的TA或TAG,在 第一個和第二個活動ta或tag之間具有246個不活動的ta或tag, 在圖6b中的實例中依此類推。如果遇到步長2 255,則必須將該步分為兩個或更多的分步;例如,步長510可以被束示為255、 255、 0。此處第一 個255指示該255和0是其值將被添加到一起的子步。更一般地說,如將 步長存儲為l字節(jié)無符號整數(shù),則可以示出所需的存儲器量永遠不超過值 Nact+((NTOT-Nact+256)div256)+(NTOTdiv 65536)。因此,如果相對父支持度 為12.5%,則這種存儲格式的存儲器消耗約為NTOT/8,并且對于非常低的 支持度,將降低到約Ntot/255。作為第二個改進,可以從2個以上不同的存儲格式中進行選擇,具體 取決于當前被處理的父模式的Nact/NTOT。此第二改進是參考圖6b描述的 第一改進的歸納。例如,用戶可以針對Nact/NTOT2 12.5%選擇基本存儲方 案、針對12.5%>Ma>NTOT》0.4%選擇改進1中所述的稀疏格式,以及針對Naet/NT0TO.4。/。選擇第二稀疏格式。所述第二稀疏格式可以例如類似于第一改進中的稀疏格式,但是用2字節(jié)無符號整數(shù)存儲步長。對于非常低
的支持度,這種新格式僅需要大約2WNTOT/65535字節(jié)的存儲器。通常一種 格式用于一個單個活動父模式歷史。如果輸入數(shù)據(jù)的字符從輸入表的開頭 到結尾都有所不同,則可以針對不同的部分^f吏用不同的編碼。作為第三個改進,如果被考慮的父模式本身具有父模式,則可以僅考 慮那些對于父模式的父模式而言是活動的TA或TAG。圖6c示意性地示 出了有關此情況的實例。在圖6c的實例中,父^^式的父^^莫式的活動歷史信 息被示為具有位字段600。因此,在圖6c中考慮的父模式的父模式的活動 歷史信息600具有Nw個活動的TA或TAG。用于存儲活動父模式歷史的 非改進選項被示為具有位字段630,其中位數(shù)為NTOT,與父模式的父模式 的活動父模式歷史600中的位數(shù)類似。當記錄與位字段630關聯(lián)的父模式的活動歷史信息時,可以在上述基扣格式或稀疏格式中用Naet替代NTOT。圖6c示出了作為實例的位字段631,其與針對位字段600應用的同一基本 格式一致。如圖6c所示,父模式(即,在位字段631中)的活動歷史中僅 考慮那些對于父模式的父模式(即,在位字段600中)活動的TA或TAG。接下來介紹將輸入數(shù)據(jù)壓縮為二進制格式的高效方法。這些壓縮輸入 數(shù)據(jù)的方法可與上述模式評估方法一起使用,在所述才莫式評估方法中,類 似候選模式集合凈皮一起進行評估。此外,它們可以應用于任何其他確定輸 入數(shù)據(jù)中的模式的數(shù)據(jù)挖掘方法。它們可例如應用于基于深度優(yōu)先搜索或 廣度優(yōu)先搜索的數(shù)據(jù)挖掘。圖7a到7d示出了某些為了進行數(shù)據(jù)挖掘而壓縮輸入數(shù)據(jù)的計算機數(shù) 據(jù)結構。圖7a示出了計算機數(shù)據(jù)結構700,該結構特別適合于輸入數(shù)據(jù), 其中事務不包含計時/排序信息,或者其中所述計時/排序信息沒有任何影響 并且可以被丟棄。圖7b示出了計算機數(shù)據(jù)結構710,該結構特別適合于輸 入數(shù)據(jù),其中事務具有計時/排序數(shù)據(jù)。換言之,這些事務可以分組為多個 事務組TAG。圖7c和7d如圖7a和7b那樣示出了類似的數(shù)據(jù)結構720、 730,但是數(shù)據(jù)結構720、 730還包含權重信息。數(shù)據(jù)結構700和數(shù)據(jù)結構710都包含事務集合的信息。數(shù)據(jù)結構700 中的事務數(shù)通常為預定數(shù)目N,該數(shù)目取決于硬件。N是處理器在一個時
鐘周期內(nèi)可以處理的位串的長度。數(shù)據(jù)結構710中的事務數(shù)由數(shù)據(jù)結構710 表示的事務組TAG中的事務數(shù)來定義。事務中的不同項目數(shù)使用n(圖7a和7b中的標號701)來表示。數(shù)據(jù)結 構700和710中還存在不同項目的標識符702a、 702b。標識符702通常為 整數(shù)值,所述整數(shù)值在輸入數(shù)據(jù)中是唯一的;最低要求是標識符702在數(shù) 據(jù)結構700/710中是唯一的,但是這要求進行額外的記錄。標識符702可 以被選為盡可能小的整數(shù),通常不超過16位長。各個事務中的不同項目的存在由數(shù)據(jù)結構700/710中的位字段信息表 示。對于每個標識符702,可以存在單獨的位字段,如圖7a和7b所示。 作為進一步的選擇,可以具有一個較大的位字段來表示與單獨位字段相同 的信息。只要具有指示由數(shù)據(jù)結構700/710所表示的各個事務中的不同項 目存在的位字段信息,則可以進行任何其他的修改。關于數(shù)據(jù)結構700, 其中事務數(shù)通常是預定的,單獨位字段703a、 703b的長度也是預定的(換 言之,通常為N)。在數(shù)據(jù)結構710中,其中事務數(shù)取決于數(shù)據(jù)結構所表 示的事務組TAG中的事務數(shù),位字段704a、 704b的長度可以隨數(shù)據(jù)結構 710到另一數(shù)據(jù)結構710而不同。如圖7b所示,如果對于每個標識符702 具有一個單獨的位字段704,則位字段704的長度為(NTA+7)/8個字節(jié)。數(shù) 據(jù)結構710通常包含指示事務數(shù)的整數(shù)NTA 705以便于處理數(shù)據(jù)結構。此外,數(shù)據(jù)結構710包含由數(shù)據(jù)結構710所表示的事務的排序信息。 如圖7b所示,所述排序信息可以具有差異(例如,時間戳差別或排序信息 中的其他距離),在這種情況下,排序信息由n-l個整數(shù)706a、 706b表示。 備選地,可以有n個指示排序信息(例如,時間戳)的整數(shù)。數(shù)據(jù)結構700中各字段的順序如下所示指示不同的項目數(shù)的整數(shù) 701、不同項目的標識符702,以及一系列位字段703。此外,數(shù)據(jù)結構700 還可以(例如,在數(shù)據(jù)結構的開頭)包含指示數(shù)據(jù)結構700所表示的事務 的總數(shù)NTA的整數(shù)705,以便于處理數(shù)據(jù)結構。通常,整數(shù)705對于所有 其他表示輸入數(shù)據(jù)的數(shù)據(jù)結構均為N,只有1<NTA<N的情況除外。數(shù)據(jù)結構710中的字段順序如下所示指示事務數(shù)NTA的整數(shù)705、 指示不同項目數(shù)n的整數(shù)701、不同項目的標識符702、排序信息以及指示 事務中不同項目存在的位字段信息704。數(shù)據(jù)結構710可以進一步包含指 示事務中的項目總數(shù)的整數(shù)707。這允許有效地檢查事務組是否支持特定 的順序。如果順序中的項目數(shù)大于事務組中的項目數(shù),則不支持模式。圖7c中的數(shù)據(jù)結構720 (通過實例的方式)與圖7a中的數(shù)據(jù)結構700 在其他方面類似,但是它包含額外的權重信息。n個存儲單元721包含n 個不同項目中每個項目的權重統(tǒng)計信息。存儲單元721可以具有W個位, 其可以是一個32位單精度浮點數(shù)。權重信息存儲單元721通常包含給定項 目的平均權重,這是對此項目在N個TA內(nèi)的所有出現(xiàn)的平均。存儲單元 721可以另外包含諸如標準偏差之類的統(tǒng)計聚合。存儲單元721表示的平 均權重能夠(也可能不能)解釋一個TA內(nèi)相同項目的多次出現(xiàn)。(例如, 如果客戶在一次購買中以每瓶1$的價格購買4瓶牛奶,則記錄的牛奶商品 價格可以是4$或1$,具體取決于挖掘用戶希望執(zhí)行的分析的類型)。可選 地,數(shù)據(jù)結構720可以包含進一步的存儲單元722,存儲單元722包含不 同TA的累積權重統(tǒng)計信息。通常這些存儲單元722也為W位長,并且對于數(shù)據(jù)結構720所表示的 每個TA具有一個存儲單元722,其包含TA中所有權重的總和。圖7d中的數(shù)據(jù)結構730(通過實例的方式)與圖7b中的數(shù)據(jù)結構710 在其他方面類似,但是具有額外的權重信息。n個存儲單元731包含n個 不同項目中每個項目的權重統(tǒng)計信息。存儲單元731可以具有W個位,其 可以是一個32位單精度浮點數(shù)。權重信息存儲單元731通常包含給定項目 的平均權重,這是對此項目在N個TA內(nèi)的所有出現(xiàn)的平均。存儲單元731 可以另外包含諸如標準偏差之類的統(tǒng)計聚合。存儲單元731表示的平均權 重能夠(也可能不能)解釋一個TA內(nèi)相同項目的多次出現(xiàn)??蛇x地,數(shù) 據(jù)結構730可以包含進一步的存儲單元732,存儲單元732包含整個事務 組的累積權重統(tǒng)計信息。通常存儲單元732也為W位長。很明顯,數(shù)據(jù)結 構720或730中的存儲單元的順序可以與圖7c和7d中示出的順序不同。
通常,在評估候選模式期間,在計算機系統(tǒng)的存儲器或硬盤中存儲數(shù)據(jù)結 構。數(shù)據(jù)結構還可以存儲在硬盤上或諸如計算M盤、光盤或稱為記憶棒 的設備之類的可移動計算機可讀介質(zhì)上。參考圖7a到7d描述的數(shù)據(jù)結構至少具有下列優(yōu)點。首先,將高效地 壓縮輸入數(shù)據(jù)。壓縮效果提高最多達三倍(i)原始項目名稱由較小的ID (通常每個ID需要不超過16位的存儲器)替代;(ii)并非N個TA中 的所有項目都必須存儲為16位整數(shù),而是這些N個TA中的每個不同項 目必須僅存儲一次;以及(iii)壓縮了權重信息,因為并非存儲每條輸入 數(shù)據(jù)權重信息,而是僅存儲權重信息的統(tǒng)計聚合。在位字段信息內(nèi),針對 每個關系僅使用一個單個位來存儲TA內(nèi)項目的關系。將不同項目的列表 包括在表示事務集合的數(shù)據(jù)結構內(nèi)是高效的,因為每個事務通常只包含輸 入數(shù)據(jù)內(nèi)存在的所有項目的非常少的一部分。因此,N個TA中不同項目 的數(shù)量通常遠小于數(shù)據(jù)中所有不同項目的數(shù)量,并且對N個TA中不同項 目的引用顯著減小了位字段的大小。如果將較高的數(shù)據(jù)大小壓縮作為目標, 則可以在形成組之前對事務進行重新排序,如下文將描述的那樣。重新對事務進行排序的目標是創(chuàng)建非常類似的事務(即,所述事務包含幾乎相同 的項目ID)的系列和群集。這有助于產(chǎn)生最優(yōu)壓縮率。通常,將數(shù)據(jù)大小 減小為約原始數(shù)據(jù)大小的5%。其次,所述存儲方案能夠高效處理分類。如果在每個項目頂部都存在 大量分類層次結構,則傳統(tǒng)的存儲方案存在顯著的放大效應。即,如果存 在特定數(shù)量的不同項目并且每個項目在頂部具有3級父層次結構,則傳統(tǒng) 的存儲方案將放大到4倍。在此處所述的方案中,存儲放大較小,因為n 個項目最多可能共享某些父項目,因此這些共享的父項目將在存儲的數(shù)據(jù) 結構中僅出現(xiàn)一次。第三,可以通過對數(shù)據(jù)結構700/710/720/730的位字段信息進行高效的 位圖操作來相對于輸入數(shù)據(jù)檢驗候選模式(參見下面針對圖10a到12c的 說明)。這可以顯著加速檢驗過程。在實際應用中,檢驗速度是關鍵。在 大量事務數(shù)據(jù)中查找模式的典型使用情況將耗時數(shù)個小時或數(shù)日,所述存 儲方案能夠以高效的方式與活動記錄歷史配合使用。此外,存儲和檢驗方 案非常適于高效地應用各種模式過濾器準則。將在下文中參考模式檢驗更 詳細地介紹這些特性。所述存儲方案還可以^艮好地與同時創(chuàng)建和檢驗大型 類似候選規(guī)則組的候選模式創(chuàng)建和檢驗機制配合使用。圖8示出了壓縮多個事務中包含的數(shù)據(jù)的方法800的流程圖。在步驟 801,確定有關項目和可能的父分類的統(tǒng)計度量。例如,可以使用存儲原始 項目標識符的散列值以及項目頻率的散列表來完成上述操作。如果已定義 了分類,則計算所有父分類的頻率并將其添加到項目散列表。在步驟802(此步驟是可選的)將丟棄沒有頻繁父分類的不頻繁項目。在步驟803, 為每個不同的項目分配唯一的標識符,并且如果定義了分類,則為每個不 同的父分類分配唯一的標識符。在步驟804,形成事務集合。針對每個事 務集合重復步驟805到809。在步驟806,確定事務集合中的不同項目數(shù)。 在步驟807,確定不同項目的標識符。在步驟808,確定屬于該事務集合的 事務中的不同項目的存在并將其呈現(xiàn)為位字段信息。在步驟809,形成和 存儲包含在步驟806 - 808中指定的信息的數(shù)據(jù)結構。對于本領域的技術人 員顯而易見的是,在形成在此處介紹的數(shù)據(jù)結構的步驟809之前,需要確 定參考圖7a和7b描述的進一步信息。圖9a示出了將輸入數(shù)據(jù)壓縮為與數(shù)據(jù)結構700—致的數(shù)據(jù)結構的方法 900的流程圖。此方法從步驟801和802開始。在這些步驟之后,在步驟 卯l中確定整數(shù)常數(shù)M和N。如上所述,N取決于計算機硬件。通常N的 值為32和64。 M是能夠存儲此輸入數(shù)據(jù)中的項目所需的不同標識符的整 數(shù)變量的最小適合位大小。M通常為16或32。在步驟402,將丟棄所有(在步驟802的丟棄之后)項目數(shù)小于用戶指定的最小規(guī)則長度(或在沒 有定義最小規(guī)則長度的情況下,小于2)的事務。在步驟903 (此步驟是可 選的)將根據(jù)剩余事務的相似度對其進行排序。此處相似度指事務具有多 少相同的項目。此重新排序可以提高壓縮效率。在步驟804a,將形成事務 集合,并且每個事務集合具有N個事務。此后,方法卯0繼續(xù)到步驟805 以形成和存儲數(shù)據(jù)結構,所述數(shù)據(jù)結構包含作為M位整數(shù)的項目標識符和
通常具有N個位的n位字段(n個N位整數(shù))。如果正確選擇了 N,則每 個位字段可以實現(xiàn)為一個單個無符號整數(shù)變量,所述變量允許快速有效地 進行處理。當形成數(shù)據(jù)結構時,可以使用關聯(lián)陣列(映射和詞典)高效地 預先存儲有關事務集合的信息,在所述陣列中,項目標識符作為關鍵字,n 個位字段作為值。圖9b示出了將輸入數(shù)據(jù)壓縮為與數(shù)據(jù)結構710 —致的數(shù)據(jù)結構的方法 910的流程圖。此方法也開始于步驟801和802。此后,在步驟911確定整 數(shù)常數(shù)T和M。這些常數(shù)取決于輸入數(shù)據(jù)特性。M如上面針對方法900 所定義。T是事務標識符的整數(shù)或浮點表示的位大小。通常,此事務標識 符包含排序信息;事務標識符可以例如是時間戳。方法910此后繼續(xù)執(zhí)行 步驟803。然后在步驟804b形成事務集合,每個事務集合表示一個事務組。 事務組TAG由TAG內(nèi)每個攜帶相同事務組標識符的事務來標識。此后, 在可選步驟,丟棄剩余項目少于預定項目數(shù)或事務少于預定事務數(shù)的事務 集合。然后方法910繼續(xù)到步驟805,根據(jù)數(shù)據(jù)結構710形成和存儲數(shù)據(jù) 結構。通常,使用T位整數(shù)將排序信息存儲為差異信息。接下來,將詳細討論相對于壓縮后的輸入數(shù)據(jù)來檢驗候選模式。首先, 將結合圖10a和11討論關聯(lián)規(guī)則的檢驗。此關聯(lián)規(guī)則的檢驗使用與數(shù)據(jù)結 構700 —致的數(shù)據(jù)結構。此后,將結合圖12a討論順序規(guī)則的檢驗。此順 序規(guī)則的檢驗使用與數(shù)據(jù)結構710—致的數(shù)據(jù)結構。要理解的是,如果輸 入數(shù)據(jù)包含排序信息并被壓縮為與數(shù)據(jù)結構710 —致的數(shù)據(jù)格式,則可以 忽略數(shù)據(jù)結構710中的排序信息并在壓縮數(shù)據(jù)中搜索關聯(lián)規(guī)則。結合圖10a,假設已通過任一模式創(chuàng)建和擴展機制形成一個給定候選 模式(即,候選關聯(lián)規(guī)則)?,F(xiàn)在必須根據(jù)數(shù)據(jù)檢驗此單個固定候選模式。 換言之,需要標識輸入數(shù)據(jù)中支持該候選模式的那些TA。如果模式在被 解釋為項目集合時是包括TA中包含的所有項目的項目集合的子集,則TA 支持此模式。結合圖10a,假設候選模式包含總數(shù)為k的不同項目或分類 父項目。如上所述,假設每個項目或分類父項目由唯一的整數(shù)ID表示。 此外,假設TA和候選模式中的n個項目和分類父項目以有序方式存儲,
這意味著通過增加的ID值排序。要理解的是此排序不是強制性的,但它 使TA和候選模式的處理更高效。基本上,檢驗算法必須依次打開每個TA。為了評價檢驗算法的復雜 性,假設當前TA包含n'個不同的項目。如果n,小于k,則無需任何進一 步檢查便知道TA不能支持當前候選模式。因此,假設n,大于k。在此情 況下,必須檢驗候選模式的k個項目是否包含在TA的n'個項目中。由于 ^i殳這兩個項目列表可以通過增加ID排序,因此可以以工作量O(max(n,, k)) - O(n')執(zhí)行此檢驗步驟。對于N個連續(xù)TA (平均每個具有n,個不同項 目),計算工作量因此為0(n,*N)。但是如上所述和如圖7a中所示,如果可以以一個壓縮的數(shù)據(jù)對象的形 式提供N個TA,則可以通過總計算工作量O(n)執(zhí)行所有N個TA的檢驗, 其中n是所有N個TA中不同項目的數(shù)量。如果n隨N線性增長,這意味 著如果n - N*navg,則任何算法都比不上沒有采用根據(jù)圖2a的數(shù)據(jù)結構的 基#驗算法。但實際上證明對于典型的實際數(shù)據(jù)集合和項目概率分布,n 隨著N次線性地強增長,例如n log(N"navg或n N"^iiavg。因此,與基 #驗方案相比,具有計算工作量O(n)的建議檢驗算法具有極大優(yōu)勢。圖10a示出了作為實例的方法1010的流^^圖,其中^f吏用上述壓縮后的 數(shù)據(jù)結構以有效的方式實現(xiàn)關聯(lián)才莫式的檢驗。方法1010在步驟1001開始 于包含k個不同項目的候選規(guī)則r。步驟1002和1008示出了枱,驗方案非 常適合于計算和存儲當前候選才莫式的父模式的活動TA信息(即父才莫式的 評估信息)的模式擴展算法,以及適合于諸如A-Priori之類的不能處理此 類信息的擴展算法。在第一種情況下,將選擇步驟1004和1010,這意味 著必須根據(jù)模式僅呈現(xiàn)和檢驗那些包含至少 一個支持候選模式的父模式的 TA的TA集合。在第二種情況下,將選擇步驟1003和1009,這意味著將 取回所有TA集合并根據(jù)模式檢驗所述集合。步驟1005實現(xiàn)計算量不大(O(l))的預檢查如果TA集合包含的不 同項目少于要根據(jù)這些TA檢驗的才莫式中的項目,則集合中的TA都不支 持該模式。步驟1006是關鍵步驟。函數(shù)findActiveTAs()分別將當前TA集 合("g,,)和當前候選模式("r")的有序k項目數(shù)組作為^。它返 回N位的位字段,其中位置i處的位表示g中的第i個TA是否支持模式r。 通過選擇適當?shù)腘,可以確保位字段可被實現(xiàn)為單個無符號整數(shù)變量,例 如在現(xiàn)代64位CPU上可以選擇N = 64。圖10b示出了包含函數(shù)findActiveTAs()的一種可能實施方式的偽代碼 段。此函數(shù)包含在最多n+k個步驟之后剩余的單個循環(huán);由于k小于n, 因此這實際上是上述的O(n)。圖10b的偽代碼中的行(130)包含函數(shù)頭。假設B1TFIELD_N是長 度至少為N位的無符號整數(shù)類型。ITEM是長度足以表示輸入數(shù)據(jù)中的所 有不同項目和分類父項目ID的整數(shù)類型。ITEM代表類型ITEM的項目 數(shù)組。行(131)初始化要返回的位字段。首先假設集合中的每個TA都支 持模式。行(132)初始化兩個分別遍歷TA集合(itemPosi)的模式 (UemPosi—g)的所有項目的迭代器變量。行(134 )包含循環(huán)框架。(134 ) 中的條件以及(137)和(142)中的遞增語句一起確保循環(huán)在最多n+k個 步驟之后結束。(138)中的if分支表示未在TA集合中發(fā)現(xiàn)模式的一個項 目,然后返回空位字段的情況。(141)中的if分支表示已在TA集合中找到當前模式項目的情況。在 此情況下,位字段"activeTAs"通過逐位邏輯"與"運算符("&,,)與 指示包含當前模式項目的哪些TA的位字段相組合。應用運算符"&"是 在一個CPU時鐘周期中針對大多數(shù)(編程語言-CPU)組合執(zhí)行的非常 快速的運算。然后,轉到兩個列表中的下一個項目(142)。如果已發(fā)現(xiàn)最 后一個才莫式項目,則可以退出函數(shù)findActiveTAs并返回位字段(144)。 如果未在TA集合中發(fā)現(xiàn)所有模式項目才會到達行(146 )。在此情況下返 回空位字段。再次參考圖10a,步驟1007對位字段"activeTAs,,中的所有"1位" 進行計數(shù)。對于某些(編程語言-CPU )組合,存在對一個時鐘周期中的 整數(shù)變量的1位進行計數(shù)的特殊命令。但是即使沒有提供此類命令,也可 以通過非常高效的方式實現(xiàn)對整數(shù)中的位進行計數(shù)。在圖10c中,以編程
語言C給出一個實例。此實例示出了如何實現(xiàn)僅在20至30個CPU時鐘 周期內(nèi)對64位整數(shù)的所有l(wèi)位進行計數(shù)的函數(shù)"countBits"。此函數(shù)使用 大小為256字節(jié)的輔助數(shù)組"nblBits"。在步驟1011,檢查是否可以取回相對于其評估候選規(guī)則的其他TA集 合。如果沒有更多要取回的TA集合,則候選模式的評估完成。相對于輸 入數(shù)據(jù)的候選規(guī)則的評估信息被存儲在變量activeTAs中。此后,可以使 用相同的方法評估下一個候選模式。在每次模式評估之后,如果模式通過 所有過濾器約束,便將此模式添加到結果模式的列表。當所有候選模式均 被評估后,數(shù)據(jù)挖掘完成。輸出是通過所有過濾器條件的所有模式的列表 (即結果模式的列表)。某些模式創(chuàng)建和模式擴展算法將創(chuàng)建大量類似候選模式集合,這些集 合通常共享k-l個公共項目并且不同之處僅在于一個已添加的項目。備選 地,使用任何算法生成的模式都可以被排序成這種類似候選模式集合以便 進行檢驗。可以修改結合圖10a描述的檢驗方案以便進一步減少檢驗工作。如果壓縮后的輸入數(shù)據(jù)結構還包含權重信息,則圖10a中的步驟1007還包含其他與權重存儲單元相關的操作。這些搮作通常如下bo'd.yWeightS二ats [ r ] : bodyWeightStats [ r 〗 +ge:BodyWeight-'3 ( activeTAs ) headKfeightSrats [ r 〗 =h.es.dWeightStats [ r J +qetHeacMeights( ac仁iveTAs > TAWe,iqhtStats f i'〗=TAWeightStats〖r ] + getTAWeigtits <類似計算可以用于具有加;K信息的事務組。圖ll示出了作為實例的根據(jù)修改后的檢驗方案的方法1100的流程圖, 所述方法可以概述如下。對于所有TA集合數(shù)據(jù)對象(即對于數(shù)據(jù)結構 700),如果活動TA集合歷史告訴我們此集合是非活動的,則跳過當前對 象(圖11中的步驟1101)。如果其TA均不包含足夠的項目以滿足當前 最小規(guī)則長度準則(這可能已在規(guī)則創(chuàng)建和檢驗過程中被限制),則跳過 當前對象;圖11中的步驟1102。此后,確定TA集合中所有候選者的公 共項目的位置(圖11中的步驟1103 )。如果發(fā)現(xiàn)所有這些項目(步驟1104), 則確定集合內(nèi)包含所有這些公共項目的那些TA (步驟1105 )。這可以通 過對TA中項目位字段執(zhí)行快速逐位'或,運算實現(xiàn)。如果包含候選模式 集合的所有公共項目的結果TA列表為非空(步驟1106、 1109),則確定 還支持每個候選模式的非公共項目的那些TA (步驟1107 )。步驟1108是 與肯定項目約束有關的可選步驟;在下面更詳細地討論此步驟。在已處理 包含所有公共項目的所有TA之后,相對于TA集合評估N個類似候選沖莫 式的集合(步驟1110)。要理解的是,通過刪除圖11中的步驟1103-1105 和1107,結果是圖10a中更詳細的流程圖的一般級別說明。圖12a示出了類似候選項目集合的此檢驗方案的更詳細的圖。方法 1200在步驟1201開始于候選列表1,候選列表1包含具有k個項目的N個 候選規(guī)則,在這k個項目中,k-l個項目對于所有候選規(guī)則都是相同的。 類似于方法1000,方法1200可以釆用父規(guī)則的評估信息(步驟1002a、 1003、 1004、 1008a、 1009和1010)。當比較方法1200的流禾呈圖與方法1000的 流程圖時,會發(fā)現(xiàn)方法1200包含額外循環(huán)(步驟1204、 1205、 1206、 1207 和1208 )。此循環(huán)遍歷當前要檢驗的候選模式集合的所有N個候選規(guī)則"i"。 修改后的方法1200的額外益處在于,對于所有候選規(guī)則,項目檢驗的最大 部分可以退出此循環(huán)(步驟1202 )。這意味著對于所有N個候選規(guī)則,k 個項目中的k-l個項目僅需被檢驗一次,并且僅需針對每個候選規(guī)則單獨 檢驗不同候選規(guī)則中的不同的單個項目(步驟1206)。圖12b列出了步驟1202中函數(shù)"findActiveTAs"的可能實施方式的 偽代碼。此實施方式與圖10a所示的檢驗方案中的對應步驟1006的實施方 式幾乎完全相同。步驟1202中的函數(shù)"fmdActiveTAs"具有不同的簽名并且需要不同 的實施方式。此函數(shù)僅檢查當前TA集合的TA中單個給定項目的存在。 在步驟1203,檢查是否找到任何活動的TA。圖12c中示出了函數(shù) "fmdActiveTAs"的可能實施方式。要指出的是,圖12c中的第三函數(shù)參數(shù)"itemPosi"是傳入傳出(in-out) 參數(shù)。當輸入此函數(shù)時,如果將從TA組g開始搜索項目"itemID",參 數(shù)"itemPosi"指示所有不同項目在數(shù)組內(nèi)的項目位置。在此函數(shù)的結尾,"itemPosi"指向發(fā)現(xiàn)項目"itemID"的位置。此位置(按1增加)是用 于在下次(下次使用的itemID大于先前調(diào)用的itemID )調(diào)用函數(shù)"findActiveTAs"時進行搜索的合適開始點。這意味著必須針對此實施方 式,通過增大隨候選模式而不同的已添加項目的itemID,對流程圖中步驟 1204至1208的循環(huán)所遍歷的不同候選模式進行排序。接下來,討論關聯(lián)規(guī)則評估的進一步改進。要理解的是,此改進適合 關聯(lián)和順序規(guī)則,并且還適合評估單個候選模式以及以一個步驟評估類似 候選模式集合。用戶可以定義項目約束,即用戶已指定僅對那些包含/不包 含特定項目或項目類別(-分類父項目)的規(guī)則具有興趣。第一種情況在此被稱為"肯定項目約束",第二種情況被稱為"否定 項目約束"。關于否定項目約束,可以注意以下事項。如果約束是"項目X不能出 現(xiàn)在規(guī)則中,,,則每次在原始輸入數(shù)據(jù)中發(fā)現(xiàn)項目X時便可以忽略項目X。 因此,當原始輸入數(shù)據(jù)被預處理并壓縮為二進制格式時,可能已經(jīng)考慮此 類否定項目約束。如果約束是"項目X不能出現(xiàn)在規(guī)則頭/規(guī)則體中,,,則 候選規(guī)則創(chuàng)建算法(并非此討論的一部分)必須處理此約束。關于肯定項目約束,可以注意以下事項。通常候選規(guī)則創(chuàng)建方案采用 逐步方法它們從簡單規(guī)則iteml^-〉item2開始,然后通過重復向規(guī)則體 或規(guī)則頭添加一個項目來逐步構造更復雜的規(guī)則。如果存在肯定項目約束, 則當檢驗給定候選規(guī)則時,這將導致三種可能的結果。第一,可能發(fā)現(xiàn)候 選規(guī)則是非活動的(例如,如果它是非頻繁的)。第二,可能發(fā)現(xiàn)候選規(guī) 則是活動的(例如,如果它是頻繁的并且在正確位置包含所有所需的項目)。 笫三,候選規(guī)則是非活動的但可擴展(例如,如果它是頻繁的,缺少所需 項目,但包含缺少項目的擴展候選規(guī)則可能是活動的)。在此結合圖10a至14所述的存儲方案和檢驗過程提供了有效的考慮這 些肯定項目約束的方式。圖ll中給出了一個實例,其中步驟1108與考慮 肯定項目約束相關。在此步驟1108中,對于肯定項目約束中出現(xiàn)的每個項 目,將對不僅支持當前評估的候選模式而且還包含肯定項目約束中的項目 的那些TA進行計數(shù)。在檢驗過程的結尾,此改進有助于挑選出某些否則 將被分類為"非活動但可擴展"的候選模式可以丟棄所有未在肯定約束 中頻繁出現(xiàn)的有效項目組合的可擴展候選模式。這是重要的改進,因為限 制候選搜索空間對減少運行時間非常重要。接下來討論相對于壓縮后的輸入數(shù)據(jù)檢驗順序規(guī)則。要理解的是,圖 11還針對此方案(一次評估一個或多個候選模式)提供了總體視圖。對于 順序規(guī)則,相關的修改在于,步驟1107還包含檢查TA中的項目是否以順 序規(guī)則定義的順序出現(xiàn)。時間信息在此被用作排序信息的一個實例。首先,^f^設已通過任何模 式創(chuàng)建和擴展機制形成一個給定候選模式(-候選順序規(guī)則)。假設此模 式包括m個項目集合,換言之,它包含m個不同的時間戳并且因此包含 m-l個時間步長。現(xiàn)在必須根據(jù)數(shù)據(jù)檢驗此單個固定候選模式。這意味著 必須標識輸入數(shù)據(jù)中那些支持候選模式的TAG。如果存在TAG的TA的 子集(TAh…TA^,則TAG支持模式,以便參對于i-l…m, TAj按照增加的時間戳排序 對于i = l...m,被解釋為項目集合的TAj是模式的第i個項目集合 的超集。圖13A示出了作為實例的方法1300的流程圖,其中使用上述壓縮后 的數(shù)據(jù)結構以高效的方式實現(xiàn)模式檢驗。圖13a中的流程圖假設候選模式 包含s個項目集合,具有總數(shù)為k的不同項目或分類父項目(步驟1301)。 假設每個項目或分類父項目由唯一的整數(shù)ID表示;此外,假設可以以有 序的方式訪問k個項目和分類父項目,這意味著通過增加的ID值排序。 此排序提高了實現(xiàn)的效率,但它不是強制性的?;旧希瑱z驗算法現(xiàn)在必須依次打開每個TAG。流程圖的步驟1302 和1307示出了檢驗方案非常適合于計算和存儲當前候選模式的父模式的 活動TAG信息的4莫式擴展算法,以及非常適合于諸如A-Priori之類的不 法。在第一種情況下,將選擇步驟1304和1309, 這意味著僅需根據(jù)模式呈現(xiàn)和檢驗那些支持候選模式的父模式的TAG。在 第二種情況下,將選擇步驟1303和1308,這意味著根據(jù)模式取回和檢驗 所有TAG。假設當前TAG包含n個不同的項目。如果n小于k,無需任何進一步 檢查便知道TAG不能支持當前候選模式。因此,假設n大于k。步驟1305檢查TA及其時間戳在TAG中的分布是否是這樣的分布 其可以支持一系列有效的s個項目集合。如果順序中的允許時間步長不存 在特定約束,此檢查并不重要并且具有計算復雜度O(l):僅必須檢查TAG 中的TA數(shù)量不小于s。如果必須考慮特定約束,例如每個有效時間步長必 須高于特定最小值或低于特定最大值,則此檢查可能會變得更復雜。步驟1305中的進一步檢查用作兩個目的。首先,它是挑選出不能支持 候選模式的特定TAG的第二預檢查。函數(shù)fmdltemPosisInData()檢查候選 模式中的所有不同項目是否都出現(xiàn)在TAG中。這意味著必須檢驗候選模 式的k個項目是否包含在TAG的n個項目中。由于假i殳這兩個項目列表 按照增加的ID排序,因此可以以工作量O(max(n, k)) = O(k)執(zhí)行此檢驗步 驟。如果此預檢查失敗,則函數(shù)findltemPosisInData()立即返回FALSE, 否則函數(shù)繼續(xù)并用作笫二個目的。步驟1305中的第二檢查的此第二個目的 是創(chuàng)建包含模式的所有項目集合的候選模式的表示,每個項目集合被表示 為項目(和分類父項目)的數(shù)組。但是,為了便于匹配當前TAG,希望不 通過其ID而是通過其在TAG的不同項目的列表中的位置來表示每個項目 或分類父項目。第三函數(shù)參數(shù)"itemPosis"以二維數(shù)組的形式返回此信息, 第一數(shù)組維度遍歷候選模式的所有項目集合,第二數(shù)組維度遍歷當前項目 集合中的所有項目。圖13b示出了包含函數(shù)fmdltemPosisInData()的一種可能實施方式的 偽代碼。此函數(shù)的總體計算復雜度為0(n+k) = 0(n)。圖13b的偽代碼中的行(130)包含函數(shù)頭。假設以提供方法"itemID(index)"的TAGROUP類型的結構化對象的形式提供TAG。假 設此方法返回TAG中出現(xiàn)的所有按照增加的ID排序的不同項目和分類父 項目ID。此外,假設可以以提供以下方法的CANDIDATERULE類型的 結構化對象的形式提供候選模式 當索引從0運行到k-l時,itemlD(itemlndex)返回候選模式中出現(xiàn) 的所有按照增加ID排序的項目和分類父項目ID。
numberOfDifferentltems()返回模式中的不同項目和分類父項目的 值k。
numberOfltemsets()返回模式中的項目集合的值s。 ^numberOfltems(itemsetlndex)返回位置"itemsetlndex"處的項目集合中的不同項目的數(shù)量。
itemPosi(itemsetlndex, i)返回必須方iL^函數(shù)itemlD(itemlndex)中以 便獲取位置"itemsetlndex"處的項目集合內(nèi)第i個項目或分類父項目 的ID的itemlndex (=位置)。行(131)初始化兩個分別遍歷TAG (itemPosi—g)的候選規(guī)則 (itemPosi_r)的所有項目的迭代器變量。行(133 )初始化長度為n的整 數(shù)數(shù)組。對于候選模式中出現(xiàn)的每個不同項目,此數(shù)組將包含此項目在 TAG中的位置。從行(134)到行(142)的循環(huán)將候選模式的項目與TAG 的項目相比較并使用正確的值填充數(shù)組"mapItemPosis—r—to—g,,。如果沒 有在TAG中找到候選模式的一個項目,則到達行(138)和(144)。在 此情況下,函數(shù)立即返回FALSE。只有在TAG中找到候選模式的所有項 目時才到達行(145)。在此情況下,函數(shù)執(zhí)行其第二部分職責并使用正確 的值填充返回參數(shù)"itemPosis",即對于候選模式的每個項目集合,所有 形成項目集合的項目在TAG中的位置。在此結束對函數(shù)fmdltemPosisInData的討論并返回圖13a中的流程 圖。在步驟1306,調(diào)用函數(shù)"supports()"。此函數(shù)執(zhí)行檢驗的核心它 檢查當前TAG是否支持候選模式。如果支持,函數(shù)返回l,否則它返回0。 圖13c示出了包含函數(shù)"supports()"的可能實施方式的偽代碼。工作量為 O(ii)。圖13c中的行(150 )包含函數(shù)頭。假設以提供以下方法的TAGROUP 類型的結構化對象的形式提供TAG: numberO汀AsInGroup()返回TAG中TA的總數(shù)(不同時間戳值的 數(shù)量)。
itemID(itemIndex)返回TAG中出現(xiàn)的n個不同項目和分類父項目 ID。
bitField(itemlndex)返回TAG中出現(xiàn)的每個不同項目或分類父項目 的活動TA的位字段。換言之,bitField(itemlndex)的第i位指示ID 為itemlD(itemlndex)的項目是否出現(xiàn)在TAG的第i個TA中。行(151)至(154 )初始化幾個局部變量。行(151)存儲TAG中的 TA的數(shù)量。行(152)定義遍歷候選模式的所有項目集合的迭代器變量。 行(153 )定義指示TAG內(nèi)應開始匹配下一個候選項目集合的開始TA位 置的變量。行(154 )定義將用于表示所有是給定項目集合的超集的TA的 位字段變量。行(155 )開始遍歷候選模式的所有項目集合,依次與TAG的各TA 相匹配。行(156)初始化當前項目集合的可能活動TA的位字段。從O到 發(fā)現(xiàn)上一項目集合的TA位置的所有位均被設置為零,因為不需要檢查這 些TA是否匹配當前項目集合。(157)和(158 )中的循環(huán)通過逐位邏輯"與"運算符(&)疊置當前項目集合的所有項目的活動TA位字段。因 此,循環(huán)之后,位字段activeTAs包含所有時間戳晚于匹配上一項目集合(包含當前項目集合的所有項目)的TA的時間戳的TA。如果此位字段為 空,行(159)導致退出函數(shù)并返回值為0;在此情況下,TAG不支持候 選^f莫式。否則,在記住已匹配當前項目集合的TA位置之后繼續(xù)遍歷所有 候選項目集合。某些模式創(chuàng)建和模式擴展算法將創(chuàng)建大量類似候選模式集合,這些集 合通常共享k-l個公共項目并且差別僅在于一個添加的項目。備選地,可 以將使用任何方法生成的候選模式組織到類似候選模式集合。可以修改結
合圖13a描述的檢驗方案以便進一步減少檢驗工作。 修改后的檢驗方案的實例可以概述如下*如果當前TAG沒有包含足夠的項目或項目集合以滿足當前最小順 序長度準則,則跳過此TAG。*如果當前TAG在其項目集合之間沒有足夠的有效時間步長(以便 形成通過挖掘用戶定義的所有經(jīng)過時間限制的順序),則跳過此TAG。*確保所有候選模式的所有公共項目均包含在TAG中。如果缺少公 共項目,則跳過TAG,否則記住7>共項目在TAG中的位置。,確定候選模式的特定額外項目也包含在TAG中的那些候選模式, 停用其他候選模式。*如果存在剩余的活動候選模式查找包含所有候選模式的公共部分 (-按正確時間順序的公共項目集合)的TA組合。如果沒有發(fā)現(xiàn)此 類TA組合,則跳過此TAG。*對于每個剩余的活動候選模式從上一步驟中標識的TA組合開始, 相對于候選模式的其他項目集合查找還包含按正確時間順序的候選模 式的特定已修改項目集合(多個)的TA組合。模式評估方法中的 一種可選特性是動態(tài)存儲器管理。這將在下面參考 圖14討論。動態(tài)存儲器管理通常包括兩個互補的部分存儲器管理器實例 1400本身和被管理對象1410,它們具有某些公共屬性和能力以匹配存儲器 管理器的要求。在面向對象的方法中,可以通過類別類型 "MemoryManager " 的 一 個類別實例并通過從公共基類 "MemoryManagedObject"導出所有要由存儲器管理器控制的對象實例, 來實現(xiàn)動態(tài)存儲器管理。接下來,將參考面向對象的方法討論動態(tài)存儲器 管理,但顯然還可以使用其他方法實現(xiàn)類似特性和功能。存儲器管理器1400具有固定存儲容量,并且它通常至少提供以下方 法。在圖14中以方塊1401示意性地示出的方法getCapacity()返回存儲器 管理器1400的總容量(例如以字節(jié)為單位)。方塊1402表示名為 getOccupiedSize()的方法,此方法返回存儲器管理器1400中的已使用(=
已占用)的存儲器量(例如以字節(jié)為單位)。方塊1403表示名為 addObject(MemoryManagedObject)的方法,此方法將新的對象1410添加 到存儲器管理器1400。如果添加新的對象之后將超出存儲器管理器的容 量,則存儲器管理器1400在添加新的對象之前,將其足夠的存儲對象自動 轉儲到盤上的預定工作空間。存儲器管理器1400僅在存儲器中保存有關轉 儲對象的信息,當必須再次訪問轉儲對象時,需要此信息來重新加載轉儲 對象。方塊1404表示名為removeObject(MemoryManagedObject)的方法, 此方法從存儲器管理器1400刪除一個,皮管理對象。存儲器^^管理對象1410通常至少具有以下屬性和方法。方塊1411表 示返回對象總存儲器大小(例如以字節(jié)為單位)的方法getMemorySize()。 方塊1412表示將對象標記為"當前正在以只讀方式被訪問"的方法 lockForReading()。讀取鎖定的對象不能保持轉儲到盤如果它先前已被轉 儲到盤,其將通過動態(tài)存儲器管理被自動重新加載到存儲器。方塊1413 表示將對象標記為"當前正在被訪問和^f奮改"的方法lockForWriting()。 寫入鎖定的對象不能保持轉儲到盤如果它先前已被轉儲到盤,其將被自 動重新加載到存儲器。對象的現(xiàn)有轉儲將被從盤刪除,因為對象被更改并 且轉儲不再是最新的。方塊1414表示方法getState(),此方法指示模型當 前是否被訪問以便讀取或寫入,或是否已被轉儲到盤。方塊1415表示方法 dumpToDisk(),此方法將對象的大部分寫入盤,僅在存儲器中保存稍后從 盤重新取回此對象所需的信息。方塊1416表示方法refetchFromDisk(), 此方法恢復先前已轉儲到盤的對象,以4吏對象現(xiàn)在完全駐留在存儲器中。當在特定算法的特定實施方式中4吏用MemoryManager和 MemoryManagedObject的概念時,原則上可以使算法使用的每個數(shù)據(jù)結 構成為MemoryManagedObject。 MemoryManagedObject的屬性和方法可 以只是回繞或與數(shù)據(jù)結構的特定屬性或方法相組合。對于算法中使用的每個數(shù)據(jù)結構,必須確定數(shù)據(jù)結構是否足夠大以及 其生存期是否足夠長,以證明將其視為MemoryManagedObject的開銷是 有效的。有時,可以確定不將單個數(shù)據(jù)結構視為MemoryManagedObject, 而是將此類數(shù)據(jù)結構的全部集合或陣列視為MemoryManagedObject。例 如,當針對數(shù)據(jù)挖掘問題存儲輸入數(shù)據(jù)的TA或TAG時,可以確定不使每 個單個TA或TAG數(shù)據(jù)結構成為存儲器被管理對象,但例如使10000或 100000個此類連續(xù)數(shù)據(jù)結構的陣列成為存儲器被管理對象。作為第一改進,存儲器管理器1400可以包含某些相對較小但頻繁使用 的對象。另一方面,可以具有在挖掘算法的大部分運行時間內(nèi)不需要的大 量對象。當存儲器管理器1400需要將其部分內(nèi)容轉儲到盤時,應優(yōu)選將第 二類對象(即很少需要的大量對象)轉儲到盤。可以通過為存儲器管理器 1400中的每個對象設置"粘性"屬性值實現(xiàn)此目標。在圖14中以方塊1417 示出的粘性可以具有例如三個值 "alwaysInMemory ,,、"preferablylnMemory" 、 "preferablyOnDisk,,。在此實例中,第一類 對象("alwaysInMemory")將從不被轉儲到盤,第二類對象("preferablylnMemory")僅在存儲器管理器中不存在更多未轉儲的第 三類對象("preferablyOnDisk")時才^皮轉儲。動態(tài)存儲器管理的進一步改進是使用"最近重新取回的"時間戳(圖 14中的方塊1418 )在存儲器管理器1400中將對象1410按優(yōu)先順序排列。 此第二改進與第一改進是互不相關的這兩種改進可以一起或單獨使用。 為了介紹此概念,考慮以下實例。存儲器管理器中具有n個在數(shù)據(jù)挖掘的 特定運行階段必須頻繁訪問的類似對象(例如,數(shù)據(jù)頁)。此外,存儲器 管理器1400包含m個當前不需要的其他對象。存儲器管理器的容量足以 同時存儲n個頻繁訪問的對象中的n-l個對象。根據(jù)存儲器管理器的轉儲 策略,可以在其中每次需要n個對象之一時必須從盤重新取回此對象的情 況下結束。相反,最佳可實現(xiàn)的情況是所有m個對象以及n個對象中只有 2個對象^C轉儲到盤,而n個常用對象中的n-2個對象永久保持在RAM中。 假設To是當前數(shù)據(jù)挖掘運行階段的開始時間,并且存儲器管理器1400中 的每個對象都攜帶包含最近重新取回時間(即對象從盤被取回到存儲器的 最新時間)的時間戳T。然后,以下轉儲/重新取回試探法將達到上述"最 佳可實現(xiàn)的情況"如果要轉儲對象,則存儲器管理器1400優(yōu)選地轉儲那
些T〈To的對象(這些對象是上述的m個其他對象)。在TVTo的對象之 中,具有最大T的對象首先被轉儲到盤。對當前階段的引用可以被理解為定子集,而其他數(shù)據(jù)結構在此時間內(nèi)幾乎從未被使用的時間段。作為第三改進,可以針對其他輕量對象跟蹤存儲器消耗。這些輕量對 象的實例是輔助變量、數(shù)組或其他數(shù)據(jù)對象。這些輕量對象中的每個對象 都太小(或具有太多的輕量對象),以致無法證明為它們中的每一個提供 MemoryManagedObject的屬性的開銷(在存儲器中和執(zhí)行時間)是有效 的。但是,如果所有這些對象擁有的所有存儲器總和在算法控制流的特定 點達到總體可用存儲器的相當大的數(shù)量,則還應跟蹤存儲器消耗以使存儲 器管理器準確地工作。存儲器管理器1400還可以跟蹤由并非從 MemoryManagedObject導出的"輕量"對象消耗的存儲器量。為此,存 儲器管理器至少需要以下方法reserveMemory()和releaseMemory()。它 們分別由圖14中的方塊1405和1406表示。但是,輕量對象不能被轉儲到 盤以便在存儲器管理器1400中為新對象創(chuàng)造空間。要理解的是,上述動態(tài)存儲器管理適合任何相對于輸入數(shù)據(jù)評估候選 模式的數(shù)據(jù)挖掘方法。還要理解的是,可以作為原始輸入數(shù)據(jù)來提供用于評估候選模式的方 法的輸入數(shù)據(jù)。在此情況下,用于評估候選模式的方法可以包含任何將原 始輸入數(shù)據(jù)壓縮為壓縮格式的必需步驟。備選地,用于評估候選模式的方 法可以只;l訪問壓縮后的輸入數(shù)據(jù)。本說明明確描述了在此所述的各種特性的某些組合。要理解的是,各 種其他組合對于研究本發(fā)明的技術人員來說是顯而易見的。在所附權利要求中,計算機化方法指其步驟由包含一個或多個處理器、 存儲器裝置和存儲裝置的適當組合的計算系統(tǒng)執(zhí)行的方法。雖然以上參考了本發(fā)明的特定實施例,但是本領域的技術人員將理解, 可以在這些實施例中做出更改而不偏離由所附權利要求限定的本發(fā)明的原 理和精神。
權利要求
1. 一種用于檢測包含多個事務的輸入數(shù)據(jù)中的模式的計算機化方法,每個事務具有至少一個項目,所述方法包括以下步驟接收用于感興趣模式的過濾器條件,根據(jù)所接收的過濾器條件,確定與生成候選模式有關的第一適用過濾器條件集合,選擇已評估的候選模式作為父候選模式并維護有關所述父候選模式的評估信息,通過擴展所述父候選模式并考慮第一過濾器條件集合來生成子候選模式,相對于共同在多個類似候選模式集合內(nèi)的輸入數(shù)據(jù)并根據(jù)有關所述父候選模式的所述評估信息來評估所述子候選模式,每個集合具有最多預定數(shù)量的類似候選模式并且至少一個集合具有至少兩個類似候選模式,以及遞歸地使用至少一個成功通過評估步驟的子候選模式作為父候選模式。
2. 如權利要求1所述的計算機化方法,其中每個類似候選模式集合中 的候選模式彼此的差別在于被添加到公共父候選模式的一個相應項目。
3. 如權利要求1或2所述的計算機化方法,其中生成子候選模式的步 驟包括以下步驟中的至少一個步驟將一個新項目添加到所述父候選模式的笫一個項目集合; 將一個新項目添加到所述父候選模式的最后一個項目集合;以及 將包括一個項目的新項目集合附加到所述父候選才莫式。
4. 如任一上述權利要求所述的計算機化方法,其中所述預定數(shù)量取決 于執(zhí)行所述計算機化方法的計算系統(tǒng)的特性。
5. 如任一上述權利要求所述的計算機化方法,包括根據(jù)所述輸入數(shù)據(jù) 來計算統(tǒng)計度量以便在生成和評估步驟中的至少一個步驟內(nèi)使用,所述統(tǒng) 計度量包括以下項中的至少一項項目對統(tǒng)計信息和4又重統(tǒng)計信息。
6. 如權利要求5所述的計算機化方法,包括當應用所述第一過濾器條 件集合時,根據(jù)所述統(tǒng)計度量來限制所述候選模式的搜索空間。
7. 如權利要求5或6所述的計算機化方法,包括根據(jù)所述統(tǒng)計度量來 確定以下項中的至少一項要擴展哪些子候選模式,以及擴展子候選模式的順序。
8. 如任一上述權利要求所述的計算機化方法,其中所述過濾器條件包 括至少一個基于以下項中的至少一項的條件權重、關于輸入數(shù)據(jù)的總權 重、支持事務的平均權重、規(guī)則體的權重、規(guī)則頭的權重、關于輸入數(shù)據(jù) 的規(guī)則頭的總權重、關于輸入數(shù)據(jù)的規(guī)則體的總權重,以及可訪問的其他 總權重。
9. 如任一上述權利要求所述的計算機化方法,包括 提供表示所述輸入數(shù)據(jù)中的事務集合的數(shù)據(jù)結構,所述數(shù)據(jù)結構具有事務集合中不同項目的標識符的列表、指示所述列表中的標識符數(shù)量的信 息,以及指示所述事務集合中所述不同項目的存在的位字段信息,才艮據(jù)所 述列表組織所述位字段信息以便于相對于所述事務集合來評估模式,以及 針對所述位字段信息使用位圖操作評估所述候選模式。
10. 如任一上述權利要求所述的計算機化方法,包括 維護表示所述輸入數(shù)據(jù)中的事務、已評估的候選模式、已評估的候選模式的評估信息、要評估的候選模式,以及結果模式的數(shù)據(jù)結構;以及根據(jù)可用的總存儲器和所述數(shù)據(jù)結構的使用,動態(tài)確定在生成和評估 子候選模式期間要將哪些數(shù)據(jù)結構保存在存儲器中以及要將哪些數(shù)據(jù)結構 放置到盤。
11. 如權利要求10所述的計算機化方法,包括至少為第一數(shù)據(jù)結構指 示在確定要將哪些數(shù)據(jù)結構保存在存儲器中時是否應將所述第一數(shù)據(jù)結構 按優(yōu)先順序排列。
12. 如權利要求10或11所述的計算機化方法,包括至少為第二數(shù)據(jù) 結構指示從盤的最近取回時間,以便根據(jù)所述最近取回時間確定要將哪些 數(shù)據(jù)結構保存在存儲器中。
13. 如任一上述權利要求所述的計算機化方法,包括以下列格式之一 維護所述父候選才莫式的評估信息指示為所述父候選模式的支持度做出貢獻的輸入數(shù)據(jù)事件的第 一位字 段,所述第一位字段的長度等于輸入數(shù)據(jù)事件的數(shù)量;指示為所述父候選模式的支持度做出貢獻的輸入數(shù)據(jù)事件的第二位字 段,所述第二位字段的長度等于為所述父候選模式的另一父模式的支持度 做出貢獻的輸入數(shù)據(jù)事件的數(shù)量;以及與為所述父候選模式的支持度做出貢獻的兩個連續(xù)輸入數(shù)據(jù)事件之間 的輸入數(shù)據(jù)事件數(shù)量有關的信息;其中輸入數(shù)據(jù)事件是以下項之一 一個事務和一組事務。
14. 如權利要求13所述的計算機化方法,包括根據(jù)所述父候選模式的 支持度來選擇所述父候選模式的評估信息的格式。
15. 如任一上述權利要求所述的計算機化方法,包括在所述評估步驟 中在指示為相應子候選模式的支持度做出貢獻的輸入數(shù)據(jù)事件的位字段內(nèi) 維護所述子候選;f莫式集合的評估信息,其中輸入數(shù)據(jù)事件是以下項之一 一個事務和一組事務。
16. 如權利要求15所述的計算機化方法,其中所述位字段的長度等于 輸入數(shù)據(jù)事件的數(shù)量。
17. 如權利要求15或16所述的計算機化方法,其中每個子候選模式 集合的位字段的數(shù)量是為相應父模式的支持度做出貢獻的輸入數(shù)據(jù)事件的 數(shù)量。
18. 如任一上述權利要求所述的計算機化方法,包括 根據(jù)所接收的過濾器條件,確定與評估所述子候選模式有關的第二適用過濾器集合;以及考慮與評估所述子候選模式有關的所述第二過濾器條件集合。
19. 如權利要求18所述的計算機化方法,包括根據(jù)所接收的過濾器條件,確定在確定結果模式期間適用的第三過濾 器條件集合; 考慮與評估所述子候選模式有關的所述第三過濾器條件集合;以及 將通過所述第三過濾器條件集合的已有效評估的候選模式輸出為結果模式。
20. —種存儲在計算機可用介質(zhì)上的包括計算機可讀程序指令的計算 機程序產(chǎn)品,當所述計算機程序產(chǎn)品被加載到計算機時,所述指令將導致 所述計算機執(zhí)行如權利要求1至19中的任一權利要求所述的方法。
21. —種用于檢測包含多個事務的輸入數(shù)據(jù)中的模式的計算機系統(tǒng), 每個事務具有至少一個項目,所述計算機系統(tǒng)4皮配置為接收用于感興趣模式的過濾器條件,根據(jù)所接收的過濾器條件,確定與生成候選模式有關的第 一適用過濾 器條件集合,選擇已評估的候選模式作為父候選模式并維護有關所述父候選模式的 評估信息,通過擴展所述父候選模式并考慮第一過濾器條件集合來生成子候選模式,相對于共同在多個類似候選模式集合內(nèi)的輸入數(shù)據(jù)并根據(jù)有關所述父 候選模式的所述評估信息來評估所述子候選模式,每個集合具有最多預定 數(shù)量的類似候選模式并且至少 一個集合具有至少兩個類似候選模式,以及遞歸地使用至少一個成功通過評估的子候選模式作為父候選模式。
全文摘要
通過以下方式執(zhí)行包含多個事務(每個事務具有至少一個項目)的輸入數(shù)據(jù)中的模式檢測。接收用于感興趣模式的過濾器條件,并確定與生成候選模式有關的第一適用過濾器條件集合。選擇已評估的候選模式作為父候選模式并維護有關所述父候選模式的評估信息。通過擴展所述父候選模式并考慮第一過濾器條件集合來生成子候選模式。相對于共同在多個類似候選模式集合內(nèi)的輸入數(shù)據(jù)并根據(jù)有關所述父候選模式的所述評估信息來評估所述子候選模式。遞歸地使用至少一個成功通過評估步驟的子候選模式作為父候選模式。
文檔編號G06F17/30GK101401100SQ200780008938
公開日2009年4月1日 申請日期2007年2月2日 優(yōu)先權日2006年3月14日
發(fā)明者A·多奈希, C·林根費爾德, T·博林格 申請人:國際商業(yè)機器公司