一、关联规则的三个指标:
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 的输入数据形如
所以要将但条记录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
fpm.associationRules
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