1.關聯規則分析的定義
關聯分析(Association Analysis)用於發現隱藏在大型數據集中的令人感興趣的聯系。聯系的表示方式一般為關聯規則或頻繁項集,例:{尿布}→{啤酒}。
2.關聯規則分析的基本概念
項集:項的集合稱為項集。一個包含k個數據項的項集就稱為k−項集。
項集的支持度:整個數據集中包含該項集的事務數
關聯規則:形如X –> Y 的蘊涵式,其中X,Y不相交。
關聯規則的置信度:對於蘊含式X→Y,置信度為P(Y/X)=P(XY)/P(X)=support(X∪Y)/support(X)=support_count(X∪Y)/support_count(X),
上式表明:關聯規則置信度通過項集的支持度計算得出
3.關聯分析的任務
找出數據集中隱藏的強規則,通常分為兩個步驟,首先在數據集中找出頻繁項集(支持度大於實現給定的閾值),然后從頻繁項集中提取所有高置信度的規則。
4.頻繁項集發現的經典算法
經典的發現頻繁項集的算法:Apriori算法。
Apriori算法具有一個Apriori性質,即先驗原理來控制候選項集的指數增長。
Apriori性質(先驗原理):如果一個項集是頻繁的,則它的所有子集也是頻繁的,相反:如果一個項集是非頻繁的,則它的所有超集也一定是非頻繁的。
算法過程主要分為連接和剪枝
5.強關聯規則的生成
設存在頻繁項集X={A,B,C},則由X可產生的非空真子集為{A,B},{A,C},{B,C},{A},{B},{C},進而得出的6個關聯規則:
{A,B}→C,{A,C}→B,{B,C}→A,C→{A,B},B→{A,C},A→{B,C}。
然后分別計算每個規則的置信度,當置信度大於給定閾值時,則關聯規則為強關聯規則。強關聯規則同時滿足最小支持率和最小置信度。
6.關聯規則的評估
- 支持度(Support)
支持度表示項集{X,Y}在總項集里出現的概率。公式為:
Support(X→Y) = P(X,Y) / P(I) = P(X∪Y) / P(I) = num(XUY) / num(I)
其中,I表示總事務集。num()表示求事務集里特定項集出現的次數。
比如,num(I)表示總事務集的個數
num(X∪Y)表示含有{X,Y}的事務集的個數(個數也叫次數)。
-
置信度 (Confidence)
置信度表示在先決條件X發生的情況下,由關聯規則”X→Y“推出Y的概率。即在含有X的項集中,含有Y的可能性,公式為:
Confidence(X→Y) = P(Y|X) = P(X,Y) / P(X) = P(XUY) / P(X)
-
提升度(Lift)
提升度表示X發生的條件下,同時Y發生的概率,與不考慮X的條件下Y發生的概率之比。
Lift(X→Y) = P(Y|X) / P(Y)
滿足最小支持度和最小置信度的關聯規則稱為強關聯規則,然而強關聯規則並不一定是有效的規則。強關聯規則是否有效,取決於提升度Lift。
Lift(X→Y)≤1,關聯規則X→Y無效。特別的,當Lift(X→Y)=1,X與Y相互獨立。
Lift(X→Y)>1時,關聯規則X→Y有效。Lift(X→Y)越大,表示X的發生對Y發生的提升度越大,X和Y的關聯性越強。
eg1.
已知有1000名顧客買年貨,分為甲乙兩組,每組各500人,其中甲組有500人買了茶葉,同時又有450人買了咖啡;乙組有450人買了咖啡,如表所示:
分組 | 買茶葉人數 | 買咖啡人數 |
甲組(500人) | 500 | 450 |
乙組(500人) | 0 | 450 |
試求解 1)”茶葉→咖啡“的支持度
2) "茶葉→咖啡"的置信度
3)”茶葉→咖啡“的提升度
分析:
設X= {買茶葉},Y={買咖啡},則規則”茶葉→咖啡“表示”即買了茶葉,又買了咖啡“,於是,”茶葉→咖啡“的支持度為
Support(X→Y) = 450 / 500 = 90%
"茶葉→咖啡"的置信度為
Confidence(X→Y) = 450 / 500 = 90%
”茶葉→咖啡“的提升度為
Lift(X→Y) = Confidence(X→Y) / P(Y) = 90% / ((450+450) / 1000) = 90% / 90% = 1
由於提升度Lift(X→Y) =1,表示X與Y相互獨立,即是否有X,對於Y的出現無影響。也就是說,是否購買咖啡,與有沒有購買茶葉無關聯。即規則”茶葉→咖啡“不成立,或者說關聯性很小,幾乎沒有,雖然它的支持度和置信度都高達90%,但它不是一條有效的關聯規則。