用于事務集合的關聯(lián)規(guī)則計算方法
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)挖掘技術領域,更具體地說,涉及一種用于事務集合的關聯(lián)規(guī)則 計算方法。
【背景技術】
[0002] 對海量數(shù)據(jù)進行關聯(lián)規(guī)則計算,通常會使用FP-growth算法,但如果事務集合中 元素數(shù)量巨大,在計算過程中會碰到以下困難: 一、在生成頻繁模式樹(Frequent Pattern tree,簡稱FP-tree)之前,中間過程數(shù)據(jù) (即頻繁1-項集)過大而無法加載到任何一個計算節(jié)點上,導致各節(jié)點不能利用頻繁-1 項集的計算結果,以致后續(xù)計算無法繼續(xù)進行;二、同樣因數(shù)據(jù)量過大,理論上最終生成的 FP-tree同樣需要巨大的內(nèi)存空間,這也是單個計算節(jié)點的內(nèi)存無法滿足的,導致結果無法 輸出。因此,本領域技術人員期望獲得一種能夠克服上述缺陷的用于事務集合的關聯(lián)規(guī)則 計算方法。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于提供一種適于對海量數(shù)據(jù)進行關聯(lián)規(guī)則計算的方法。
[0004] 為實現(xiàn)上述目的,本發(fā)明提供一種技術方案如下: 一種用于事務集合的關聯(lián)規(guī)則計算方法,其中,事務集合包括多條事務,每一事務包 括多個特征項,該方法包括如下步驟:a)、遍歷事務集合中各事務,以特征項生成頻繁1項 集,按各特征項出現(xiàn)的頻次對頻繁1項集進行排序;b)、對頻繁1項集進行哈希映射,以生 成第二項集;c)、以第二項集生成差值矩陣;其中,差值矩陣指示第一項集中各特征項之間 的排序先后關系;d)、針對事務集合中每一事務,按排序先后關系分別對該事務的特征項 進行排序,以生成第二事務集;e)、將第二事務集劃分為多個數(shù)據(jù)集,并對每個數(shù)據(jù)集執(zhí)行 FP-tree生成算法,以生成與多個數(shù)據(jù)集--對應的FP-tree子樹;f)、基于不同F(xiàn)P-tree 子樹中元素之間的對應關系,挖掘關聯(lián)規(guī)則。
[0005] 優(yōu)選地,步驟a)中還包括:從頻繁1項集中刪除支持度低于支持度閾值的特征項。 [0006] 優(yōu)選地,步驟c)還包括:在生成差值矩陣后,對差值矩陣進行壓縮;其中,差值矩 陣為反對稱矩陣。
[0007] 優(yōu)選地,步驟f)具體包括:Π )、遍歷各FP-tree子樹,若兩個不同F(xiàn)P-tree子樹 的子項頭表中存在相同的元素,則在該兩個不同F(xiàn)P-tree子樹的子項頭表之間建立索引指 向;f2)、重復步驟Π ),直到遍歷完成所有FP-tree子樹。
[0008] 優(yōu)選地,該方法在分布式系統(tǒng)上實現(xiàn)。
[0009] 本發(fā)明提供的用于事務集合的關聯(lián)規(guī)則計算方法,適于對海量數(shù)據(jù)進行關聯(lián)規(guī)則 計算。其利用哈希變換和差值矩陣,并對矩陣進行壓縮,使得特征項之間的排序關系可加 載到各計算節(jié)點上,有效解決了因頻繁項集過大而導致計算節(jié)點無法加載的問題;同時,上 述方法以原始事務集構建了多個FP-tree子樹,有效克服了因 FP-tree過大導致單個計算 節(jié)點內(nèi)存不足的缺陷。此外,本發(fā)明借助差值矩陣對事務集進行排序,以及在分布式系統(tǒng)上 實現(xiàn),還顯著提升了數(shù)據(jù)挖掘的速度;執(zhí)行該計算方法的分布式系統(tǒng)運行穩(wěn)定、效率明顯提 商。
【附圖說明】
[0010] 圖1示出本發(fā)明一實施例提供的用于事務集合的關聯(lián)規(guī)則計算方法的流程示意 圖。
[0011] 圖2 7K出根據(jù)本發(fā)明一實施例的FP-tree子樹的項頭表索引。
【具體實施方式】
[0012] 需要說明的是,根據(jù)本發(fā)明各實施例,事務集合包括多條事務,每一事務包括多個 特征項。不同事務間可能具有相同的特征項,也可能具有互不相同的特征項。
[0013] 本文所指的"事務集合"包括但不限于銀行卡交易記錄數(shù)據(jù)庫,其中包含多條交易 記錄(其對應于"事務"),每一交易記錄包含多個交易特征(其對應于"特征項")。
[0014] 如圖1所示,本發(fā)明一實施例提供一種用于事務集合的關聯(lián)規(guī)則計算方法,其包 括如下步驟: 步驟S10、遍歷事務集合中各事務,以特征項生成頻繁1項集,按各特征項出現(xiàn)的頻次 對頻繁1項集進行排序。
[0015] 具體地,頻繁1項集以本文所指的"特征項"為其元素。頻繁1項集中每一特征項 (即其元素)對應的值是該特征項在事務集合中各事務中總計出現(xiàn)的頻次。在生成初始的頻 繁1項集之后,依據(jù)特征項出現(xiàn)的頻次對頻繁1項集進行降序排序。
[0016] 進一步地,在上述降序排序之后,從頻繁1項集中刪除支持度低于支持度閾值的 特征項,使頻繁1項集中元素數(shù)量減少,以加快后續(xù)算法步驟的執(zhí)行效率。其中,支持度閾 值可由用戶根據(jù)提取關聯(lián)規(guī)則的實際需求確定。
[0017] 步驟S11、對頻繁1項集進行哈希映射,以生成第二項集。
[0018] 該步驟可使用線性探測再散列的方法進行哈希映射,以避免不同的頻繁1項集元 素映射到相同位置上。哈希映射后的結果形成第二項集。
[0019] 步驟S12、以第二項集生成差值矩陣。
[0020] 該步驟S12中,基于第二項集生成差值矩陣,差值矩陣指示第一項集中各特征項 之間的排序先后關系;例如,差值矩陣中元素采用如下定義:
設排好序的頻繁1項集包括元素序列<a,b,c,d>,經(jīng)哈希變換后的第二項集包括元素 序列〈1,2, 3, 4>,則經(jīng)該步驟S12之后,對應的差值矩陣為:
可見,差值矩陣為斜對稱矩陣,更具體地,其為反對稱矩陣,即針對任一元素,其關于對 角線對稱的元素為該元素的相反值。
[0021] 作為反對稱矩陣,該差值矩陣存在較多的信息冗余,從而可對該差值矩陣進行壓 縮,例如,只保留矩陣右上角的數(shù)據(jù),這樣壓縮過后的差值矩陣數(shù)據(jù)可以很方便地加載到每 個計算節(jié)點上,以便執(zhí)行后續(xù)算法步驟。
[0022] 步驟S13、針對事務集合中每一事務,按排序先后關系分別對該事務的特征項進行 排序,以生成第二事務集。
[0023] 具體地,該步驟基于步驟S12中獲得的差值矩陣,針對原始事務集合中每一事務, 按差值矩陣所指示的各特征項之間的排序先后關系,分別對該事務的特征項進行降序排 序。若原始事務集合中存在η條事務,則該步驟中執(zhí)行η次降序排序,該η次排序執(zhí)行完成 后得