fpgrowth算法

浏览: 1627

一、关联规则的三个指标:

1) 支持度 support(A => B)
    = P(A,B) = |A n B| / |N|,表示数据集D中,事件A和事件B共同出现的概率
2) 置信度 confidence(A => B)
= P(B|A) = |A n B| / |A|,表示数据集D中,出现事件A的事件中出现事件B的概率
3) 提升度 lift(A => B)
= P(B|A):P(B)
= |A n B| / |A| : |B| / |N|,表示数据集D中,出现A的条件下出现事件B的概率和没有条件A出现B的概率

二、fpgrowth算法比Apriori快

pyspark里有fpgrowth实现 http://spark.apache.org/docs/2.2.0/api/python/pyspark.ml.html?highlight=fpgrowth

from pyspark.ml.fpm import FPGrowth

1. fpgrowth 的输入数据形如

Clipboard Image.png

所以要将但条记录listagg

create or replace view temp_outlets_data as
select t.master_order_sn as TRX_NBR,
       listagg(t.sku_sn, ',') within group(order by t.master_order_sn) as ITEM_CD_joint
  from (select distinct a.master_order_sn, substr(a.sku_sn, 1, 6) as sku_sn
          from temp_table a) t
 group by t.master_order_sn

2. 输出

fpm.freqItemsets

Clipboard Image.png

fpm.associationRules

Clipboard Image.png

3. 但是没有给出 lift,需另外计算

fpm.associationRules 给出的 confidence 是P(B|A),所以只要计算P(B)

P(B) = |B| / |N|

所以只要统计单品B出现的次数|B|,与总订单数|N|



参考:

https://www.cnblogs.com/a-du/p/9335408.html

推荐 0
本文由 safa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册