熊中敏 朱春衛(wèi) 郭振輝 陳 明
1(上海海洋大學信息學院 上海201306) 2(農(nóng)業(yè)部漁業(yè)信息重點實驗室 上海 201306) 3(上海電子信息職業(yè)技術(shù)學院 上海 201411)
數(shù)據(jù)挖掘就是利用各種數(shù)理模型從數(shù)據(jù)庫中的海量數(shù)據(jù)中抽取隱藏的某種規(guī)律的一系列過程[1]。關(guān)聯(lián)規(guī)則挖掘能將數(shù)據(jù)庫中項與項之間的潛在關(guān)系挖掘出來,比如利用超市的購物單發(fā)現(xiàn)了購買啤酒和尿布的強規(guī)則[2]。最經(jīng)典的關(guān)聯(lián)規(guī)則算法是 Apriori 算法[3],但它需要反復(fù)掃描事務(wù)數(shù)據(jù)庫并產(chǎn)生大量候選集,占用內(nèi)存大、運行效率低。以下出現(xiàn)的是一些當前關(guān)聯(lián)規(guī)則挖掘急需解決的挑戰(zhàn)性問題[4]:
(1) 面臨當前海量信息,提高關(guān)聯(lián)規(guī)則挖掘算法的效率常常又會導致降低了挖掘結(jié)果的可行性、新奇性。
(2) 在挖掘的過程中,大型數(shù)據(jù)庫挖掘出的規(guī)則集過大,導致用戶難以理解、難以選擇。
(3) 關(guān)聯(lián)規(guī)則算法中融合其他算法、解決單純的關(guān)聯(lián)規(guī)則算法無法解決的應(yīng)用問題。好多挖掘方法看似和關(guān)聯(lián)規(guī)則算法沒有交集,若有機地融入算法中可揚長避短。
通過數(shù)據(jù)倉庫的OLAP操作:切片、切塊、旋轉(zhuǎn)、上卷和下鉆,用戶既可以快速地察覺到宏觀變化,又可以從細節(jié)上觀察變化的詳細因素。聚類是用戶用以觀察某一類具有共同特性的數(shù)據(jù)集的利器?,F(xiàn)有的關(guān)聯(lián)規(guī)則挖掘若結(jié)合OLAP和聚類分析,用戶可以有預(yù)見性地選取有分析意愿的數(shù)據(jù)集,挖掘結(jié)果更符合用戶的分析意愿,使得挖掘出的關(guān)聯(lián)規(guī)則的數(shù)量大為減少、而用戶的滿意度卻大大增加。本文的研究工作將部分地解決上述關(guān)聯(lián)規(guī)則挖掘研究中的挑戰(zhàn)問題,從而為數(shù)據(jù)倉庫和數(shù)據(jù)挖掘技術(shù)的應(yīng)用普及做出貢獻。
1.1 OLAP分析
用戶的決策分析在關(guān)系數(shù)據(jù)庫上需要經(jīng)過大量的計算,顯然簡單的查詢的結(jié)果難以滿足這種決策需求。因此,E.F.Codd于1993年提出了OLAP的概念(即多維數(shù)據(jù)庫和多維分析)。
定義1[5]OLAP(聯(lián)機分析處理)是聯(lián)機查詢和分析某個具體的主題的數(shù)據(jù),從多維度、不同綜合層次上直觀地將數(shù)據(jù)狀態(tài)展示給使用者。
OLAP分析主要利用以下5種操作[5]:切片、切塊、聚合、鉆取、旋轉(zhuǎn)。將多維數(shù)據(jù)集上某個維度固定為一個維度成員區(qū)間(例如取“2000年至2014年”),就得到一個切塊。維度的層次結(jié)構(gòu)代表了數(shù)據(jù)的綜合程度,如地區(qū)維度可能由地區(qū)、省、市、區(qū)構(gòu)成。綜合程度越低則細節(jié)級別越高,粒度越小,數(shù)據(jù)量越大。在某個維度上將綜合層次低的數(shù)據(jù)匯總到高層次數(shù)據(jù)是上卷操作。反之為下卷操作。這兩種瀏覽數(shù)據(jù)的方式,提供給用戶宏觀和微觀角度觀察數(shù)據(jù)。旋轉(zhuǎn)既可交換行和列上的維度,也可以交換維度的不同層次,從而得到用戶習慣的數(shù)據(jù)展示形式。
OLAP是數(shù)據(jù)分析過程中的重要工具,它使數(shù)據(jù)分析能夠在數(shù)據(jù)立方體上以用戶習慣的視角迅速、一致、交互地瀏覽數(shù)據(jù),以便用戶能深入理解數(shù)據(jù)。
1.2 聚類分析
與傳統(tǒng)統(tǒng)計分析及OLAP不同,數(shù)據(jù)挖掘采用計算機自動處理算法在數(shù)據(jù)集上進行自動挖掘,從而找到潛在、有用的知識。將個體之間的相似性作為“距離”的測度,使得相互間距離比較小歸為一類而不同類的個體間距離比較大,俗稱聚類。聚類反映的不僅有不同事物之間的差異性而且還有同類事物的共同性。數(shù)據(jù)集通過聚類被劃分為一系列子類,從而細化了人們的客觀認識,可以區(qū)分概念和偏差。當前常見的聚類算法有:劃分法[6]、層次法[7]、密度法[8]、網(wǎng)格法[9]和模型法[10]。
K-means算法[11]是比較典型的劃分法聚類算法,每個數(shù)據(jù)點唯一地分配給一個且僅一個聚類,而且需要預(yù)先指定需要劃分聚類的個數(shù),但方法簡單、較容易實現(xiàn)。本文將采用它作為聚類方法。K-means算法流程如下所示:
1) 選定數(shù)據(jù)空間中K個對象作為初始聚類中心,每個對象代表一個類別的中心。
2) 對于樣品中的數(shù)據(jù)對象,則根據(jù)它們與這些聚類中心的歐氏距離,按距離最近的準則分別將它們分配給與其最相似的聚類中心所代表的類。
3) 計算每個類別中所有對象的均值作為該類別的新聚類中心,計算所有樣本到其所在類別聚類中心的距離平方和,即J(C)值。
4) 聚類中心和J(C)值是否發(fā)生改變,若是則轉(zhuǎn)2),否則聚類結(jié)束。
1.3 關(guān)聯(lián)規(guī)則
關(guān)聯(lián)分析的目的就是為了發(fā)現(xiàn)數(shù)據(jù)間發(fā)生一定關(guān)聯(lián)關(guān)系的規(guī)律,通常采用以下形式:(X?Y,支持度=s,置信度=c)。這里X稱為規(guī)則的前件,Y稱為規(guī)則的后件,支持度s是包含X的項在全體項集中出現(xiàn)的頻率,置信度c是X和Y同時出現(xiàn)的項在出現(xiàn)有X的項集中所占比例。
Apriori算法是最知名的關(guān)聯(lián)規(guī)則發(fā)現(xiàn)方法。大于最小支持度的項集稱為頻繁項集,利用了頻繁集,Apriori算法分為兩個步驟[5]:
第一步:利用大于最小支持度和“Apriori性質(zhì)”找到所有頻繁項集;第二步:利用大于最小置信度將第一步找到的頻繁項集轉(zhuǎn)換為關(guān)聯(lián)規(guī)則。
算法使用迭代方法,利用“頻繁項集的所有非空子集都必須是頻繁的” Apriori性質(zhì)由“K-項集”產(chǎn)生“K+1-項集”,如此下去,直到找不到后繼的頻繁項集為止。
2.1 OLAP分析對關(guān)聯(lián)規(guī)則挖掘的影響
首先我們以一個簡單的例子來說明數(shù)據(jù)集的選擇對關(guān)聯(lián)規(guī)則挖掘出的結(jié)果的影響。
例1假定在一個零售商品的數(shù)據(jù)庫中包含兩個商場A和B的購物交易數(shù)據(jù),如表1所示。
表1 交易集的分析
下面分別討論表1中事務(wù)集對關(guān)聯(lián)規(guī)則的支持度和置信度的影響。
1) 由表1可以了解到,如果設(shè)定minsupp=0.2,minconf=0.6,整個200個交易記錄構(gòu)成的事務(wù)集按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則:
買牛奶→買咖啡s=25/200=0.125 故在整個交易記錄上上述規(guī)則因為不滿足設(shè)定的最小支持度在計算頻繁項集的時候就被舍棄。 2) 當我們設(shè)定的最小支持度的閾值可以滿足,即可以有效通過頻繁項集的計算,該規(guī)則仍然可能因為最小置信度不滿足導致被舍棄。 例如,在這個例子中如果我們設(shè)定minsupp=0.12,minconf=0.60,整個200個交易記錄構(gòu)成的事務(wù)集按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則: 買牛奶→買咖啡s=25/200=0.125>minsupp 即在關(guān)聯(lián)規(guī)則挖掘算法Apriori的第一步的頻繁項集的計算當中,該規(guī)則有效地包含在頻繁項集中。但在第二步生成關(guān)聯(lián)規(guī)則的時候,需要計算置信度: 買牛奶→買咖啡c=25/50=0.50 故在整個交易記錄上上述規(guī)則因為不滿足設(shè)定的最小置信度在算法第2步生成關(guān)聯(lián)規(guī)則的時候被舍棄。 3) 如果構(gòu)造了一個商品銷售分析的數(shù)據(jù)倉庫的多維數(shù)據(jù)模型。比如在事實表中含度量值:銷售金額和銷售數(shù)量,將商場作為一個分析的維度,則在OLAP操作中既可通過上卷(也稱之為上鉆)看到整個交易集(包含了A、B兩個商場)中買咖啡的總數(shù)量為35,買牛奶的數(shù)量為50。同時也能通過下鉆操作分別看到A商場和B商場買咖啡的數(shù)量分別為25和10;買牛奶的數(shù)量分別為25和25。很明顯買咖啡的數(shù)量集中在A商場。如果管理者有意識地需要得到咖啡銷售情況的關(guān)聯(lián)規(guī)則分析,只需要關(guān)注A商場的銷售情況。即如果現(xiàn)在只是在表2所示事務(wù)集上做關(guān)聯(lián)規(guī)則分析,按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則: 買牛奶→買咖啡s=20/100=0.2=minsupp c=20/25=0.8>minconf 表2 A商場交易集的分析 即設(shè)定minsupp=0.2,minconf=0.6,根據(jù)關(guān)聯(lián)規(guī)則挖掘算法能在面向商場A的數(shù)據(jù)分析上得到有效的關(guān)聯(lián)規(guī)則買牛奶→買咖啡。也就是這條關(guān)聯(lián)規(guī)則針對商場A有效,但對于整個交易記錄反而不成立。因為買咖啡的交易主要集中在商場A完成。 由此可見在數(shù)據(jù)倉庫的多維數(shù)據(jù)集上的OLAP分析,我們能清晰地看出待挖掘的事務(wù)集中的項集在不同維度層次結(jié)構(gòu)上的分布的不同,而這種數(shù)據(jù)分布的傾向性極大地影響到關(guān)聯(lián)規(guī)則挖掘算法執(zhí)行時生成頻繁項集的支持度的計算和生成關(guān)聯(lián)規(guī)則過程中置信度的計算,并導致最終能否生成用戶關(guān)注的關(guān)聯(lián)規(guī)則集合。 2.2 聚類分析對關(guān)聯(lián)規(guī)則挖掘的影響 基于多維數(shù)據(jù)集上直接的OLAP操作能輔助用戶對現(xiàn)有的多維數(shù)據(jù)集上的數(shù)據(jù)分布現(xiàn)狀的理解,形成用戶很清晰的數(shù)據(jù)分析對象的關(guān)注。 但上述數(shù)據(jù)理解方法仍然具有一定的局限性,從而妨礙了用戶需要的關(guān)聯(lián)規(guī)則的挖掘。這個問題類似如挖掘這樣的關(guān)聯(lián)規(guī)則:在上海浦東臨港地區(qū)農(nóng)工商超市現(xiàn)有不同類別人群的購物行為分析,或者是類似于用戶張三的人群的購物行為分析。很顯然,在數(shù)據(jù)倉庫中沒有直接的這樣的購物行為的事務(wù)集,因為這是關(guān)注于用戶的分析,而用戶是不確定的、動態(tài)的,不像2.1節(jié)中有明顯的維度成員:商場類別A和B。如果不能構(gòu)建滿足用戶意圖的事務(wù)集,而是在現(xiàn)有的數(shù)據(jù)倉庫抽取到的整個事務(wù)集上做關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘,會很明顯出現(xiàn)和在2.1節(jié)中分析的結(jié)果一樣的問題:針對特定數(shù)據(jù)分析對象的規(guī)則會因為支持度和置信度不夠而不能有效地生成;而在一個大范圍內(nèi)產(chǎn)生的規(guī)則因為適用面太大而沒有針對性,也就是用戶真正想關(guān)注的關(guān)聯(lián)規(guī)則不能有效地生成。 下面講述如何實現(xiàn)本文中涉及到的基于個人信息的用戶聚類分析,從而引證實現(xiàn)數(shù)據(jù)服務(wù)對象聚類的可行性方法。因為對用戶的聚類需要用戶注冊的個人信息,而現(xiàn)在大的商場或商務(wù)網(wǎng)站都實行了會員制,所以用戶的個人信息數(shù)據(jù)可以很方便得到。同時還有網(wǎng)上購物評價和相關(guān)論壇發(fā)帖,都能形成個人的信息,用于建立基于用戶個性特征和購物興趣的數(shù)據(jù)來源,從而利用現(xiàn)有的劃分方法生成基于相似性度量的聚類。本文采用最常用的K-means方法得到聚類劃分,而對于購物用戶的聚類分析采用文獻[12]的技術(shù)方案,只要布置好數(shù)據(jù)利用SQL SERVER2008 R2中analysis service部件自帶的聚類算法,選擇聚類模型為K-means即可。 本文在此仍然以一個如表3所示的簡單的例子來分析在應(yīng)用關(guān)聯(lián)規(guī)則挖掘時出現(xiàn)的上述問題,并默認本例中用戶已經(jīng)聚類為兩類。 表3 交易集的分析 下面分別討論表3中事務(wù)集對關(guān)聯(lián)規(guī)則的支持度和置信度的影響。 1) 由表3可以了解到如果設(shè)定minsupp=0.2,minconf=0.6,整個200個交易記錄構(gòu)成的事務(wù)集按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則: 買牛奶→買面包s=25/200=0.125 故在整個交易記錄上上述規(guī)則因為不滿足設(shè)定的最小支持度在計算頻繁項集的時候就被舍棄。 2) 當我們設(shè)定的最小支持度的閾值可以滿足,即可以有效通過頻繁項集的計算,該規(guī)則仍然可能因為最小置信度不滿足導致被舍棄。 例如,在這個例子中如果我們設(shè)定minsupp=0.12,minconf=0.60,整個200個交易記錄構(gòu)成的事務(wù)集按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則: 買牛奶→買面包s=25/200=0.125>minsupp 即在關(guān)聯(lián)規(guī)則挖掘算法Apriori的第一步的頻繁項集的計算當中,該規(guī)則有效地包含在頻繁項集中。但在第二步生成關(guān)聯(lián)規(guī)則的時候,需要計算置信度: 買牛奶→買面包c=25/50=0.50 故在整個交易記錄上上述規(guī)則因為不滿足設(shè)定的最小置信度在算法第2步生成關(guān)聯(lián)規(guī)則的時候被舍棄。 3) 如果構(gòu)造了一個商品銷售分析的數(shù)據(jù)倉庫的多維數(shù)據(jù)模型,比如在事實表中含度量值:銷售數(shù)量,將用戶作為一個分析的維度。為了挖掘這樣的關(guān)聯(lián)規(guī)則:類似于用戶張三的人群的購物行為分析,需要事先完成用戶的聚類分析。我們將具體實現(xiàn)用戶聚類的方法留在后面詳細闡述,先假定已經(jīng)完成了商品銷售分析中客戶聚類。通過查詢張三所屬的用戶聚類,將交易集中的用戶分為“類似張三用戶”,即張三所在的客戶聚類,而其他客戶聚類則劃分為“不類似張三用戶”。整個交易集(包含了類似張三用戶、不類似張三用戶)中買咖啡的總數(shù)量為35,買面包的數(shù)量為50,同時也能看到類似張三用戶和不類似張三用戶買面包的數(shù)量分別為25和10,買牛奶的數(shù)量均為25。很明顯,買面包的數(shù)量集中在類似張三用戶。如果管理者有意識地需要得到面包銷售情況的關(guān)聯(lián)規(guī)則分析,只需要關(guān)注類似張三用戶的銷售情況。即如果現(xiàn)在只是在表4所示事務(wù)集上做關(guān)聯(lián)規(guī)則分析,按照現(xiàn)有挖掘算法就可以得到如下關(guān)聯(lián)規(guī)則: 買牛奶→買面包s=20/100=0.2=minsupp c=20/25=0.8>minconf 表4 A商場交易集的分析 即設(shè)定minsupp=0.2,minconf=0.6,根據(jù)關(guān)聯(lián)規(guī)則挖掘算法能在面向類似張三用戶的數(shù)據(jù)分析上得到有效的關(guān)聯(lián)規(guī)則買牛奶→買面包。也就是這條關(guān)聯(lián)規(guī)則針對類似張三用戶有效,但對于整個交易記錄反而不成立。因為買面包的交易主要由類似張三用戶完成。由此可見為了完成用戶需要得到的具有某一類特征的數(shù)據(jù)分析對象的關(guān)聯(lián)規(guī)則,需要完成具有相似特性的數(shù)據(jù)分析對象的聚類,從而才能得到有針對性的關(guān)聯(lián)規(guī)則;否則,在整個事務(wù)集上的關(guān)聯(lián)規(guī)則分析,得不到用戶心中想得到的有針對性的分析。 2.3 綜合OLAP和聚類分析的關(guān)聯(lián)規(guī)則挖掘算法 由于數(shù)據(jù)倉庫環(huán)境下,用戶可以通過數(shù)據(jù)倉庫系統(tǒng)特有的OLAP操作和MDX語言進行多維數(shù)據(jù)分析。特別是上卷/下鉆功能可以在不同綜合細節(jié)和不同維度層次結(jié)構(gòu)上看到度量值的不同變化,從而用戶可以通過這些操作了解到感興趣的數(shù)據(jù)分析對象的分布狀況。而感興趣的數(shù)據(jù)分析對象集中分布的數(shù)據(jù)集通過本文的分析極大地影響到關(guān)聯(lián)規(guī)則挖掘的結(jié)果。 另外,在數(shù)據(jù)倉庫環(huán)境中集成了與分析主題相關(guān)的多數(shù)據(jù)源的、海量歷史數(shù)據(jù)。這是一般為數(shù)據(jù)挖掘準備的數(shù)據(jù)庫所不具備的有利條件,而且在數(shù)據(jù)倉庫環(huán)境中已經(jīng)通過抽取、轉(zhuǎn)換和裝載(ETL)過程使這些數(shù)據(jù)達成了一致性和完備性,形成了很高質(zhì)量的數(shù)據(jù)。這些有利條件可以進一步地將用于關(guān)聯(lián)規(guī)則挖掘的事務(wù)集中的數(shù)據(jù)進行聚類劃分,從而可以挖掘出針對某些具有相似特征的聚類有效的關(guān)聯(lián)規(guī)則。而這些關(guān)聯(lián)規(guī)則常常對于整個事務(wù)集由于支持度和置信度不夠而被挖掘算法過濾掉。這就導致了用戶難以得到比較精確的數(shù)據(jù)分析結(jié)果,而這種有針對性的分析結(jié)果在當前提出的主動推薦技術(shù)和精準網(wǎng)絡(luò)廣告上尤其重要。 定義2[5]數(shù)據(jù)庫中不可分割的最小單位信息,稱為項目,用符號i表示。項的集合稱為項集。設(shè)集合I={i1,i2,…,ik},項目的個數(shù)為K,則I稱為K-項集。例如,集合{啤酒,尿布,牛奶}是一個3-項集。 定義3[5]若X,Y為項目集,且X∩Y=?,蘊涵式X?Y稱為關(guān)聯(lián)規(guī)則,X和Y分別稱之為X?Y的前提和結(jié)論。 規(guī)則X?Y的支持度s是含有X的記錄在全體記錄中所占的比率,置信度c是同時含有X和Y的記錄數(shù)與含有X的記錄數(shù)的比率。顯然,支持度s表示規(guī)則的頻度,置信度c表示規(guī)則的強度,s和c均大于給定閾值的稱為強規(guī)則,數(shù)據(jù)挖掘的主要興趣是強規(guī)則的發(fā)現(xiàn)。s的最小閾值記為minsupp,c的最小閾值記為minconf。 定義4將事務(wù)集中用戶感興趣的項(item)的集合稱為用戶興趣項集,并記為Interest-itemset,其中的項稱為用戶興趣項。 用戶興趣項一般為挖掘出的規(guī)則的后件即為分析對象,即用戶想知道提高感興趣的商品的銷售量的影響因素有哪些,而這些挖掘出的關(guān)聯(lián)規(guī)則的前提就是能提高作為規(guī)則后件的商品銷售量的影響因子。用戶興趣項也可以不是挖掘出的關(guān)聯(lián)規(guī)則的后件,即是聚類因子,是用戶感興趣的需要聚類的維度或維成員。 提出用戶興趣項的概念是為了表達用戶的分析意愿,從而對關(guān)聯(lián)規(guī)則的挖掘結(jié)果施加用戶挖掘目的性的影響。這樣不僅可以縮小待挖掘數(shù)據(jù)集的大小,提高挖掘算法的執(zhí)行效率,而且可以縮小挖掘出來的關(guān)聯(lián)規(guī)則的個數(shù)達到用戶可理解的程度、以便用戶做出自己的選擇。用戶興趣項是由用戶指定的,表達了用戶的分析需求。在2.1節(jié)中零售管理人員想分析客戶買咖啡和哪些購買項有關(guān)聯(lián),則買咖啡是用戶的興趣項,在最后的挖掘結(jié)果中作為關(guān)聯(lián)規(guī)則的后件出現(xiàn)。在2.2節(jié)中,用戶的分析意愿并沒有完全表達為關(guān)聯(lián)規(guī)則的后件,而是關(guān)注不同用戶群的購買面包和哪些購買項相關(guān)聯(lián)。這樣可以針對不同用戶的購買行為制定促銷策略引導消費,在這里用戶的意愿中買面包是待挖掘的規(guī)則后件,數(shù)據(jù)倉庫中的客戶維度則是聚類因子。 定義5將多維數(shù)據(jù)集中影響用戶興趣項的度量值變化比較顯著的維度或維度層次上的成員值稱為用戶興趣維度成員,并記為Interest-dim-Member,形成的集合記作Interest-dim-MemberSet。 在定義4的基礎(chǔ)上,我們進一步提出了用戶興趣維度成員的概念,用戶興趣維度成員是通過OLAP的切片、切塊、上卷/下卷等操作觀察引起用戶興趣項的度量值變化比較顯著的維度成員值或維度層次上的成員值。比如在2.1節(jié)中我們通過下鉆操作發(fā)現(xiàn)用戶興趣項買咖啡的數(shù)量主要集中在商場維度的成員值“商場A”上;或在維度上進行維度成員的聚類劃分,選取用戶感興趣的維度成員的聚類作為用戶興趣度成員。比如在2.2節(jié)中通過用戶聚類后查詢“類似張三用戶”的用戶聚類和“不類似張三用戶”用戶聚類,發(fā)現(xiàn)買面包的數(shù)量集中在“類似張三用戶”群上,則“類似張三用戶”的用戶聚類中的客戶維度成員作為用戶的興趣維度成員。 算法1綜合OLAP和聚類分析的關(guān)聯(lián)規(guī)則挖掘 Apriori-OLC(based on OLAP and Clusters) 輸入:聚類個數(shù)K,事務(wù)集I,minsupp,minconf,用戶興趣項集Interest-itemset 輸出:關(guān)聯(lián)規(guī)則集Associate-ruleset Begin (1) For each i(Interest-itemset do { Ifi為用戶感興趣的關(guān)聯(lián)規(guī)則的后件 then通過OLAP上卷/下鉆操作或MDX語言發(fā)現(xiàn)與項i相關(guān)的Interest-dim-Member,并記入集合Interest-dim-MemberSet else i為用戶感興趣的聚類因子,則根據(jù)聚類個數(shù)K,調(diào)用K-平均值聚類算法劃分聚類,并選擇符合用戶分析意愿的聚類中的維成員并入Interest-dim-MemberSet; }; For eachj(Interest-dim-MemberSetdo { Where子句中將維成員j作選擇過濾條件; } 在交易數(shù)據(jù)庫中編寫Select選擇語句,并選擇上述Where子句,查詢出來的結(jié)果作為交易事務(wù)集I; 根據(jù)minsupp,minconf,在事務(wù)集I上調(diào)用關(guān)聯(lián)規(guī)則挖掘算法Apriori,生成的關(guān)聯(lián)規(guī)則集記入Associate-ruleset; (2) Return(Associate-ruleset); END. 算法1即關(guān)聯(lián)規(guī)則挖掘算法 Apriori-OLC的理論基礎(chǔ)和對關(guān)聯(lián)規(guī)則挖掘的有效性在2.1節(jié)和2.2節(jié)已有很詳細的闡述。由此可見算法1可以提高關(guān)聯(lián)規(guī)則挖掘結(jié)果對于用戶的滿意度,也改善了當前關(guān)聯(lián)挖掘結(jié)果集太大而用戶無所適從的應(yīng)用瓶頸,使得所挖掘的結(jié)果具有針對性從而能為用戶所想、亦為用戶所用。 3.1 算法評價指標及分析 1) 基本評價指標包括:支持度和置信度。 這是事先人為設(shè)定的,只有滿足大于最小支持度和最小置信度的規(guī)則才是最后挖掘出的強關(guān)聯(lián)規(guī)則,見本文1.3節(jié)的描述。通過本文2.1節(jié)和2.2節(jié)的分析可知:與基于Apriori算法的關(guān)聯(lián)規(guī)則挖掘算法比較,采用算法1通過支持用戶預(yù)先設(shè)定的用戶興趣項并經(jīng)過OLAP分析和聚類分析得到用戶興趣維度成員,從而精簡了待挖掘的數(shù)據(jù)集,提高了用戶感興趣的規(guī)則的支持度和置信度,挖掘出用戶真正感興趣的規(guī)則。而這些規(guī)則在沒有支持用戶興趣項挖掘的Apriori算法中常常因為沒有大于最小支持度或最小置信度而被舍棄。 2) 定性評價指標包括:關(guān)聯(lián)規(guī)則的簡潔度。 關(guān)聯(lián)規(guī)則的簡潔度表現(xiàn)為規(guī)則個數(shù)和規(guī)則前件包含的項的數(shù)目。規(guī)則個數(shù)和前件中包含項的個數(shù)越少,規(guī)則越簡潔,則用戶越容易理解。由于算法1相對于Apriori算法支持了用戶興趣項挖掘,挖掘出的規(guī)則更簡潔,不包含與用戶興趣無關(guān)的規(guī)則。 3.2 實際分析項目中的實驗驗證 利用SQL SERVER 2008 R2提供的SQL Server Management Studio(SSMS)部件建立實驗環(huán)境下的數(shù)據(jù)倉庫以及SQL Server Business Intelligence Development Studio(BIDS)部件建立一個分析項目包括多維數(shù)據(jù)模型和OLAP分析及關(guān)聯(lián)規(guī)則挖掘。實驗中使用的數(shù)據(jù)來源于海洋環(huán)境觀測數(shù)據(jù)。運用Apriori關(guān)聯(lián)規(guī)則挖掘,得到如圖1所示結(jié)果。 圖1 關(guān)聯(lián)規(guī)則挖掘結(jié)果 挖掘出的關(guān)聯(lián)規(guī)則過多,通過設(shè)置參數(shù)可以調(diào)整挖掘的個數(shù),但用戶仍然不清楚這些規(guī)則對整個數(shù)據(jù)集的針對性,難以達到輔助用戶決策的目的。在多維數(shù)據(jù)集上,通過OLAP的下鉆操作得到如圖2所示的數(shù)據(jù)展示。 圖2 OLAP的下鉆操作結(jié)果 從圖2的OLAP下鉆操作結(jié)果,用戶很容易看出影響要分析的對象“平均葉綠素濃度”的因子是月份和監(jiān)測海域。因為月份在關(guān)聯(lián)規(guī)則挖掘的數(shù)據(jù)集中,所以用戶可以定義關(guān)于月份的一個劃分,來看在這個時間段區(qū)間里影響平均葉綠素濃度的關(guān)聯(lián)規(guī)則挖掘。比如可以限定監(jiān)測海域=大連市近岸海域、月份=2011/1~2011/3來選擇過濾數(shù)據(jù)集,則可以得到關(guān)聯(lián)規(guī)則:當日期2011/1~2011/3?平均葉綠素濃度>1.22。由圖1在SQL SERVER2008中展示的關(guān)聯(lián)規(guī)則依賴關(guān)系圖可知,在整個數(shù)據(jù)集上可挖掘到關(guān)聯(lián)規(guī)則:當日期<2011/2/21?平均葉綠素濃度<0.62。 可見當用戶沒有通過OLAP分析對分析對象“平均葉綠素濃度”的值在不同影響因子上的分布情況有足夠的理解時,根本得不到自己想要看到的關(guān)聯(lián)規(guī)則。而整個數(shù)據(jù)集上挖掘的關(guān)聯(lián)規(guī)則由于沒有針對性,用戶很難進行解讀,也很難有助于用戶的決策分析。 將監(jiān)測海域作為聚類對象,與之相關(guān)的所在月份及監(jiān)測的平均葉綠素濃度作為屬性數(shù)據(jù),采用歐式距離計算相似度并利用K-平均值進行聚類,可得到以下聚類:1) 2011/1-2011/3,大連市近岸海域;2) 2011/2-2011/4,寧波市近岸海域;3) 2011/1-2011/4,上海市近岸海域。 對屬于不同聚類上的數(shù)據(jù)集分別進行關(guān)聯(lián)規(guī)則挖掘,得到: 1) 2011/1-2011/3,大連市近岸海域;當日期2011/1-2011/3?平均葉綠素濃度>1.22。 2) 2011/2-2011/4,寧波市近岸海域;當日期2011/2-2011/4?平均葉綠素濃度>1.35。 3) 2011/1-2011/4,上海市近岸海域;當日期2011/1-2011/4?0.36<平均葉綠素濃度<1。 這些關(guān)聯(lián)規(guī)則遠比在整個數(shù)據(jù)集上可挖掘到關(guān)聯(lián)規(guī)則(由圖1可知)“當日期<2011/2/21時?平均葉綠素濃度<0.62”更有意義。因為這條規(guī)則針對以上任何一個聚類都沒有實際指導意義,并且與規(guī)則1、規(guī)則2這兩個聚類的實際相關(guān)的關(guān)聯(lián)規(guī)則表達的意義剛好相反。 為了克服當前關(guān)聯(lián)規(guī)則挖掘方法得到的關(guān)聯(lián)規(guī)則集過大,而且因為沒有針對性導致用戶無法理解的現(xiàn)象,本文提出了用戶興趣項和用戶興趣維度成員的概念,用來表達用戶對事務(wù)集中數(shù)據(jù)分析對象的關(guān)注,從而將關(guān)聯(lián)規(guī)則挖掘算法和用戶的分析意愿結(jié)合在一起。并進一步給出了基于數(shù)據(jù)倉庫環(huán)境下OLAP操作和聚類分析的關(guān)聯(lián)規(guī)則挖掘的技巧。新的關(guān)聯(lián)規(guī)則挖掘技巧較現(xiàn)有方法可以減少挖掘出的關(guān)聯(lián)規(guī)則的數(shù)量并真正挖掘出用戶所關(guān)注的數(shù)據(jù)分析對象的關(guān)聯(lián)規(guī)則。 參 考 文 獻 [1] Agrawal R,Imieliński T,Swami A.Mining association rules between sets of items in large databases[C]//ACM SIGMOD International Conference on Management of Data.ACM,1993:207-216. [2] Agrawal R,Srikant R.Fast Algorithm for Mining Association Rules[J].Computer Engineering & Applications,1994,15(6):619-624. [3] Park J S,Chen M S,Yu P S.An effective hash-based algorithm for mining association rules[C]//SIGMOD’95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data,1995:175-186. [4] 何月順.關(guān)聯(lián)規(guī)則挖掘技術(shù)的研究及應(yīng)用[D].南京航空航天大學,2010. [5] 陳偉文.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘教程[M].北京:清華大學出版社,2011. [6] 征原,謝云.基于劃分的聚類個數(shù)與初始中心的確定方法[J].計算機技術(shù)與發(fā)展,2017,27(7):76-78. [7] 余成進,趙姝,陳潔,等.復(fù)雜網(wǎng)絡(luò)中的層次結(jié)構(gòu)挖掘[J].南京大學學報(自然科學),2016,52(5):861-870. [8] 周夢熊,葉巖明,任一支,等.基于密度聚類的協(xié)作學習群組構(gòu)建方法[J].計算機工程與設(shè)計,2016,37(10):2710-2716. [9] 繆裕青,高韓,劉同來,等.基于網(wǎng)格聚類的情感分析研究[J].中國科學技術(shù)大學學報,2016(10):874-882. [10] 魏瑾瑞.一類基于模型的聚類方法[J].統(tǒng)計與信息論壇,2014,29(2):19-22. [11] 李衛(wèi)軍.K-means聚類算法的研究綜述[J].現(xiàn)代計算機(專業(yè)版),2014(8):31-32,36. [12] 周粉妹.聚類算法在客戶細分中的應(yīng)用[J].煙臺職業(yè)學院學報,2006,12(2):46-49.3 關(guān)聯(lián)規(guī)則挖掘項目設(shè)計及實驗驗證分析
4 結(jié) 語