Friday, September 15, 2006

Apriori算法

Apriori算法是使用最广泛的关联规则挖掘算法,所谓的关联规则可以通俗的理解为两个项或多个项之间存在联系的描述。这种关联性有很多方法得到,如数学公式、物理定理、化学变换式等,但是这些表示的联系都是精确联系,表明两者多多者之间存在唯一确定的关系,在现实生活中还存在很多没有唯一确定关系,但一定有联系的事物,比如用户的下一个购买跟他的已有购买之间的联系,这些是没有办法确定它们之间的联系的,但是可以模糊的表示他们的关系,而且这种关系的描述是无依据,或者说很感性的,于是出现以概率统计为基础的描述和模糊数学(好像已经正式成为了数学的一个分枝),而这几年由于互联网的白热化竞争发展导致大家都在提高服务质量,于是揣磨用户心理的活又被摆在面前,于是概率算法大行其道(当然还有其他算法)。

首先来精确了解一下Apriori算法:

关联规则:A => B | A 属于 I,且B 属于 I, 且A^B != 空 则称A与B是关联的,

支持度:support(A=>B) = P(A U B)
置信度:confidence(A=>B) = P(B | A)

强规则:同时支持最小支持度和最小置信度的规则称为强规则

设I = {i1, i2, ..., in}是项的集合,包含k个项的项集称为k-项集

频繁项集 frequent itemset : 出现频率 >= Total Transaction * min_sup //min_sup表示最小支持度

------------------------------------------------------------
单维关联规则:当关联规则中涉及的项只有一个时,即一推一
多维关联规则:当关联规则中涉及的项有多个时,即多推一
规则的抽象层次:主要是因为事物定义的多义性与范围作用

Apriori算法的核心是以出现频率为基础进行项的出现率比较,由1项推出2项。。。,直接K项全部被推完(一个规则中含有K项);其过程分为两步:一为连接(类矩阵运算),二为剪枝(去掉那些没必要的中间结果)。

具体算法,不在这里描述了,几乎所有的数据挖掘书籍中都有介绍。

No comments: