2.1.1.1 频繁项集
频繁项集的概念来源于真实的购物篮分析。在诸如亚马逊等商店中,存在很多的订单或交易数据。当客户进行交易时,亚马逊的购物车中就会包含一些项。商店店主可以通过分析这些大量的购物事务数据,发现顾客经常购买的商品组合。据此,可以简单地定义零个或多个项的组合为项集。
我们把一项交易称为一个购物篮,任何购物篮都有组元素。将变量s设置为支持阈值,我们可以将它和一组元素在所有的购物篮中出现的次数做比较,如果这组元素在所有购物篮中出现的次数不低于s,我们就将这组元素称为一个频繁项集。
若一个项集包含有k个项,则该项集称为k项集,其中k是非零整数。项集X的支持计数记为support_count(X),表示给定数据集中包含项集X的计数。
给定一个预先定义的最小支持度阈值s,如果support_count(X)≥s,则称项集X为频繁项集。最小支持度阈值s是一个可以自定义的参数,可以根据领域专家或经验进行调整。
频繁项集也经常应用于许多领域,如下表所示。
项 篮子 说明
相关概念 词 文档
剽窃 文档 句子
生物标记物 生物标记物和疾病 病人的数据集
如果某个项集是频繁的,那么该项集的任何一个子集也一定是频繁的。这称为Apriori原理,它是Apriori算法的基础。Apriori原理的直接应用就是用来对大量的频繁项集进行剪枝。
影响频繁项集数目的一个重要因素是最小支持计数:最小支持计数越小,频繁项集的数目也越多。
为了优化频繁项集生成算法,人们提出一些其他概念:
闭项集:给定数据集S,如果Y∈S, X Y,则support_count (X) ≠ support_count (Y),那么X称作闭项集。换言之,如果X是频繁的,则X是频繁闭项集。
最大频繁项集:如果Y∈S, X Y,X是最大频繁项集,则Y是非频繁的。换言之,Y没有频繁超集。
约束频繁项集:若频繁项集X满足用户指定的约束,则X称为约束频繁项集。
近似频繁项集:若项集X只给出待挖掘数据近似的支持计数,则称为近似频繁项集。
top-k频繁项集:给定数据集S和用户指定的整数k,若X是前k个频繁项集,则X称为top-k频繁项集。
下面给出一个事务数据集的例子。所有项集仅包含集合D = {Ik |{k∈[1,7]}中的项。假定最小支持度计数为3。
tid(交易号) 项集或交易中的项列表
T001 I1, I2, I4, I7
T002 I2, I3, I6
T003 I1, I4, I6
T004 I1, I2, I5
T005 I2, I3, I4
T006 I2, I5, I6
T007 I2, I4, I7
T008 I1, I7
T009 I1, I2, I3
T010 I1, I2, I4
那么,可以得到频繁项集L1 = {Ik | k∈{1, 2, 4, 6, 7}}和L2 = {{I1, I2},{I1, I4},{I2, I4}}。