Apriori(先验)算法关联规则

Apriori(先验)算法关联规则

常用的评估标准由支持度、置信度、和提升度三个:

支持度

支持度就是数据在数据集中出现的次数(也可以是次数占总数据集的比重),或者说其在数据集中出现的概率:

以下面这张图为例子,这张图每一列代表商品是否被购买(1代表被购买,0代表否),每一行代表一次交易记录:

面包 牛奶 黄油 苹果 香蕉
0 0 1 1 1
1 1 0 1 0
1 0 1 1 0
0 0 1 1 1
0 1 0 0 1

下面的公式以所占比例来说明:

如果是一个数据X,则其支持度为:
support(X)=P(X)=num(X)/num(ALL)

如果数据是一个数据项集(X,Y),则支持度为:
support(X,Y)=P(X,Y)=num(XY)/num(ALL)

如果数据是一个数据项集(X,Y,Z),则支持度为:

support(X,Y,Z)=P(X,Y,Z)=num(XYZ)/num(ALL)(X,Y,Z代表的是X,Y,Z同时出现的次数)

以上面的交易为例:

我们来求 (黄油,苹果) 的支持度:
(黄油,苹果) 在第0,2,3中通过出现了,一共是5条数据,因此support(黄油,苹果)=3/5=0.6

一般来说,支持度高的不一定数据频繁,但是数据频繁的一定支持度高

置信度

置信度代表的规则应验的准确性,也就是一个数据出现后,另外一个数据出现的概率,也就是条件概率。(以购买为例,就是已经购买Y的条件下,购买X的概率)公式如下:

设分析的数据是X,Y,则X对Y的置信度为:

confidence(X⇐Y)=P(X|Y)=P(XY)/P(Y)

设分析的数据是X,Y,Z,则X对Y和Z的置信度为:

confidence(X⇐YZ)=P(X|YZ)=P(XYZ)/P(YZ)

还是以 (黄油,苹果) 为例子,计算黄油对苹果的置信度:confidence(黄油⇐苹果)=34=0.75。

但是置信度有一个缺点,那就是它可能会扭曲关联的重要性。因为它只反应了Y的受欢迎的程度。如果X的受欢迎程度也很高的话,那么confidence也会很大。

置信度只考虑了:
1买苹果的人有多少
2买了苹果且同时买了牌酒的人有多少.
显然是有缺点的.
如果数据集中每个事务都包含了啤酒,那么啤酒跟苹果之间的关联关系就是的.

反过来,如果买苹果的事务有1000条,买啤酒的事务只有10条,但是所有买啤酒的这10条都买了苹果(换句话说,只有买了苹果才可能买啤酒),置信只有10/1000-0.01.
所以不管是置信度为1(前面一种),还是置信度0.01,都不足以表明苹果和啤酒之间的关联关系。
这个可以用提升度来表征。

提升度

提升度表示在含有Y的条件下,同时含有X的概率,同时考虑到X的概率,公式如下:

Lift(X⇐Y)=support(X,Y)/(support(X)×support(Y))=P(X,Y)/(P(X)×P(Y))=P(X|Y)/P(X)=confidenc(X⇐Y)/P(X)

在提升度中,如果Lift(X⇐Y)=1则表示X,Y之间相互独立,没有关联(因为P(X|Y)=P(X)),

如果Lift(X⇐Y)>1则表示X⇐Y则表示X⇐Y是有效的强关联(在购买Y的情况下很可能购买X);

如果Lift(X⇐Y)<1则表示X⇐Y则表示X⇐Y是无效的强关联。

一般来说,我们如何判断一个数据集中数据的频繁程度时使用提升度来做的。

Apriori算法

Apriori算法的目标是找到最大的K项频繁集。这里有两层意思,首先,我们要找到符合支持度标准(置信度or提升度)的频繁集。但是这样的频繁集可能有很多。第二层意思就是我们要找到最大个数的频繁集。比如我们找到符合支持度的频繁集AB和ABE,那么我们会抛弃AB,只保留ABE,因为AB是2项频繁集,而ABE是3项频繁集。

算法的步骤

  1. 生成初始频繁项集
  2. 用现有频繁项集的超集生成
    备选项集
  3. 测试备选项集是否频繁。
    如果不频繁,则舍弃
  4. 步骤3中是否发现新的频繁项集?
  5. 否,返回发现的所有频繁项集;是,返回步骤2

总的来说,Apriori算法不是很难,算法的流程也很简单,而它的核心在于如何构建一个有效的评判标准,support?confidence?Lift?or others?但是它也有一些缺点:每次递归都需要产生大量的备选项集,

发布了9 篇原创文章 · 获赞 1 · 访问量 103

猜你喜欢

转载自blog.csdn.net/qq_42112448/article/details/105128339
今日推荐