apriori算法找频繁项集,和强关联规则

apriori算法找频繁项集,和强关联规则

一、找频繁项集

假设数据集如下

TID transactions
a {1,3,4}
b {2,3,5}
c {1,2,3,5}
d {2,5}

假设可信度:70%,支持度:50%

求频繁1项集

{1,2,3,4,5}的1项集:{1}、{2}、{3}、{4}、{5}。比如{1}在数据集TIDa、c中都有出现,则出现的次数为2,依次类推2,3,4,5.我们可以得到以下表格

l1(数据元) C1(出现的次数)
1 2
2 3
3 3
4 1
5 3

已知最小支持度:【4(4为TID个数)×50%(支持度)=2】。

删除不满足最小支持度的项集,则频繁1项集为

l1(数据元) C1(出现的次数)
1 2
2 3
3 3
5 3

再求频繁2项集(不满足最小支持度的去除)

{1,2,3,4,5}的2项集:{1,2}、{1,3}、{1,4}、{1,5}、{2,3}、{2,4}、{2,5}…

比如{1,2}只在数据集TIDc中出现,那么出现次数为1,不满足最小支持度,则去除。其他项集依次类推,得到频繁2项集如下

l2 C2
{1,3} 2
{2,3} 2
{2,5} 3
{3,5} 2

再求频繁3项集(不满足最小支持度的去除)

{1,2,3,4,5}的3项集:{1,2,3}、{1,2,4}、{1,2,5}、{1,3,4}、{1,3,5}、{1,4,5}、{2,3,4}…

比如{1,2,3}只在数据集TIDc中出现,那么出现次数为1,不满足最小支持度,则去除。其他项集依次类推,得到频繁3项集如下

l3 C3
{2,3,5} 2

二、强关联规则

可信度或置信度(confidence)是针对一条诸如{尿布} ➞ {啤酒}的关联规则来定义的。这条规则的可信度被定义为“支持度({尿布, 啤酒})/支持度({尿布})”

先在频繁3项集中查找:

由{2,3,5}可知:

​ 2∧3=>5(2和3可以推出5为频繁项集);

可信度=支持度{2,3,5}/支持度{2,3}=C3/C2=2/2=1=100%>70%,则为强关联规则

​ 3∧2=>5;**可信度=**支持度{2,3,5}/支持度{3,2}=2/2=1=100%>70%,强关联规则

​ 2∧5=>3; **可信度=**支持度{2,3,5}/支持度{2,5}=2/3=0.67=67%<70%

​ 5∧2=>3; **可信度=**0.67=67%<70%

​ 3∧5=>2; **可信度=**支持度{2,3,5}/支持度{3,5}=2/2=1=100%>70%,强关联规则

5∧3=>2;可信度= 100%>70%,强关联规则

再从频繁2项集中查找

由{1,3}可知:

​ 1=>3;可信度=支持度{1,3}/支持度{1}=C2/C1=2/2=1=100%>70%,则为强关联规则

​ 3=>1;**可信度=**支持度{1,3}/支持度{3}=C2/C1=2/3=0.67=67%<70%

由{2,3}可知:

​ 2=>3;**可信度=**支持度{2,3}/支持度{2}=C2/C1=2/3=0.67=67%<70%

​ 3=>2;**可信度=**支持度{2,3}/支持度{3}=C2/C1=2/3=0.67=67%<70%

{2,5}{3,5}依次类推找强关联规则。

你可能感兴趣的:(数据挖掘)