数据挖掘中的模式发现Apriori算法

Posted SuPhoebe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘中的模式发现Apriori算法相关的知识,希望对你有一定的参考价值。

基本概念

对于 AB

  1. 支持度(support):

    P(AB) ,既有A又有B的概率

  2. 置信度(Confidence Strength):

    conf(AB)=sup(AB)sup(A)=P(B|A)

    即,在A发生的事件中同时发生B的概率

    例如购物篮分析:牛奶 面包

    例子:[支持度:3%,置信度:40%]

    支持度3%:意味着3%顾客同时购买牛奶和面包

    置信度40%:意味着购买牛奶的顾客40%也购买面包

  3. 候选集(Candidate itemset):

    通过向下合并得出的项集。

    定义为C[k]。

  4. 频繁集(Frequent itemset):
    支持度大于等于特定的最小支持度(Minimum Support/minsup)的项集。

    表示为L[k]。

  5. 提升比率(提升度Lift):

    lift(XY)=lift(YX)=conf(XY)supp(Y)=conf(YX)supp(X)=P(XY)P(X)P(Y)

  6. 向下封闭属性(Downward Closure Property)

    如果一个项集满足某个最小支持度要求,那么这个项集的任何非空子集必须都满足这个最小支持度。

Apriori算法简介

Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成向下封闭、检测两个阶段来挖掘频繁项集。

Apriori算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。

挖掘步骤:

1.依据支持度找出所有频繁项集(频度)

2.依据置信度产生关联规则(强度)

实现步骤

Apriori使用一种称作逐层搜索的迭代方法,“K-1项集”用于搜索“K项集”。

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

核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从CK中删除。

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

产生关联规则

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

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

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