數據挖掘算法之-關聯規則挖掘(Association Rule)


在數據挖掘的知識模式中,關聯規則模式是比較重要的一種。關聯規則的概念由Agrawal、Imielinski、Swami 提出,是數據中一種簡單但很實用的規則。關聯規則模式屬於描述型模式,發現關聯規則的算法屬於無監督學習的方法。

關聯規則挖掘

一、關聯規則的定義和屬性
 
考察一些涉及許多物品的事務:事務1 中出現了物品甲,事務2 中出現了物品乙,事務3 中則同時出現了物品甲和乙。那么,物品甲和乙在事務中的出現相互之間是否有規律可循呢?在數據庫的知識發現中,關聯規則就是描述這種在一個事務中物品之間同時出現的規律的知識模式。更確切的說,關聯規則通過量化的數字描述物品甲的出現對物品乙的出現有多大的影響。
 
現實中,這樣的例子很多。例如超級市場利用前端收款機收集存儲了大量的售貨數據,這些數據是一條條的購買事務記錄,每條記錄存儲了事務處理時間,顧客購買的物品、物品的數量及金額等。這些數據中常常隱含形式如下的關聯規則:在購買鐵錘的顧客當中,有70 %的人同時購買了鐵釘。這些關聯規則很有價值,商場管理人員可以根據這些關聯規則更好地規划商場,如把鐵錘和鐵釘這樣的商品擺放在一起,能夠促進銷售。
 
有些數據不像售貨數據那樣很容易就能看出一個事務是許多物品的集合,但稍微轉換一下思考角度,仍然可以像售貨數據一樣處理。比如人壽保險,一份保單就是一個事務。保險公司在接受保險前,往往需要記錄投保人詳盡的信息,有時還要到醫院做身體檢查。保單上記錄有投保人的年齡、性別、健康狀況、工作單位、工作地址、工資水平等。這些投保人的個人信息就可以看作事務中的物品。通過分析這些數據,可以得到類似以下這樣的關聯規則:年齡在40 歲以上,工作在A 區的投保人當中,有45 %的人曾經向保險公司索賠過。在這條規則中,“年齡在40 歲以上”是物品甲,“工作在A 區”是物品乙,“向保險公司索賠過”則是物品丙。可以看出來,A 區可能污染比較嚴重,環境比較差,導致工作在該區的人健康狀況不好,索賠率也相對比較高。
 
設R= { I1,I2 ……Im} 是一組物品集,W 是一組事務集。W 中的每個事務T 是一組物品,T R。假設有一個物品集A,一個事務T,如果A T,則稱事務T 支持物品集A。關聯規則是如下形式的一種蘊含:A→B,其中A、B 是兩組物品,A I,B I,且A ∩B=。一般用四個參數來描述一個關聯規則的屬性:
 
1 .可信度(Confidence)
 
設W 中支持物品集A 的事務中,有c %的事務同時也支持物品集B,c %稱為關聯規則A→B 的可信度。簡單地說,可信度就是指在出現了物品集A 的事務T 中,物品集B 也同時出現的概率有多大。如上面所舉的鐵錘和鐵釘的例子,該關聯規則的可信度就回答了這樣一個問題:如果一個顧客購買了鐵錘,那么他也購買鐵釘的可能性有多大呢?在上述例子中,購買鐵錘的顧客中有70 %的人購買了鐵釘, 所以可信度是70 %。
 
2 .支持度(Support)
 
設W 中有s %的事務同時支持物品集A 和B,s %稱為關聯規則A→B 的支持度。支持度描述了A 和B 這兩個物品集的並集C 在所有的事務中出現的概率有多大。如果某天共有1000 個顧客到商場購買物品,其中有100 個顧客同時購買了鐵錘和鐵釘,那么上述的關聯規則的支持度就是10 %。
 
3 .期望可信度(Expected confidence)
 
設W 中有e %的事務支持物品集B,e %稱為關聯規則A→B 的期望可信度度。期望可信度描述了在沒有任何條件影響時,物品集B 在所有事務中出現的概率有多大。如果某天共有1000 個顧客到商場購買物品,其中有200 個顧客購買了鐵釘,則上述的關聯規則的期望可信度就是20 %。
 
4 .作用度(Lift)
 
作用度是可信度與期望可信度的比值。作用度描述物品集A 的出現對物品集B 的出現有多大的影響。因為物品集B 在所有事務中出現的概率是期望可信度;而物品集B 在有物品集A 出現的事務中出現的概率是可信度,通過可信度對期望可信度的比值反映了在加入“物品集A 出現”的這個條件后,物品集B 的出現概率發生了多大的變化。在上例中作用度就是70 %/20 %=3.5。
 
可信度是對關聯規則的准確度的衡量,支持度是對關聯規則重要性的衡量。支持度說明了這條規則在所有事務中有多大的代表性,顯然支持度越大,關聯規則越重要。有些關聯規則可信度雖然很高,但支持度卻很低,說明該關聯規則實用的機會很小,因此也不重要。
 
期望可信度描述了在沒有物品集A 的作用下,物品集B 本身的支持度;作用度描述了物品集A 對物品集B 的影響力的大小。作用度越大,說明物品集B 受物品集A 的影響越大。一般情況,有用的關聯規則的作用度都應該大於1,只有關聯規則的可信度大於期望可信度,才說明A 的出現對B 的出現有促進作用,也說明了它們之間某種程度的相關性,如果作用度不大於1,則此關聯規則也就沒有意義了。
 
二、關聯規則的挖掘
 
在關聯規則的四個屬性中,支持度和可信度能夠比較直接形容關聯規則的性質。從關聯規則定義可以看出,任意給出事務中的兩個物品集,它們之間都存在關聯規則,只不過屬性值有所不同。如果不考慮關聯規則的支持度和可信度,那么在事務數據庫中可以發現無窮多的關聯規則。事實上,人們一般只對滿足一定的支持度和可信度的關聯規則感興趣。因此,為了發現有意義的關聯規則,需要給定兩個閾值:最小支持度和最小可信度,前者規定了關聯規則必須滿足的最小支持度;后者規定了關聯規則必須滿足的最小可信度。一般稱滿足一定要求的(如較大的支持度和可信度)的規則為強規則(Strong rules)。
 
在關聯規則的挖掘中要注意以下幾點:
 
1、充分理解數據。
 
2、目標明確。
 
3、數據准備工作要做好。能否做好數據准備又取決於前兩點。數據准備將直接影響到問題的復雜度及目標的實現。
 
4、選取恰當的最小支持度和最小可信度。這依賴於用戶對目標的估計,如果取值過小,那么會發現大量無用的規則,不但影響執行效率、浪費系統資源,而且可能把目標埋沒;如果取值過大,則又有可能找不到規則,與知識失之交臂。
 
5、很好地理解關聯規則。數據挖掘工具能夠發現滿足條件的關聯規則,但它不能判定關聯規則的實際意義。對關聯規則的理解需要熟悉業務背景,豐富的業務經驗對數據有足夠的理解。在發現的關聯規則中,可能有兩個主觀上認為沒有多大關系的物品,它們的關聯規則支持度和可信度卻很高,需要根據業務知識、經驗,從各個角度判斷這是一個偶然現象或有其內在的合理性;反之,可能有主觀上認為關系密切的物品,結果卻顯示它們之間相關性不強。只有很好的理解關聯規則,才能去其糟粕,取其精華,充分發揮關聯規則的價值。
 
發現關聯規則要經過以下三個步驟:
 
1、連接數據,作數據准備;
 
2、給定最小支持度和最小可信度,利用數據挖掘工具提供的算法發現關聯規則;
 
3、可視化顯示、理解、評估關聯規則。
 
三 、關聯規則挖掘的過程
 
關聯規則挖掘過程主要包含兩個階段:
 
第一階段必須先從資料集合中找出所有的高頻項目組(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,直到無法再找到更長的高頻項目組為止。
 
關聯規則挖掘的第二階段是要產生關聯規則(Association Rules)。從高頻項目組產生關聯規則,是利用前一步驟的高頻k-項目組來產生規則,在最小信賴度(Minimum Confidence)的條件門檻下,若一規則所求得的信賴度滿足最小信賴度,稱此規則為關聯規則。
 
從上面的介紹還可以看出,關聯規則挖掘通常比較適用與記錄中的指標取離散值的情況。如果原始數據庫中的指標值是取連續的數據,則在關聯規則挖掘之前應該進行適當的數據離散化(實際上就是將某個區間的值對應於某個值),數據的離散化是數據挖掘前的重要環節,離散化的過程是否合理將直接影響關聯規則的挖掘結果。
 
四、 關聯規則的分類
 
按照不同情況,關聯規則可以進行分類如下:
 
1.基於規則中處理的變量的類別,關聯規則可以分為布爾型和數值型。
 
布爾型關聯規則處理的值都是離散的、種類化的,它顯示了這些變量之間的關系;而數值型關聯規則可以和多維關聯或多層關聯規則結合起來,對數值型字段進行處理,將其進行動態的分割,或者直接對原始的數據進行處理,當然數值型關聯規則中也可以包含種類變量。例如:性別=“女”=>職業=“秘書” ,是布爾型關聯規則;性別=“女”=>avg(收入)=2300,涉及的收入是數值類型,所以是一個數值型關聯規則。
 
2.基於規則中數據的抽象層次,可以分為單層關聯規則和多層關聯規則。
 
在單層的關聯規則中,所有的變量都沒有考慮到現實的數據是具有多個不同的層次的;而在多層的關聯規則中,對數據的多層性已經進行了充分的考慮。例如:IBM台式機=>Sony打印機,是一個細節數據上的單層關聯規則;台式機=>Sony打印機,是一個較高層次和細節層次之間的多層關聯規則。
 
3.基於規則中涉及到的數據的維數,關聯規則可以分為單維的和多維的。
 
在單維的關聯規則中,我們只涉及到數據的一個維,如用戶購買的物品;而在多維的關聯規則中,要處理的數據將會涉及多個維。換成另一句話,單維關聯規則是處理單個屬性中的一些關系;多維關聯規則是處理各個屬性之間的某些關系。例如:啤酒=>尿布,這條規則只涉及到用戶的購買的物品;性別=“女”=>職業=“秘書”,這條規則就涉及到兩個字段的信息,是兩個維上的一條關聯規則。
 
5. 關聯規則挖掘的相關算法
 
1.Apriori算法:使用候選項集找頻繁項集
 
Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。
 
該算法的基本思想是:首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支持度一樣。然后由頻集產生強關聯規則,這些規則必須滿足最小支持度和最小可信度。然后使用第1步找到的頻集產生期望的規則,產生只包含集合的項的所有規則,其中每一條規則的右部只有一項,這里采用的是中規則的定義。一旦這些規則被生成,那么只有那些大於用戶給定的最小可信度的規則才被留下來。為了生成所有頻集,使用了遞推的方法。
 
可能產生大量的候選集,以及可能需要重復掃描數據庫,是Apriori算法的兩大缺點。
 
2.基於划分的算法
 
Savasere等設計了一個基於划分的算法。這個算法先把數據庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊並對它生成所有的頻集,然后把產生的頻集合並,用來生成所有可能的頻集,最后計算這些項集的支持度。這里分塊的大小選擇要使得每個分塊可以被放入主存,每個階段只需被掃描一次。而算法的正確性是由每一個可能的頻集至少在某一個分塊中是頻集保證的。該算法是可以高度並行的,可以把每一分塊分別分配給某一個處理器生成頻集。產生頻集的每一個循環結束后,處理器之間進行通信來產生全局的候選k-項集。通常這里的通信過程是算法執行時間的主要瓶頸;而另一方面,每個獨立的處理器生成頻集的時間也是一個瓶頸。
 
3.FP-樹頻集算法
 
針對Apriori算法的固有缺陷,J. Han等提出了不產生候選挖掘頻繁項集的方法:FP-樹頻集算法。采用分而治之的策略,在經過第一遍掃描之后,把數據庫中的頻集壓縮進一棵頻繁模式樹(FP-tree),同時依然保留其中的關聯信息,隨后再將FP-tree分化成一些條件庫,每個庫和一個長度為1的頻集相關,然后再對這些條件庫分別進行挖掘。當原始數據量很大的時候,也可以結合划分的方法,使得一個FP-tree可以放入主存中。實驗表明,FP-growth對不同長度的規則都有很好的適應性,同時在效率上較之Apriori算法有巨大的提高。
 
五、關聯規則發掘技術在國內外的應用
 
就目前而言,關聯規則挖掘技術已經被廣泛應用在西方金融行業企業中,它可以成功預測銀行客戶需求。一旦獲得了這些信息,銀行就可以改善自身營銷。現在銀行天天都在開發新的溝通客戶的方法。各銀行在自己的ATM機上就捆綁了顧客可能感興趣的本行產品信息,供使用本行ATM機的用戶了解。如果數據庫中顯示,某個高信用限額的客戶更換了地址,這個客戶很有可能新近購買了一棟更大的住宅,因此會有可能需要更高信用限額,更高端的新信用卡,或者需要一個住房改善貸款,這些產品都可以通過信用卡賬單郵寄給客戶。當客戶打電話咨詢的時候,數據庫可以有力地幫助電話銷售代表。銷售代表的電腦屏幕上可以顯示出客戶的特點,同時也可以顯示出顧客會對什么產品感興趣。
 
同時,一些知名的電子商務站點也從強大的關聯規則挖掘中的受益。這些電子購物網站使用關聯規則中規則進行挖掘,然后設置用戶有意要一起購買的捆綁包。也有一些購物網站使用它們設置相應的交叉銷售,也就是購買某種商品的顧客會看到相關的另外一種商品的廣告。
 
但是目前在我國,“數據海量,信息缺乏”是商業銀行在數據大集中之后普遍所面對的尷尬。目前金融業實施的大多數數據庫只能實現數據的錄入、查詢、統計等較低層次的功能,卻無法發現數據中存在的各種有用的信息,譬如對這些數據進行分析,發現其數據模式及特征,然后可能發現某個客戶、消費群體或組織的金融和商業興趣,並可觀察金融市場的變化趨勢。可以說,關聯規則挖掘的技術在我國的研究與應用並不是很廣泛深入。
 
近年來關聯規則發掘技術的一些研究
 
由於許多應用問題往往比超市購買問題更復雜,大量研究從不同的角度對關聯規則做了擴展,將更多的因素集成到關聯規則挖掘方法之中,以此豐富關聯規則的應用領域,拓寬支持管理決策的范圍。如考慮屬性之間的類別層次關系,時態關系,多表挖掘等。近年來圍繞關聯規則的研究主要集中於兩個方面,即擴展經典關聯規則能夠解決問題的范圍,改善經典關聯規則挖掘算法效率和規則興趣性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM