上一个章节主要是关联规则以及Apiori算法的一些基本概念。
以下通过Apriori图解实例对Apriori算法进行分析:
例:最小支持度阈值为2
交易号 |
项集合 |
T100 |
I1,I2,I5 |
T200 |
I2,I4 |
T300 |
I2,I3 |
T400 |
I1,I2,I4 |
T500 |
I1,I3 |
T600 |
I2,I3 |
T700 |
I1,I3 |
T800 |
I1,I2,I3,I5 |
T900 |
I1,I2,I3 |
扫描数据库D,对每个候选进行计数。并得到候选C1
项集 |
支持度计数 |
{I1} |
6 |
{I2} |
7 |
{I3} |
6 |
{I4} |
2 |
{I5} |
2 |
项集 |
支持度计数 |
{I1} |
6 |
{I2} |
7 |
{I3} |
6 |
{I4} |
2 |
{I5} |
2 |
项集 |
{I1,I2} |
{I1,I3} |
{I1,I4} |
{I1,I5} |
{I2,I3} |
{I2,I4} |
{I2,I5} |
{I3,I4} |
{I3,I5} |
{I4,I5} |
项集 |
支持度计数 |
{I1,I2} |
4 |
{I1,I3} |
4 |
{I1,I4} |
1 |
{I1,I5} |
2 |
{I2,I3} |
4 |
{I2,I4} |
2 |
{I2,I5} |
2 |
{I3,I4} |
0 |
{I3,I5} |
1 |
{I4,I5} |
0 |
项集 |
支持度计数 |
{I1,I2} |
4 |
{I1,I3} |
4 |
{I1,I5} |
2 |
{I2,I3} |
4 |
{I2,I4} |
2 |
{I2,I5} |
2 |
项集 |
{I1,I2,I3} |
{I1,I2,I5} |
连接:C3=L2 JOIN L2=
{{I1,I2}, {I1,I3}, {I1,I5}, {I2,I3}, {I2,I4}, {I2,I5}} JOIN {{I1,I2}, {I1,I3}, {I1,I5}, {I2,I3}, {I2,I4}, {I2,I5}}
={{I1,I2,I3}, {I1,I2,I5}, {I1,I3,I5}, {I2,I3,I4},{I2,I3,I4}, {I2,I3,I5} ,{I2,I4,I5}}。
剪枝:{I1,I2,I3}的2-项子集是{I1,I2}, {I1,I3}和{I2,I3}。
{I1,I2,I3}的所有2-项子集都是L2的元素。因此,保留{I1,I2,I3}在C3中。
{I2,I3,I5}的2-项子集是{I2,I3}, {I2,I5}和{I3,I5}。
{I3,I5}不是L2的元素,因而不是频繁的。因此,由C3中删除{I2,I3,I5}。
剪枝后C3= {{I1,I2,I3}, {I1,I2,I5}}。