Association Rule Mining【轉】

 Association rule mining 是數據挖掘中最活躍的研究方法之一,能夠用來發現事情之間的聯繫,最先是爲了發現超市交易數據庫中不一樣的商品之間的關係。web

這裏有一則沃爾瑪超市的趣聞。沃爾瑪曾今對數據倉庫中一年多的原始交易數據進行了詳細的分析,發現與尿布一塊兒被購買最多的商品居然是啤酒。藉助數據倉庫和關聯規則,發現了這個隱藏在背後的事實:美國的婦女常常會囑咐丈夫下班後爲孩子買尿布,而30%~40%的丈夫在買完尿布以後又要順便購買本身愛喝的啤酒。根據這個發現,沃爾瑪調整了貨架的位置,把尿布和啤酒放在一塊兒銷售,大大增長了銷量。算法

這裏借用一個引例來介紹關聯規則挖掘[1]。數據庫

                                                              表1 某超市的交易數據庫ide

 

交易號TID 顧客購買的商品 交易號TID 顧客購買的商品
T1 bread, cream, milk, tea T6 bread, tea
T2 bread, cream, milk T7 beer, milk, tea
T3 cake, milk T8 bread, tea
T4 milk, tea T9 bread, cream, milk, tea
T5 bread, cake, milk T10 bread, milk, tea

 

定義一:設I={i1,i2,…,im},是m個不一樣的項目的集合,每一個ik稱爲一個項目。項目的集合I稱爲項集。其元素的個數稱爲項集的長度,長度爲k的項集稱爲k-項集。引例中每一個商品就是一個項目,項集爲I={bread, beer, cake,cream, milk, tea},I的長度爲6。spa

定義二:每筆交易T是項集I的一個子集。對應每個交易有一個惟一標識交易號,記做TID。交易全體構成了交易數據庫D,|D|等於D中交易的個數。引例中包含10筆交易,所以|D|=10。.net

定義三:對於項集X,設定count(X⊆T)爲交易集D中包含X的交易的數量,則項集X的支持度爲: orm

support(X)=count(X⊆T)/|D|
引例中X={bread, milk}出如今T1,T2,T5,T9和T10中,因此支持度爲0.5。

定義四最小支持度是項集的最小支持閥值,記爲SUPmin,表明了用戶關心的關聯規則的最低重要性。支持度不小於SUPmin 的項集稱爲頻繁集,長度爲k的頻繁集稱爲k-頻繁集。若是設定SUPmin爲0.3,引例中{bread, milk}的支持度是0.5,因此是2-頻繁集。 blog

定義五關聯規則是一個蘊含式:

R:X⇒Yip

其中X⊂I,Y⊂I,而且X∩Y=⌀。表示項集X在某一交易中出現,則致使Y以某一律率也會出現。用戶關心的關聯規則,能夠用兩個標準來衡量:支持度和可信度。 ci

定義六:關聯規則R的支持度是交易集同時包含X和Y的交易數與|D|之比。即:

support(X⇒Y)=count(X⋃Y)/|D|

支持度反映了X、Y同時出現的機率。關聯規則的支持度等於頻繁集的支持度。 

定義七:對於關聯規則R,可信度是指包含X和Y的交易數與包含X的交易數之比。即:

confidence(X⇒Y)=support(X⇒Y)/support(X)

可信度反映了若是交易中包含X,則交易包含Y的機率。通常來講,只有支持度和可信度較高的關聯規則纔是用戶感興趣的。

定義八:設定關聯規則的最小支持度和最小可信度爲SUPmin和CONFmin。規則R的支持度和可信度均不小於SUPmin和CONFmin ,則稱爲強關聯規則。關聯規則挖掘的目的就是找出強關聯規則,從而指導商家的決策。

這八個定義包含了關聯規則相關的幾個重要基本概念,關聯規則挖掘主要有兩個問題:
  1. 找出交易數據庫中全部大於或等於用戶指定的最小支持度的頻繁項集。
  2. 利用頻繁項集生成所須要的關聯規則,根據用戶設定的最小可信度篩選出強關聯規則。
目前研究人員主要針對第一個問題進行研究,找出頻繁集是比較困難的,而有了頻繁集再生成強關聯規則就相對容易了。生成頻繁集比較經典的算法有Apriori算法

 

 

參考文獻:

[1] 韓慧等。數據倉庫與數據挖掘。清華大學出版社,2009。

[2] Association rule mining. http://en.wikipedia.org/wiki/Association_rule_mining, 2011.

 

Cited from:  http://blog.csdn.net/opennaive/article/details/7047823

相關文章
相關標籤/搜索