Apriori关联规则算法
假设我们有一个超市的交易记录数据库,我们想要找出哪些商品经常一起购买。
步骤 1: 设定最小支持度阈值
假设我们设定最小支持度阈值为5%。这意味着,如果一个商品组合在所有交易中出现的频率至少为5%,我们才认为它是一个频繁项集。
步骤 2: 找出频繁1-项集
我们首先统计数据库中每个商品的出现次数,然后除以总交易数,以计算每个商品的支持度。例如,如果牛奶在100笔交易中出现了40次,那么它的支持度是40%。只有当支持度超过5%的商品才会被认为是频繁1-项集。
步骤 3: 生成候选频繁2-项集
我们将上一步找到的频繁1-项集进行两两组合,生成候选频繁2-项集。例如,如果频繁1-项集有{牛奶, 面包, 鸡蛋, 橙汁},那么候选频繁2-项集可能包括{牛奶, 面包}、{牛奶, 鸡蛋}、{牛奶, 橙汁}等。
步骤 4: 计算候选频繁2-项集的支持度
我们遍历数据库中的所有交易,统计候选频繁2-项集的出现次数,并计算它们的支持度。那些支持度超过5%的候选集将成为频繁2-项集。
步骤 5: 重复步骤3和步骤4
我们继续这个过程,使用频繁2-项集生成候选频繁3-项集,计算它们的支持度,然后找到频繁3-项集。这个过程一直重复,直到没有新的频繁项集可以找到。
步骤 6: 生成关联规则
一旦我们找到了所有的频繁项集,我们就可以生成关联规则。例如,如果我们有一个频繁3-项集{牛奶, 面包, 鸡蛋},我们可以生成以下规则:
- 如果购买了牛奶和面包,那么购买鸡蛋的概率是多少?
- 如果购买了牛奶和鸡蛋,那么购买面包的概率是多少?
- 如果购买了面包和鸡蛋,那么购买牛奶的概率是多少?
步骤 7: 计算规则的置信度
对于每一条规则,我们计算它的置信度。置信度是通过将规则的支持度除以前件的支持度来计算的。例如,如果{牛奶, 面包} → {鸡蛋}的支持度是4%,而{牛奶, 面包}的支持度是6%,那么规则的置信度是4%/6% = 66.67%。
步骤 8: 应用最小置信度阈值
最后,我们应用最小置信度阈值来筛选有趣的规则。假设我们设定的最小置信度阈值是50%,那么只有当规则的置信度超过50%时,我们才认为这是一个有趣的关联规则。
通过这个案例,我们可以看到Apriori算法是如何一步步地从原始交易数据中挖掘出有用的关联规则的。在实际应用中,这些规则可以帮助零售商进行商品布局、促销活动策划等决策。