理解关联规则
首先要感谢一下沃尔玛 第一个发现并挖掘出来了关联规则
沃尔玛对市场购物篮分析的结果是一组指定商品之间关系模式的关联规则
一个典型的规则可以表述为:{花生酱,果酱}--->{面包};{尿不湿}--->{啤酒}。
第一个关联规则用通俗易懂的语言来表达就是:如果购买了花生酱和果酱,那么也很有可能会购买面包
第二个关联规则也可以简单的来表达:就是你把啤酒放在尿不湿旁边销量比较高
这个地方要注意的是 : 上述两个表达式是有关联方向的
接下来我们要知道的是 怎么挖掘关联规则呢
首先我们要理解下面两个词:
支持度
置信度
这里我们直接给出具体定义
一个项集或者规则度量法的支持度是指其在数据中出现的频率
置信度是指该规则的预测能力或者准确度的度量
上面的两个公式 第一个公式就是求一个商品的支持度
其中X代表订单中的某个商品,N代表所有订单个数,count(X)代表有几个订单中出现了商品X
结合上图的订单列表我们举一个简单的例子
假设X=鲜花 那么鲜花的支持度=4/5;
第二公式就是置信度公式
其中X-->Y 代表X对Y的置信度,support(X,Y)代表同时购买X,Y的支持度,support(X)代表购买X的支持度
(这个地方我们要注意的是 如果支持度小于我们设定的阈值,就表明该商品不适合做关联规则,应当剔除)
下面再来了解一下辅助我们挖掘关联规则:Apriori算法
理解Apriori算法
Apriori原则指的是一个频繁项集的所有子集也必须是频繁的,如果{A,B}是频繁的,那么{A}和{B}都必须是频繁的
根据定义,支持度表示一个项集出现在数据中的频率,因此,如果知道{A}不满足所期望的支持度阈值,那么就没有
必要考虑{A,B}或者任何包含{A}的项集,这些项集绝对不可能是频繁的
Apriori算法利用这个逻辑在实际评估他们之前潜在的关联规则
Apriori算法的执行流程
1、识别所有满足最小支持度阈值的项集
2、根据满足最小支持度阈值的这些项集来创造规则
举个例子:迭代1:需要评估一组1项的项集
迭代2:评估2项的项集
....... :.........
...
...
以此类推,在迭代中没有产生新的项集,算法将停止。
之后,算法会根据产生的频繁项集、所有可能的子集产生关联规则
例如:{A,B}将产生候选规则{A}-->{B}和{B}-->{A}。这些规则将根据最小置信度阈值评估,
任何不满足所期望的置信度的规则被排除