算法常见:


运用于推荐商品。



关联规则:



简单举例->


市场购物篮分析的结果是一组指定商品之间关系模式的关联规


则。


• 一个典型的规则可以表述为: {花生酱,果冻} –> {面包}


• 这个关联规则用通俗易懂的语言来表达就是:如果购买了花生


酱和果冻,那么也很有可能会购买面包。




apriori算法 association_rules apriori算法原理_频繁项集




支持度和置信度


一个项集或者规则度量法的支持度是指其在数据中出现的频率


置信度是指该规则的预测能力或者准确度的度量





Apriori算法


Apriori原则指的是一个频繁项集的所有子集,也必须是频繁的,


如果{A,B}是频繁的,那么{A}和{B}都必须是频繁的


根据定义,支持度表示一个项集出现在数据中的频率,因此,如果知道{A}


不满足所期望的支持度,那么就没必要考虑{A,B}或者任何满足包含{A}的项集


,这些项集绝对不可能是频繁的。





apriori算法 association_rules apriori算法原理_关联规则_02




图表理解



apriori算法 association_rules apriori算法原理_搜索_03





BE出现的支持度为3/4 ,


那么在BE出现的支持度下再出现C的概率结果为:



p(C)=p(BEC)/P(BE)=1/2 / 3/4=2/3 也就是置信度p(BE->C)=2/3




实现步骤:


Apriori 算法是一种最有影响的挖掘布尔关联规则频繁项集的算法 Apriori 使用一种称作逐层搜索的迭代方法,“ K-1 项集”用于搜索“ K 项集”。


首先,找出频繁“ 1 项集”的集合,该集合记作 L1 。 L1 用于找频繁“ 2 项集”的集合 L2 ,而 L2 用于找 L3 。如此下去,直到不能找到“ K 项集”。找每个 Lk 都需要一次 数据库 扫描。


核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前 k-2 项相同 ,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某


个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从 CK 中删除。


简单的讲,


1 、 发现频繁项集,过程为( 1 )扫描( 2 )计数( 3 )比较( 4 )产生频繁项集( 5 )连接、剪枝,产生候选项集    重复步骤( 1 ) ~ ( 5 )直到不能发现更大的频集


2 、 产生关联规则,过程为:根据前面提到的置信度的定义,关联规则的产生如下:


( 1 )对于每个频繁项集 L ,产生 L 的所有非空子集;


( 2 )对于 L 的每个非空子集 S ,如果


                P ( L ) /P ( S )≧ min_conf


则输出规则“ S à L-S ”