假设有以下交易数据集:

| 交易ID | 商品列表 | |--------|-----------------------| | T1 | 'A', 'B', 'C', 'D' | | T2 | 'A', 'C', 'D' | | T3 | 'A', 'B', 'C', 'D', 'E' | | T4 | 'A', 'B', 'C', 'E' | | T5 | 'B', 'C', 'D' |

我们可以使用Apriori算法来计算频繁项集和闭频繁项集。

首先,我们需要设置最小支持度阈值。假设我们设置最小支持度为3,即只有出现在至少3个交易中的商品才被认为是频繁项。

第一轮扫描:

| 商品 | 支持度计数 | |------|------------| | 'A' | 4 | | 'B' | 4 | | 'C' | 5 | | 'D' | 2 | | 'E' | 2 |

根据最小支持度阈值,只有'A'、'B'、'C'是频繁项。

第二轮扫描:

| 商品组合 | 支持度计数 | |----------|------------| | 'A', 'B' | 3 | | 'A', 'C' | 4 | | 'B', 'C' | 4 |

根据最小支持度阈值,只有'A', 'C'和'B', 'C'是频繁项。

第三轮扫描:

| 商品组合 | 支持度计数 | |----------|------------| | 'A', 'C', 'B' | 3 |

根据最小支持度阈值,只有'A', 'C', 'B'是频繁项。

因此,频繁项集为{'A'}, {'B'}, {'C'}, {'A', 'C'}, {'B', 'C'}, {'A', 'C', 'B'}。

接下来,我们可以计算闭频繁项集。闭频繁项集是指在某个频繁项集中,如果存在一个子集的支持度计数与该频繁项集相同,则该子集为闭频繁项集。

在本例中,{'A', 'C', 'B'}是频繁项集,其子集有:

  • {'A', 'C'}
  • {'B', 'C'}
  • {'A', 'B'}
  • {'A'}
  • {'B'}
  • {'C'}

其中,{'A', 'C'}和{'B', 'C'}的支持度计数与{'A', 'C', 'B'}相同,因此它们是闭频繁项集。

接下来,我们可以计算支持度和置信度。

支持度是指包含某个商品集合的交易数与总交易数之比。例如,{'A', 'C'}的支持度为4/5=0.8。

置信度是指在包含某个商品集合的交易中,同时包含另一个商品集合的交易数与包含该商品集合的交易数之比。例如,{'A', 'C'} -> {'B'}的置信度为3/4=0.75,表示在包含{'A', 'C'}的4个交易中,有3个交易同时包含{'B'}。

最后,我们可以构造关联规则。关联规则是指由频繁项集得出的规则,其中规则的前提是一个商品集合,后件是另一个商品集合。

例如,我们可以构造以下关联规则:

  • {'A'} -> {'C'}
  • {'C'} -> {'A'}
  • {'B'} -> {'C'}
  • {'C'} -> {'B'}
  • {'A', 'C'} -> {'B'}
  • {'B', 'C'} -> {'A'}

其中,{'A', 'C'} -> {'B'}的置信度最高,因此我们可以得出结论:在包含{'A', 'C'}的交易中,如果同时包含{'B'},那么有75%的概率也会包含{'A'}。

Apriori算法计算频繁项集、闭频繁项集、支持度、置信度和关联规则示例

原文地址: https://www.cveoy.top/t/topic/fYOc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录