1. 程式人生 > >關聯規則挖掘

關聯規則挖掘

直接用例項來解釋概念更清楚一些,加入資料庫中存在10條交易記錄(Transaction),具體如下表所示:

幾個概念:

專案(item):其中的B C M T 都稱作item。

項集(itemset):item的集合,例如{B C}、{C M T}等,每個顧客購買的都是一個itemset。其中,itemset中item的個數成為itemset的長度,含有k個item的itemset成為K-itemset.

交易(transaction):定義I為所有商品的集合,在這個例子中I={B C M T}。每個非空的I子集都成為一個交易。所有交易構成交易資料庫D。

項集支援度(support):回個一下項集概念,項集X的支援度定義為:項集X在交易庫中出現的次數(頻數)與所有交易次數的比。例如T02的項集X={B C M},則support(X)=2/10=0.2。項集支援度也就是項集出現的頻率。

頻繁集(frequent itemset):如果一個項集的支援度達到一定程度(人為規定),就稱該項集為頻繁項集,簡稱頻繁集。這個人為規定的界限就被叫做項集最小支援度(記為supmin)。更通俗地說,如果某個項集(商品組合)在交易庫中出現的頻率達到一定值,就稱作頻繁集。如果K項集支援度大於最小支援度,則稱作K-頻繁集,記為Lk。

關聯規則(association rule):R:X→Y

其中,X、Y都是I的子集,且X、Y交集為空。這一規則表示如果項集X在某一交易中出現,則會導致項集Y以某一概率同時出現在這一交易中。例如R1:{B}→{M} 表示如果麵包B出現在一個購物籃中,則牛奶M以某一概率同時出現在該購物籃中。X稱為條件(antecedent or left-hand-side LHS),Y稱為結果(consequence or right hand side RHS)。衡量某一關聯規則有兩個指標:關聯規則的支援度(support)和可信度(confidence)。

關聯規則的支援度:交易庫中同時出現X、Y的交易數與總交易數之比,記為support(X→Y)。其實也就是兩個項集{X Y}出現在交易庫中的頻率。

關聯規則的可信度:包含X、Y的交易數與包含X的交易數之比,記為confidence(X→Y)。也就是條件概率:當項集X出現時,項集Y同時出現的概率,P(Y|X)。

Conviction:conv(X→Y)=【 1-sup(Y)】/【1-conf(X→Y)】表示X出現而Y不出現的概率。也就是規則預測錯誤的概率。

綜合一下,關聯規則R就是:如果項集X出現在某一購物籃,則項集X同時出現在這一購物籃的概率為confidence (X→Y)。

如果我們定義一個關聯規則最小支援度和關聯規則最小可信度,當某一規則兩個指標都大於最低要求時,則成為強關聯規則。反之成為弱關聯規則。

例如,在上表中,對於規則R:B → M,假設這一關聯規則的支援度為6/10=0.6,表示同時包含C和M的交易數佔總交易的60%.可信度為6/8=0.75,表示購買麵包B的人,有75%可能性同時購買牛奶。也就是當抽樣樣本足夠大時,每100個人當中,有75個人同時買了麵包和牛奶,兩外25個人只買其中一樣。

Rakesh  Agrawal

關聯規則的發現一般分為兩個步驟:

1)            根據給定的最小項集支援度,找出所有滿足條件的項集,即頻繁項集。

2)            根據最小可信度,在所有頻繁集中找出符合條件的關聯規則。

步驟1中,可能的項集組合(itemset)有2n-1(排除空集),找出所有頻繁集不是一個簡單的任務。注意的是,如果某個項集X是頻繁集,則X的子集也必定為頻繁集。

關聯規則分類:

資料的維度:單維和多維,例如麵包-->牛奶為單維關聯規則。而  性別=“女”--->職業=“教師”為多維。

資料的抽象層次:單層關聯規則和多層關聯規則。 單層的還是麵包牛奶的例子,多層的比如:麵包--->伊利牌牛奶。

變數的型別:布林型關聯規則和數值型。布林型: 性別=“女”--->職業=“教師。 數值型:工齡=“5”----->平均工資=“3000”

頻繁項集常用挖掘演算法:Apriori演算法、FP-growth演算法、Eclat演算法

在IBM SPSS Modeler中,用簡單的資料集測試Apriori演算法。詳細請參考:

http://blog.sciencenet.cn/blog-71538-682195.html