據(jù)立方體時(shí),采用項(xiàng)集分段的思想,按照3個(gè)項(xiàng)分成1段,則上述項(xiàng)集可以分為3段,并 將每段的三個(gè)布爾值當(dāng)成二進(jìn)制數(shù),并轉(zhuǎn)換為十進(jìn)制數(shù),則轉(zhuǎn)換后的事務(wù)集為:
[0046]
[0048]經(jīng)過(guò)上述轉(zhuǎn)換,該事務(wù)集可以表示為一個(gè)三維數(shù)據(jù)立方體,每個(gè)維的長(zhǎng)度為6,7, 6,也可以定義每個(gè)維的長(zhǎng)度均為7,只不過(guò)此時(shí)會(huì)存在一些數(shù)據(jù)冗余,而在存儲(chǔ)時(shí)用三維數(shù) 組表示。根據(jù)分段時(shí)所選擇的項(xiàng)的個(gè)數(shù)不同,可以得到不同的分段,則對(duì)應(yīng)的數(shù)據(jù)立方體的 維數(shù)和每個(gè)維的長(zhǎng)度會(huì)有所不同,可以根據(jù)實(shí)際情況進(jìn)行合理選擇。
[0049]多值無(wú)序數(shù)據(jù)立方體是指事務(wù)集中每一個(gè)事務(wù)的每一個(gè)項(xiàng)的取值不是0和1,而是 任意數(shù),一般取值為整數(shù);無(wú)序是指一個(gè)事務(wù)中項(xiàng)的取值是沒(méi)有順序的,例如對(duì)于一個(gè)三項(xiàng) 集,取值為[1 2 3]和[3 1 2]的兩個(gè)事務(wù)是一樣的。
[0050]對(duì)于這樣的多值無(wú)序事務(wù)集,在表示為多維數(shù)據(jù)立方體時(shí),可以先將事務(wù)中的項(xiàng) 按照從小到大排序,然后按照多維數(shù)據(jù)立方體的結(jié)構(gòu)進(jìn)行存儲(chǔ);也可以不排序,直接進(jìn)行存 儲(chǔ)。為了命名方便,這樣的事務(wù)集表示成的多維數(shù)據(jù)立方體命名為多值無(wú)序數(shù)據(jù)立方體。
[0051] 多值有序數(shù)據(jù)立方體與多值無(wú)序數(shù)據(jù)立方體類似,多值有序是指事物集中每一個(gè) 事務(wù)的每一個(gè)項(xiàng)的取值為任意數(shù),一般為整數(shù),且項(xiàng)的取值是有順序的,取值為[1 2 3]和 [3 1 2]的事務(wù)是不一樣,表示兩個(gè)不同的事務(wù)。在存儲(chǔ)為多維數(shù)據(jù)立方體時(shí),按照事務(wù)中 項(xiàng)的順序,依次存入多維數(shù)據(jù)立方體的對(duì)應(yīng)維中。為了命名方便,這樣的事務(wù)集表示成的多 維數(shù)據(jù)立方體命名為多值有序數(shù)據(jù)立方體。
[0052] 對(duì)于屬性數(shù)據(jù)立方體,在進(jìn)行關(guān)聯(lián)規(guī)則挖掘時(shí),經(jīng)常要處理一些和屬性有關(guān)的問(wèn) 題,例如對(duì)于一幅圖像,經(jīng)過(guò)面向?qū)ο蟮膱D像分割,圖像被分割成若干個(gè)對(duì)象,對(duì)于每個(gè)對(duì) 象,可以提取各種屬性,如色調(diào)、熵、形狀等等,如果要挖掘這些屬性之間的關(guān)聯(lián)規(guī)則,就需 要用到屬性數(shù)據(jù)立方體。
[0053] 具體步驟是,首先計(jì)算每個(gè)對(duì)象的每個(gè)屬性;然后按照一定的規(guī)則,對(duì)每個(gè)屬性的 值進(jìn)行量化,量化等級(jí)需要根據(jù)實(shí)際情況確定,每個(gè)屬性的量化等級(jí)可以相同,也可以不 同;每一個(gè)對(duì)象的所有屬性量化后可以用一個(gè)事務(wù)表不,一個(gè)屬性對(duì)應(yīng)事務(wù)中的一個(gè)項(xiàng);最 后將事務(wù)中的每一項(xiàng)依次存入多維數(shù)據(jù)立方體的某一維中。經(jīng)過(guò)上述操作,這些屬性數(shù)據(jù) 即轉(zhuǎn)化為多值數(shù)據(jù)立方體。由于該屬性數(shù)據(jù)源與傳統(tǒng)的數(shù)據(jù)源有所差異,所以在命名時(shí)將 由屬性轉(zhuǎn)化的事務(wù)集構(gòu)成的多維數(shù)據(jù)立方體命名為屬性數(shù)據(jù)立方體。
[0054] S12,根據(jù)所述多維數(shù)據(jù)立方體得到1-項(xiàng)集和1-項(xiàng)頻繁集。
[0055] S13,根據(jù)1-項(xiàng)頻繁集得到k-項(xiàng)集和k-項(xiàng)頻繁集,以及根據(jù)k-項(xiàng)頻繁集得到k+Ι-項(xiàng) 集和k+Ι-項(xiàng)頻繁集,其中k為大于且等于2的正整數(shù)。
[0056] S14,根據(jù)1-項(xiàng)頻繁集和k-項(xiàng)頻繁集,產(chǎn)生1-項(xiàng)頻繁集的所有子集和k-項(xiàng)頻繁集的 所有子集以生成所述事務(wù)集的關(guān)聯(lián)規(guī)則。
[0057]在本發(fā)明的一個(gè)實(shí)施例中,所述步驟S12,具體包括以下步驟:
[0058] S121,統(tǒng)計(jì)所述事務(wù)集中每個(gè)值在每個(gè)維度上的出現(xiàn)頻率以及每個(gè)維度上每個(gè)值 的支持度,得到1-項(xiàng)集。
[0059] 具體的,首先掃描一遍事務(wù)集,將事務(wù)集轉(zhuǎn)化為多維數(shù)據(jù)立方體,同時(shí)記錄下整個(gè) 事務(wù)集的長(zhǎng)度,設(shè)為L(zhǎng)en。比如,將事務(wù)集轉(zhuǎn)化為三維多值有序數(shù)據(jù)立方體,即每一個(gè)事務(wù)由 三個(gè)項(xiàng)構(gòu)成,項(xiàng)之間是有序的,并將該三維數(shù)據(jù)立方體表示為A。設(shè)置最小支持度為min_ sup,最小置信度為min_cof。由于項(xiàng)是有序的,因此同一個(gè)數(shù)在三個(gè)維度上出現(xiàn)時(shí),其意義 是不一樣的,此時(shí)在獲取1-項(xiàng)集時(shí)需要單獨(dú)處理。采用數(shù)組的循環(huán)操作,在三個(gè)維度上分別 統(tǒng)計(jì)每個(gè)值出現(xiàn)的頻度:
[0060] for k = 1 :maxkv
[0061 ] sup_k = sum(A(k,: ,:))/Len;
[0062] end
[0063]其中maxkv表示在第一維上的最大值,sup_l^第一維上每個(gè)值的支持度,sum〇是 求和操作。A(k,:,:)表示三維數(shù)據(jù)立方體A中第一維等于k的所有子集。由于A的三個(gè)維度的 長(zhǎng)度是有限的,且遠(yuǎn)小于原始事務(wù)集的長(zhǎng)度,因此數(shù)組求和的計(jì)算速度非??臁?duì)三個(gè)維度 都執(zhí)行相同的操作,即可獲得1-項(xiàng)集,由于事務(wù)中的項(xiàng)是有序的,因此依然用數(shù)組存儲(chǔ)最終 的項(xiàng)集,如下表所示:
[0064]
[0065] S1M,宜找兵文狩皮入卞頂議的文狩皮的I-壩果,侍到I-壩頻緊果。
[0066] 具體的,預(yù)設(shè)的支持度為最小支持度。
[0067] 在本發(fā)明的一個(gè)實(shí)施例中,如圖2所示,在步驟S13具體包括以下步驟:
[0068] S131,將1-項(xiàng)頻繁集中的每?jī)蓚€(gè)頻繁項(xiàng)進(jìn)行邏輯或運(yùn)算再進(jìn)行求和運(yùn)算,得到1-項(xiàng)頻繁集中的多個(gè)運(yùn)算結(jié)果。
[0069] 具體的,1-項(xiàng)頻繁集中的每?jī)蓚€(gè)頻繁項(xiàng)進(jìn)行邏輯或運(yùn)算,接著對(duì)所述邏輯或運(yùn)算 結(jié)果進(jìn)行和運(yùn)算,得到和運(yùn)算結(jié)果。
[0070] S132,判斷每個(gè)運(yùn)算結(jié)果是否等于2,如果是,進(jìn)入步驟S133,如果否,進(jìn)入步驟 S134〇
[0071] S133,所述運(yùn)算結(jié)果對(duì)應(yīng)的兩個(gè)頻繁項(xiàng)進(jìn)行相交,得到當(dāng)前2-項(xiàng)集。
[0072] S134,放棄計(jì)算。
[0073] S135,計(jì)算當(dāng)前2-項(xiàng)集的支持度,查找其支持度大于最小支持度的2-項(xiàng)集,得到2- 項(xiàng)頻繁集。
[0074] S136,重復(fù)由1-項(xiàng)集生成2-項(xiàng)頻繁集的過(guò)程,將k-項(xiàng)頻繁集中的每?jī)蓚€(gè)頻繁項(xiàng)進(jìn) 行邏輯或運(yùn)算再進(jìn)行求和運(yùn)算,得到k-項(xiàng)頻繁集中的多個(gè)運(yùn)算結(jié)果。
[0075] S137,判斷每個(gè)運(yùn)算結(jié)果是否等于k+Ι,如果是,進(jìn)入步驟S138,如果否,進(jìn)入步驟 S134〇
[0076] S138,所述運(yùn)算結(jié)果對(duì)應(yīng)的兩個(gè)頻繁項(xiàng)進(jìn)行相交,以及根據(jù)所述相交結(jié)果得到當(dāng) 前的k+Ι-項(xiàng)集。
[0077] S139,計(jì)算當(dāng)前k+Ι-項(xiàng)集的支持度,查找其支持度大于最小支持度的k+Ι-項(xiàng)集,得 到k+Ι-項(xiàng)頻繁集。
[0078] 具體的,通過(guò)1-項(xiàng)頻繁集自交,生成2-項(xiàng)集,接著2-項(xiàng)頻繁集自交,生成3-項(xiàng)集,依 次計(jì)算。
[0079] 具體的,通過(guò)k_項(xiàng)頻繁集自交,生成k+Ι-項(xiàng)集。由于k_項(xiàng)頻繁集的存儲(chǔ)結(jié)構(gòu),在進(jìn) 行頻繁項(xiàng)自交前,可以先用邏輯運(yùn)算判斷該頻繁項(xiàng)是否能夠自交,如果不能,則放棄,以提 高計(jì)算效率。具體的判斷規(guī)則為:比如利用1-項(xiàng)頻繁集自交產(chǎn)生2-項(xiàng)集,1-項(xiàng)頻繁集中的兩 個(gè)頻繁項(xiàng)為[1 0 0]和[2 0 0],先做邏輯或運(yùn)算,結(jié)果為[1 0 0],對(duì)邏輯或運(yùn)算結(jié)果進(jìn)行 和計(jì)算,如果和等于2,則可以相交,否則不可以相交。而對(duì)于兩個(gè)頻繁項(xiàng)為[1 0 0]和[0 2 0],邏輯或運(yùn)算的結(jié)果為[1 1 0],其和為2,則可以相交,相交結(jié)果為[1 2 0];在相交的基 礎(chǔ)上,利用sum(A(l,2,:))即可迅速計(jì)算該2-項(xiàng)集的支持度,其中A(l,2,:)表示第一個(gè)維度 為1,第二個(gè)維度為2的所有子集。在此過(guò)程中無(wú)需遍歷原始事務(wù)集,僅需利用數(shù)組的尋址功 能,可以快速地計(jì)算支出持度。
[0080] 在本發(fā)明的一個(gè)實(shí)施例中,如圖3所示,在步驟S13具體包括以下步驟:
[0081] S301,將1-項(xiàng)頻繁集中的每?jī)蓚€(gè)頻繁項(xiàng)進(jìn)行邏輯或運(yùn)算再進(jìn)行求和運(yùn)算,得到1-項(xiàng)頻繁集中的多個(gè)運(yùn)算結(jié)果。
[0082] S302,判斷每個(gè)運(yùn)算結(jié)果是否等于2,如果是,進(jìn)入步驟S303,如果否,進(jìn)入步驟 S304。
[0083] S303,所述運(yùn)算結(jié)果對(duì)應(yīng)的兩個(gè)頻繁項(xiàng)進(jìn)行相交,得到當(dāng)前2-項(xiàng)集。
[0084] S304,放棄計(jì)算。
[0085] S305,計(jì)算當(dāng)前2-項(xiàng)集的支持度,查找其支持度大于最小支持度的2-項(xiàng)集,得到k- 項(xiàng)頻繁集。
[0086] S306,將k-項(xiàng)集與1 -項(xiàng)頻繁集進(jìn)行"邏輯或"運(yùn)算再進(jìn)行求和運(yùn)算。
[0087] S307,如果運(yùn)算結(jié)果等于k+Ι,則進(jìn)行相交,得到k+Ι-項(xiàng)集。
[0088] S308,計(jì)算當(dāng)前k+Ι-項(xiàng)集的支持度,查找其支持度大于最小支持度的k+Ι-項(xiàng)集,得 到k+Ι-項(xiàng)頻繁集。
[0089] 具體的,k-項(xiàng)頻繁集與1-項(xiàng)頻繁集相交,生成k+Ι-項(xiàng)集,但是在相交之前,需要先 判斷該頻繁項(xiàng)是否能夠