2。3 算法总流程
图1 数据挖掘算法总流程图
2。4 Apriori算法的基本思想
Apriori算法所进行的过程要分成两步来进行:
第一步用累加的方式,查找出事件数据库中的全部相对支持度满足预定义的最小支持度阈值的项的集合,就是支持度大于用户所设置的阈值的项的集合;
第二步利用相对支持度满足预定义的最小支持度阈值的所有项的集合来建成来满足达到用户的最小信任度的要求。
具体做法就是:
最开始先要找到1-项的集合,前提是它的相对支持都预定义必须是最小支持度阈值,代号为Q1;随之利用Q1来生成候选项的集合T2,对T2中的项进行分辨挖掘出Q2,即相对支持度满足预定义的最小支持度阈值2-项的集合;不间断地如此循环往复下去直到不能够再找到更多的相对支持度满足预定义的最小支持度阈值s-项的集合为止。每挖掘一层Qs就需要扫描整个数据库一遍。[1]
2。5 Apriori性质
随便哪一个项的集合的相对支持都要满足最小支持度的阈值,而且所有不是空白的下一项的集合的相对支持度也必须要满足这个前提。这个意思就是说,每次已经生成一个s-itemset的等待选择项目时,加入到此等待选择项的所有下一项的集合不在(s-1)-itemset里面的时侯,这样此要等待选择的项目就不必也无需再进行支持度高低的辨别了,直接就可以删除掉。具体来说就是:
(1)连接步文献综述
为找出Qs(也就是说所有的s项的集合的集合都必须满足预定义的最小支持度阈值),通过将Qs-1(所有的相对支持度满足预定义的最小支持度阈值s-1项的集合的集合)与本体连接产生候选s项的集合的集合。[3]候选集合记作Tk。设q1和q2是Qk-1中的成员。记qi[m]表示qi中的第m项。假设此算法对不清楚的随意一个事件或项的集合按照一定的顺序来进行排序,那么这样的话对于(s-1)项集qi,qi[1]<qi[2]<………。<qi[s-1]。首先肯定是先将Qs-1与本体连接,如果: (q1[1]=q2[1])&&( q1[2]=q2[2])……&&。。(q1[s-2]=q2[s-2])&&(q1[s-1]<q2[s-1]),那认为q1和q2是一定会是可连接。那么由上可知连接q1与q2 所生成的结果必定是{q1[1],q1[2],……,q1[s-1],q2[s-1]}。
(2)剪枝步
TS是QS的超集,这句话的意思就可以简单的理解为,TS的内部项不能确定它本身到底是不是满足相对支持度满足预定义的最小支持度阈值的。经过检测的全部的事件,来确定TS中每个等待筛选的数值,进行判断到底有没有比最小支持度的计数还要小,如果不是,则认为该等候筛选的项是相对支持度满足预定义的最小支持度阈值的。为了缩减TS,可以应用Apriori性质:每一个相对支持度满足预定义的最小支持度阈值项的集合的全部所有的不是空白下一项的集合也一定要是满足相对支持度满足预定义的最小支持度阈值的,相反来说的话,就算是一个等待选择的非空子集不是相对支持度满足预定义的最小支持度阈值的,既然如此的话那么这个等待筛选的项目肯定不是正确的,因此就可以把它在TS中删除[4]。
3。 关联分析的基本概念
3。1 支持度
支持度表达了两种事物一起出现的频率,如果两种事物同时出现的频率及其的小,这就充分说明了两种事物之间的联系并不大;但是如果两种事物同时出现的频率及其大,这就说明两种事物总是相互联系的现象已经成为常识出现了。