机器学习----Apriori算法(关联规则)

上来一个公式
这里写图片描述

一、概念

支持度:P(A ∩ B),既有A又有B的概率
置信度
P(B|A),在A发生的事件中同时发生B的概率 p(AB)/P(A) 例如购物篮分析:牛奶 ⇒ 面包
例子:[支持度:3%,置信度:40%]
支持度3%:意味着3%顾客同时购买牛奶和面包
置信度40%:意味着购买牛奶的顾客40%也购买面包
③如果事件A中包含k个元素,那么称这个事件A为k项集事件A满足最小支持度阈值的事件
称为频繁k项集。
④同时满足最小支持度阈值和最小置信度阈值的规则称为强规则.

二、原理

支持度:
support(X–>Y) = |X交Y|/N=集合X与集合Y中的项在一条记录中同时出现的次数/数据记
录的个数。support({啤酒}–>{尿布}) = 啤酒和尿布同时出现的次数/数据记录数 =
3/5=60%。
置信度:
confidence(X–>Y) = |X交Y|/|X| = 集合X与集合Y中的项在一条记录中同时出现的次数/集
合X出现的个数 。
confidence({啤酒}–>{尿布}) = 啤酒和尿布同时出现的次数/啤酒出现的次数=3/3=100%;
confidence({尿布}–>{啤酒}) = 啤酒和尿布同时出现的次数/尿布出现的次数 = 3/4 =75%

对于靠谱的关联规则:
其支持度与置信度均应大于设定的阈值,即:
对给定的支持度阈值min_sup、置信度阈值min_conf,找出所有的满足下列条件的关联规则:
支持度>=min_support
置信度>=min_confident

这里写图片描述
同时满足最小支持度阈值(min_sup和最小置信度阈值(min_conf)的规则称作强规则 ,如果项集满足最小支持度,则称它为频繁项集M)。
这里写图片描述
Apriori定律
减少频繁项集的生成时间,尽早消除一些完全不可能是频繁项集的集合。
定律1
              如果一个集合是频繁项集,则它的所有子集都是频繁项集。
举例:假设一个集合{A,B}是频繁项集,即A、B同时出现在一条记录的次数大于等于最小支持度min_support,则它的子集{A},{B}出现次数必定≧min_support,即它的子集都是频繁项集。

定律2
              如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。
举例:假设集合{A}不是频繁项集,即A出现的次数小于min_support,则它的任何超集如{A,B}出现的次数必定(min_support),因此其超集必定也不是频繁项集。

注意
              由二级频繁项集生成三级候选项集时,没有{牛奶,面包,啤酒},那是因为{面包,啤酒}不是二级频繁项集。
              最后生成三级频繁项集后,没有更高一级的候选项集,算法结束,{牛奶,面包,尿布}是最大频繁子集。

这里写图片描述
计算事例
这里写图片描述

三、优缺点

            传统的Apriori算法的计算量很大,当商品数据量大时更显著,基本是不可计算的,
不过后来有人用FP-Tree算法简化了计算量。

[注-了解]
CBA算法:利用了关联规则进行类别的分类,有别与其他的分类算法。如
果一个项集中包含预先知道的属性,同时也包含分类属性值,然后我们计算此频繁
项能否导出已知属性值推出决策属性值的关联规则,如果满足规则的最小置信度的
要求,那么可以把频繁项中的决策属性值作为最后的分类结果。

                支持度表示在历史中A和B同时购买的概率,置信度表示A推荐B的可信程度。由此可以认为支持度*置信度表示A推荐B而A和B同时购买的概率。这样相比于单纯使用支持度更全面,同时避免了支持度中等或置信度中等的关联规则被淘汰。
                因为提升度表示提升单品购买概率的程度,所以可以使用提升度作为最终推荐依据,避免组合、搭售、买赠关系的假性关联。

猜你喜欢

转载自blog.csdn.net/sakura55/article/details/80986933