模式挖掘(一):频繁项集挖掘算法Apriori和FP Tree

一. Apriori算法

Apriori是最常用的频繁项集挖掘算法,其计算逻辑简单易于直观理解。在实际应用中举例,其易于从大量订单数据中获取频繁出现的组合项集,以便于输出计算单元之间的关联度,从而给组套销售、上架摆放等提供建议。下面介绍下工作中总结的知识,和需要避开的问题。

1.1 评估频繁项集的标准

以订单数据为例。在大量的订单中,如何评价某一商品组合对的出现频繁?其组合出现的次数多于其它组合吗。若订单覆盖的商品品类丰富,那么需求量不高的品类的组合便会被淹没在快消品的组合里。所以在Apriori中有从三个不同的角度评价频繁项集,描述元素关联关系的指标:支持度、置信度、提升度。

1.2 Apriori频繁项集评估指标

在Apriori中有三个维度的频繁项集的指标:支持度置信度提升度。下面以二元的组合举例说明。
支持度:

  • 描述某一组合AB在所有组合中出现次数的占比,相当于AB这一事件在整体中的发生概率。即AB同时被购买的次数占所有商品组合被购买的次数之比。
    Support(A,B) = P(AB) = num(A,B)/num(AllSamples)

置信度:

  • 置信度描述了事件A发生的情况下,事件B发生的概率。可以说置信度是一个条件概率。
    Confidence(A←B)= P(A|B) = P(AB)/P(B)
    置信度描述了用户在购买了B商品的前提下,同时购买A商品的概率。
  • 置信度是有方向的

提升度:

  • 提升度是两个概率的比,描述在B发生了的条件下A发生的概率,比上没有任何条件A发生的概率。
    Lift(A←B)= P(A|B)/P(A) = P(AB)/(P(A)*P(B))
    如果提升度大于1,则表示在B的发生的条件下,可以推测A有更大概率发生。即如果Lift(铲子←锅)>1,则表示一位买了锅的用户有更大可能买把铲子。
  • 提升度没有方向,Lift(A←B)= Lift(B←A)
    由全概率公式易证P(A|B)/P(A) = P(B|A)/P(B)
  • 当A与B为相互独立事件时,有Lift(A←B)= 1, 因为此时P(A|B) = P(A)

2. 注意事项

  • 零事务对关联关系的影响
    提升度受零事务的量影响。零事务可以理解为既没有买A也没有买B的订单,在实际业务的海量订单中,零事务量往往很大。
  • 数据清洗:赠品、组套捆绑销售会使特定商品大量在同订单中出现,导致一些无效的关联关系,在数据清洗的步骤中应注意剔除。

3. 拓展知识点:

  • 概率论全概率公式 https://blog.csdn.net/Hearthougan/article/details/75174210

你可能感兴趣的:(模式挖掘(一):频繁项集挖掘算法Apriori和FP Tree)