[摘要] 大量商業交易數據中隱含著許多對商業決策有益的知識,數據挖掘技術可以發現這些隱藏的模式和關系。本文簡要介紹了關聯規則挖掘算法,重點分析了不一致的支持度約束策略,分析了最小支持度與最大可信度的關系,提出了一種新的評估手段反映關聯規則的意義,結合具體實例對交易數據進行了關聯分析,用來發現那些雖然可信度、支持度較低,但仍然具有一定意義的規則。
[關鍵詞] 關聯分析 交易數據 規則篩選 商業決策
一、引言
商業流通領域積累的大量交易數據中隱含著許多對商業決策有益的知識,傳統的分析方法很難從中提取出這些知識,而數據挖掘技術可以發現這些隱藏的模式和關系。
企業為迎接市場的挑戰,必須對市場運作有準確的分析,通過分析可以得到準確、及時的信息,決策人員以企業的數據倉庫為基礎,經過聯機分析處理工具(OLAP)、數據挖掘工具以及決策規劃人員的專業知識,從數據中獲得有用的信息和知識,幫助企業獲取利潤。在商品交易數據上應用關聯規則可以實現:商品關聯關系的分析;顧客購買模式分析;商品銷售因素分析等,發現的知識用來指導貨籃擺放、搭配促銷和搭配進貨等經營行為。
商品關聯數據分析的功能是挖掘用戶購買的商品間的關系。通過對用戶購買紀錄的分析,發現那些用戶同時購買可能性較高的商品組合。對這樣的組合進行分析,確定哪些商品間存在著較強的關聯,分析的結果可以用于指導超市的貨籃擺放、捆綁銷售及搭配進貨。
商品關聯分析采用的是基于無候選項集產生算法FP-Growth開發的算法,在一種壓縮的數據結構FP-tree上進行挖掘,通過模式成長的方法挖掘頻繁模式。采用的算法,及針對數據特性對算法進行的改進。在文獻中有算法的詳細設計過程。
二、不一致的支持度約束策略
關聯規則是用來反映項之間的關系,它關心的是哪些項的組合滿足最小支持度,所以只有長度超過2的頻繁集(簡稱頻繁項集2)在的應用中才有意義,現有算法一般只給出一個唯一的支持度約束,即長度不同的頻繁項集滿足相同的支持度。頻繁項集1應該滿足更高的支持度約束才能保證頻繁項集2,這就是不一致的支持度約束策略。
不一致支持度約束策略:在不同長度的項集上采用不同的最小支持度約束,一般是隨著項集長度增加最小支持度遞減。
通過采用不一致的支持度約束策略,頻繁項集1的數目減少了,意味著每個事務處理包含更少的頻繁項,減少了插入到樹中所需的時間。同時,由于這些被忽略的項頻度都較低,在FP-tree中它們應該處在葉節點或接近葉節點的位置,與頻度高的節點相比分布相對分散,單位節點所包含的信息量太少,限制這些節點在FP-tree中的出現有時會使FP-tree的尺寸明顯減小。
三、規則篩選
根據對超市商品構成的分析,不同超市經營理念上的差異決定了它們客戶群購買行為上的差異,這種不同超市間的挖掘結果會有很大的不同。例如:上海某超市商品多達32000種,而沃爾瑪只有不到10000種商品。同時,由于國內外超市客戶購買行為上的不同,使得對于國內這種大而全的超市的數據進行關聯規則挖掘所得規則的可信度偏低。如果將規則的可信度調整的較高,則會丟失許多辛苦挖掘出來的規則,因此如何處理這些可信度較低的規則,發現其中有意義的規則是對挖掘結果進行深度處理的關鍵。說一條規則A=>B是有意義的,是指當規則滿足用戶給定的最小支持度Minsup和最小,可信度Minconf。
可信度:conf(A=>B)=sup(A∪B)/sup(A),通常由conf(A=>B)是否滿足給定的閩值Minconf來判斷A=>B是否有意義,且Minconf的值都比較大。一種觀點認為:判斷規則是否有意義,關鍵要看它的可信度是否大于50%。原因是:若conf(A=>B)=30%,那么有conf(A=> B)=70%,表示購買了A商品但沒有購買B商品的人多于購買了A商品同時購買了B商品的人,即買A不買B的可能性要大于買A又買B,所以規則A=>B沒有意義。
在實際應用中,認為上述觀點只反映了關聯規則中可信度意義的一個方面,對可信度更有意義的理解應該是conf(A => B)與conf (A => B)的比較,即購買了A又購買了B的人所占購買了A的人的比例與沒有購買A但購買了B的人所占沒有購買A的人的比例之間進行比較。實際上就是看B商品在A與A的情況下是否是均勻分布的。如果conf(A => B)的值明顯高出conf (A => B)的值,雖然conf (A => B)較低,也應該認為它是有意義的。
由于有層次的加入,發現會有這樣的規則產生:A=>B(8% support,60% confidence),現在有規則a=>B,其中a是A的一部分,Support(a)≈0.25×Support(A)。規則a=>B期望的支持度與可信度分別為2%和60%。如果a=>B的真實支持度與可信度大約為2%和60%,那么把它看作是冗余的規則。因為它與A=>B比較,不具有一般性并且它不帶有額外的信息。對于那些支持度或可信度高于期望支持度或可信度的規則,其重要性更高。
四、實驗結果
在采用不一致的支持度約束策略時,如何根據用戶設定的最小支持度給出頻繁項集1滿足的支持度是關鍵。通過用戶設定的最小支持度和由頻繁項集2產生的規則中出現的最大可信度的近似值推導頻繁項集1應該滿足的支持度約束??紤]規則a=>b,支持度為s,s>S,可信度c,c>C,S和C分別是最小支持度和最小可信度。根據支持度和可信度的定義可以得到a的支持度support(a)=s/c,如果s取最小值Smin,c取最大值Cmax,能夠得到頻繁項集2中包含的頻繁項集1需滿足的最小支持度值s1=Smin/Cmax,也就是說,只有滿足支持度s1的頻繁項集1才有可能產生滿足支持度S的頻繁項集2。顯然,支持度的最小值Smin是用戶設定的最小支持度:然而可信度的最高值Cmax就很難設置,如果設置為1,雖然保證了正確性,但沒有任何意義,如果設的過低,則有可能將某些有用的頻繁項集1忽略掉。
下面的實驗顯示了在對某超市一周銷售數據進行關聯分析時,適當提高頻繁項集1的支持度對算法的影響。
數據中包含36301個事務處理,設最小支持度為0.03%,最小可信度為10%。經過對數據掃描,得到1050個項滿足頻繁項集1,并且在最小支持度附近分布的頻繁項集1非常多,如果將出現的最大可信度設為70%(70%偏高,在實際應用中是很難出現的)。根據不一致支持度約束策略,頻繁項集1需滿足的支持度為0.043% (0.03%/70% ),這樣會有229個項不會被考慮,相應的樹的大小、頻繁項的個數都會發生變化。
現人為設定若干可信度的上限并計算相應的頻繁項集1應滿足的最小支持度,但不改變頻繁項集2的支持度,下面的表顯示了頭表、樹、頻繁模式和規則數量的相應變化。
說明:Maxconf最大可信度Cmax, Minsup頻繁項集1的最小支持度,HeadSize頻繁項集1項數,
TreeSize FP-tree中節點數,FPnum頻繁項集數,Rulenum規則數。
從表1中可以看出當可信度的上限越來越小時,頭表、樹、頻繁模式的數目都發生了很大變化,卻沒有影響規則的完整性(直到40%時才出現規則缺失的情況)。FP-tree的空間消耗在表中明顯地減少了,意味著可以給出更小的最小支持度,挖掘出更多可能有意義的規則。
參考文獻:
[1]王:商務數據中的關聯和聚類算法研究[學位論文],長春,吉林大學,2005
[2]陸楠王品周春光:基于FP-tree頻繁模式的FP-tree算法對關聯規則挖掘的影響,古林大學學報(理學版)180-185,2003年2期
[3]Efrem G. Mallach. Decision support and data warehouse systems[J], Boston: McGraw-Hill, 2005.12,79-80