数据分析之关联分析
-
项与项集
- 项 指我们分析数据中的一个对象
- 项集 由若干项构成的集合 不能重复 数量可以为1
-
支持度
- 为某项集在数据中出现的频率 即 项集在记录中出现的次数 除以数据中所有的数据
- s u p p o r t ( A ) = c o u n t ( A ) / c o u n t ( d a t a s e t ) = P ( A ) support(A) = count(A)/count(dataset) = P(A) support(A)=count(A)/count(dataset)=P(A)
-
置信度
- A与B同时出现的次数 除以A出现的概率
- 体现的关联规则的可靠程度,在A已经出现的情况下,B出现的概率
- c o n f i d e n c e ( A − > B ) = c o u n t ( A B ) / c o u n t ( A ) = P ( B ∣ A ) confidence(A->B) = count(AB)/count(A)= P(B|A) confidence(A−>B)=count(AB)/count(A)=P(B∣A)
-
提升度
- 关联规则中,提升度为{A->B}的置信度,除以B的支持度
- l i f t ( A − > B ) = c o n f i d e n c e ( A − > B ) / s u p p o r t ( B ) = P ( B ∣ A ) / P ( B ) = P ( A B ) / P ( A ) P ( B ) lift(A->B) = confidence(A->B)/support(B) = P(B|A)/P(B) = P(AB)/P(A)P(B) lift(A−>B)=confidence(A−>B)/support(B)=P(B∣A)/P(B)=P(AB)/P(A)P(B)
- 对比B单独卖,和A帮着B一起卖 大于1才有意义
-
频繁项集
- 设置一个支持度阈值 一个项集的支持度大于等于阈值 项集就是频繁项集
- 频繁项集中有k个元素,称为频繁k项集
-
关联分析过程
-
从数据集中寻找频繁项集
-
从频繁项集中生成关联规则
-
-
寻找频繁项集 Apriori原理
- 如果一个项集是频繁项集,则其所有子集(非空)也是频繁项集
- 如果一个项集(非空)是非频繁项集,则其所有父集也是非频繁项集
-
Apriori流程
- 扫描数据集,从数据集中生成候选k项集 C k C_k Ck(k从1开始)
- 计算 C k C_k Ck中,每个项集的支持度,删除低于阈值的项集,构成频繁项集 L k L_k Lk
- 将频繁项集 L k L_k Lk重的元素进行组合,生成k+1项集 C k + 1 C_{k+1} Ck+1
- 重复步骤2、3,直到满足以下两个条件之一,算法删除
- 频繁k项集无法组合生成候选k+1项集
- 所有候选k项集支持度都低于指定阈值,无法生成频繁k项集
-
关联规则
- 把频繁项集拆分后,计算置信度
-
代码
-
from efficient_apriori import apriori itemstes,rules = aproiori(transactions=datasets,min_support=0.05,min_confidence=0.3) print(itemsets) print(rules) for i in rules: print(i)
-