天天看點

關聯規則分析 二

       關聯規則是形如X→Y的蘊涵式,其中,X和Y分别稱為關聯規則的先導(antecedent或left-hand-side, LHS)和後繼(consequent或right-hand-side, RHS)

故事 

       在描述有關關聯規則的一些細節之前,先來看一個有趣的故事: "尿布與啤酒"的故事。在一家超市裡,有一個有趣的現象:尿布和啤酒赫然擺在一起出售。但是這個奇怪的舉措卻使尿布和啤酒的銷量雙雙增加了。這不是一個笑話,而是發生在美國沃爾瑪連鎖店超市的真實案例,并一直為商家所津津樂道。沃爾瑪擁有世界上最大的資料倉庫系統,為了能夠準确了解顧客在其門店的購買習慣,沃爾瑪對其顧客的購物行為進行購物籃分析,想知道顧客經常一起購買的商品有哪些。沃爾瑪資料倉庫裡集中了其各門店的詳細原始交易資料。在這些原始交易資料的基礎上,沃爾瑪利用資料挖掘方法對這些資料進行分析和挖掘。一個意外的發現是:"跟尿布一起購買最多的商品竟是啤酒!經過大量實際調查和分析,揭示了一個隐藏在"尿布與啤酒"背後的美國人的一種行為模式:在美國,一些年輕的父親下班後經常要到超市去買嬰兒尿布,而他們中有30%~40%的人同時也為自己買一些啤酒。産生這一現象的原因是:美國的太太們常叮囑她們的丈夫下班後為小孩買尿布,而丈夫們在買尿布後又随手帶回了他們喜歡的啤酒。

按正常思維,尿布與啤酒風馬牛不相及,若不是借助資料挖掘技術對海量交易資料進行挖掘和分析,沃爾瑪是不可能發現資料内在這一有價值的規律的。

定義

韓家炜等觀點,關聯規則定義為:假設I是項的集合。給定一個交易資料庫D,其中每個事務(Transaction)t是I的非空子集,即,每一個交易都與一個唯一的辨別符TID(Transaction ID)對應。關聯規則在D中的支援度(support)是D中事務同時包含X、Y的百分比,即機率;置信度(confidence)是D中事物已經包含X的情況下,包含Y的百分比,即條件機率。如果滿足最小支援度門檻值和最小置信度門檻值。這些門檻值是根據挖掘需要人為設定。

例子

      基本概念表1:關聯規則的簡單例子

TID 網球拍 網 球 運動鞋 羽毛球
1 1 1 1
2 1 1
3 1
4 1 1
5 1 1 1
6 1 1

置信度β = 0.6,認為購買網球拍和購買網球之間存在關聯。

挖掘過程

兩個階段

關聯規則挖掘過程主要包含兩個階段:

第一階段必須先從資料集合中找出所有的高頻項目組(Frequent Itemsets),

第二階段再由這些高頻項目組中産生關聯規則(Association Rules)。

原始資料集合中,找出所有高頻項目組(Large Itemsets)。高頻的意思是指某一項目組出現的頻率相對于所有記錄而言,必須達到某一水準。一項目組出現的頻率稱為支援度(Support),以一個包含A與B兩個項目的2-itemset為例,我們可以經由公式(1)求得包含{A,B}項目組的支援度,若支援度大于等于所設定的最小支援度(Minimum Support)門檻值時,則{A,B}稱為高頻項目組。一個滿足最小支援度的k-itemset,則稱為高頻k-項目組(Frequent k-itemset),一般表示為Large k或Frequent k。算法并從Large k的項目組中再産生Large k+1,直到無法再找到更長的高頻項目組為止。

公式(2)求得,若信賴度大于等于最小信賴度,則稱AB為關聯規則。

案例分析

      就沃爾馬案例而言,使用關聯規則挖掘技術,對交易資料庫中的紀錄進行資料挖掘,首先必須要設定最小支援度與最小信賴度兩個門檻值,在此假設最小支援度min_support=5% 且最小信賴度min_confidence=70%。是以符合此該超市需求的關聯規則将必須同時滿足以上兩個條件。若經過挖掘過程所找到的關聯規則「尿布,啤酒」,滿足下列條件,将可接受「尿布,啤酒」的關聯規則。用公式可以描述Support(尿布,啤酒)>=5%且Confidence(尿布,啤酒)>=70%。其中,Support(尿布,啤酒)>=5%于此應用範例中的意義為:在所有的交易紀錄資料中,至少有5%的交易呈現尿布與啤酒這兩項商品被同時購買的交易行為。Confidence(尿布,啤酒)>=70%于此應用範例中的意義為:在所有包含尿布的交易紀錄資料中,至少有70%的交易會同時購買啤酒。是以,今後若有某消費者出現購買尿布的行為,超市将可推薦該消費者同時購買啤酒。這個商品推薦的行為則是根據「尿布,啤酒」關聯規則,因為就該超市過去的交易紀錄而言,支援了“大部份購買尿布的交易,會同時購買啤酒”的消費行為。

從上面的介紹還可以看出,關聯規則挖掘通常比較适用與記錄中的名額取離散值的情況。如果原始資料庫中的名額值是取連續的資料,則在關聯規則挖掘之前應該進行适當的資料離散化(實際上就是将某個區間的值對應于某個值),資料的離散化是資料挖掘前的重要環節,離散化的過程是否合理将直接影響關聯規則的挖掘結果。

分類

按照不同情況,關聯規則可以進行分類如下:

1.基于規則中處理的變量的類别:

       關聯規則處理的變量可以分為布爾型和數值型。布爾型關聯規則處理的值都是離散的、種類化的,它顯示了這些變量之間的關系;而數值型關聯規則可以和多元關聯或多層關聯規則結合起來,對數值型字段進行處理,将其進行動态的分割,或者直接對原始的資料進行處理,當然數值型關聯規則中也可以包含種類變量。例如:性别=“女”=>職業=“秘書” ,是布爾型關聯規則;性别=“女”=>avg(收入)=2300,涉及的收入是數值類型,是以是一個數值型關聯規則。

2.基于規則中資料的抽象層次:

      基于規則中資料的抽象層次,可以分為單層關聯規則和多層關聯規則。在單層的關聯規則中,所有的變量都沒有考慮到現實的資料是具有多個不同的層次的;而在多層的關聯規則中,對資料的多層性已經進行了充分的考慮。例如:IBM桌上型電腦=>Sony列印機,是一個細節資料上的單層關聯規則;桌上型電腦=>Sony列印機,是一個較高層次和細節層次之間的多層關聯規則。

3.基于規則中涉及到的資料的維數:

     關聯規則中的資料,可以分為單維的和多元的。在單維的關聯規則中,我們隻涉及到資料的一個維,如使用者購買的物品;而在多元的關聯規則中,要處理的資料将會涉及多個維。換成另一句話,單維關聯規則是處理單個屬性中的一些關系;多元關聯規則是處理各個屬性之間的某些關系。例如:啤酒=>尿布,這條規則隻涉及到使用者的購買的物品;性别=“女”=>職業=“秘書”,這條規則就涉及到兩個字段的資訊,是兩個維上的一條關聯規則。

相關算法

Apriori算法:使用候選項集找頻繁項集

     Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。該關聯規則在分類上屬于單維、單層、布爾關聯規則。在這裡,所有支援度大于最小支援度的項集稱為頻繁項集,簡稱頻集。

該算法的基本思想是:首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支援度一樣。然後由頻集産生強關聯規則,這些規則必須滿足最小支援度和最小可信度。然後使用第1步找到的頻集産生期望的規則,産生隻包含集合的項的所有規則,其中每一條規則的右部隻有一項,這裡采用的是中規則的定義。一旦這些規則被生成,那麼隻有那些大于使用者給定的最小可信度的規則才被留下來。為了生成所有頻集,使用了遞推的方法。

可能産生大量的候選集,以及可能需要重複掃描資料庫,是Apriori算法的兩大缺點。

基于劃分的算法

       Savasere等設計了一個基于劃分的算法。這個算法先把資料庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊并對它生成所有的頻集,然後把産生的頻集合并,用來生成所有可能的頻集,最後計算這些項集的支援度。這裡分塊的大小選擇要使得每個分塊可以被放入主存,每個階段隻需被掃描一次。而算法的正确性是由每一個可能的頻集至少在某一個分塊中是頻集保證的。該算法是可以高度并行的,可以把每一分塊分别配置設定給某一個處理器生成頻集。産生頻集的每一個循環結束後,處理器之間進行通信來産生全局的候選k-項集。通常這裡的通信過程是算法執行時間的主要瓶頸;而另一方面,每個獨立的處理器生成頻集的時間也是一個瓶頸。

FP-樹頻集算法

       針對Apriori算法的固有缺陷,J. Han等提出了不産生候選挖掘頻繁項集的方法:FP-樹頻集算法。采用分而治之的政策,在經過第一遍掃描之後,把資料庫中的頻集壓縮進一棵頻繁模式樹(FP-tree),同時依然保留其中的關聯資訊,随後再将FP-tree分化成一些條件庫,每個庫和一個長度為1的頻集相關,然後再對這些條件庫分别進行挖掘。當原始資料量很大的時候,也可以結合劃分的方法,使得一個FP-tree可以放入主存中。實驗表明,FP-growth對不同長度的規則都有很好的适應性,同時在效率上較之Apriori算法有巨大的提高。

應用

     關聯規則挖掘技術已經被廣泛應用在西方金融行業企業中,它可以成功預測銀行客戶需求。一旦獲得了這些資訊,銀行就可以改善自身營銷。銀行天天都在開發新的溝通客戶的方法。各銀行在自己的ATM機上就捆綁了顧客可能感興趣的本行産品資訊,供使用本行ATM機的使用者了解。如果資料庫中顯示,某個高信用限額的客戶更換了位址,這個客戶很有可能新近購買了一棟更大的住宅,是以會有可能需要更高信用限額,更高端的新信用卡,或者需要一個住房改善貸款,這些産品都可以通過信用卡賬單郵寄給客戶。當客戶打電話咨詢的時候,資料庫可以有力地幫助電話銷售代表。銷售代表的電腦螢幕上可以顯示出客戶的特點,同時也可以顯示出顧客會對什麼産品感興趣。

同時,一些知名的電子商務站點也從強大的關聯規則挖掘中的受益。這些電子購物網站使用關聯規則中規則進行挖掘,然後設定使用者有意要一起購買的捆綁包。也有一些購物網站使用它們設定相應的交叉銷售,也就是購買某種商品的顧客會看到相關的另外一種商品的廣告。

但是在我國,“資料海量,資訊缺乏”是商業銀行在資料大集中之後普遍所面對的尴尬。金融業實施的大多數資料庫隻能實作資料的錄入、查詢、統計等較低層次的功能,卻無法發現資料中存在的各種有用的資訊,譬如對這些資料進行分析,發現其資料模式及特征,然後可能發現某個客戶、消費群體或組織的金融和商業興趣,并可觀察金融市場的變化趨勢。可以說,關聯規則挖掘的技術在我國的研究與應用并不是很廣泛深入。

研究

     由于許多應用問題往往比超市購買問題更複雜,大量研究從不同的角度對關聯規則做了擴充,将更多的因素內建到關聯規則挖掘方法之中,以此豐富關聯規則的應用領域,拓寬支援管理決策的範圍。如考慮屬性之間的類别層次關系,時态關系,多表挖掘等。圍繞關聯規則的研究主要集中于兩個方面,即擴充經典關聯規則能夠解決問題的範圍,改善經典關聯規則挖掘算法效率和規則興趣性。