【机器学习】关联规则分析(一):Apriori

一、Apriori原理

        Apriori是关联分析中较早的一种方法,主要用来挖掘那些频繁项集合,其思想是:

1.如果一个项目集合不是频繁集合,那么任何包含它的项目(超集)也一定不是频繁集

2.如果一个项目集合是频繁集合,那么它的任何非空子集(子集)也是频繁集合

 

二、关联分析

1.发现频繁项集→ 经常出现在一起的样本集合

2.发现关联规则→ 暗示两种样本之间可能存在很强的关系

3.Apriori原理可减少支持度计算量

***************************************************

支持度:数据集里包含该项集的记录所占的比例

可信度:针对一条eg.{A}→{B}的关联规则来确定的,定义为:可信度 = 支持度{A,B} / 支持度{A}

 

支持度(比例大小)→特定数据集/总数据集→ 反映频繁项集

可信度(关联规则)→支持度{A,B}/支持度{A} →反映关联度

 

用户自行设定最小支持度minSupport作为参数,当集合/列表(set/list)支持度大于最小支持度,则为频繁项集

***************************************************

 

三、算法步骤

1.生成候选项集

流程:

********************************

对数据集里每条记录item:

对每个候选项集can:

         检查can是否为item的子集:

                   如果是,则增加can的计数值

                   对每个候选项集can:

                            如果其支持度不小于最小值,则保留该项集

返回所有频繁项集列表

***********************************

 

2.完整Apriori流程

***********************************

当集合中项的个数>0:

         构建k个项组成的候选项集列表

         检查数据以确定每个项集都是频繁的

         保留频繁集并构建k+1项组成的候选项集列表

***********************************

 

        Apriori需要扫描项目多遍,从一个项目开始,舍去掉那些不频繁项目,得到集合成为l,然后对l中每个元素进行自组合,生成比上次扫描多一个项目的集合,该集合成为c,接着又去扫描那些非频繁项目,重复……

 看下面这个例子:

元素项目表格:


  如果每个步骤不去掉非频繁项目集,则其扫描过程的树形结构如下:

  在其中某个过程中,可能出现非频繁的项目集,将其去掉(用阴影表示)为:



posted @ 2014-11-03 20:40  DianaCody  阅读(621)  评论(0编辑  收藏  举报