一些基本概念
事务:每条交易称之为一个事务
项:交易的每个物品称之为一个项,如牛奶,面包等
项集:包含零个或者多个项的集合如{牛奶,面包}
规则:从项集中找出各项之间的关系,如关联规则{牛奶}–>{面包}
一些重要概念
支持度:是个百分比,指的是某个商品组合出现的次数和总次数之间的比例。支持度越高,代表这个组合出现的频率越大。
置信度:指的是当你购买了商品A,会有多大的概率购买商品B。
提升度:代表的是”商品A的出现,对商品B的出现概率提升的“程度
公式:提升度(A->B)= 置信度(A->B)/支持度(B)
关联分析的目的
寻找频繁项集
频繁项集:支持度大于等于最小支持度(Min Support)阈值的项集,例如,阈值设置为50%时候,因为{牛奶,面包}的支持度是60%,所以{牛奶,面包}是频繁项集。
如果使用暴力搜索,计算量很大,很耗费时间,所以引出Apriori算法。
Apriori算法
原理:
如果某个项集是频繁的,那么它的子集也是频繁的。反过来看,如果一个项集是非频繁的,那么它的所有超集也是非频繁的。
流程:
1,首先,计算单个商品的支持度,也就是得到K=1项的支持度:
2,在上边的基础上,将商品两两进行组合,得到K=2项的支持度:
3,再将商品进行K=3项的商品组合,得到:
4,…
总结主要步骤
实现
可以直接使用python自带的工具:
from efficient_apriori import apriori