关联规则apriori算法案例
时间: 2023-09-15 20:14:53 浏览: 101
我可以为您提供一个关联规则 apriori 算法的案例。假设我们有一个超市的交易数据集,其中包含了不同顾客购买的商品清单。我们希望使用 apriori 算法找出频繁项集,并生成关联规则。
首先,让我们假设数据集如下:
```
transaction1: {牛奶, 面包, 花生酱}
transaction2: {牛奶, 啤酒}
transaction3: {面包, 啤酒, 尿布}
transaction4: {牛奶, 面包, 啤酒, 尿布}
transaction5: {面包, 尿布}
```
接下来,我们使用 apriori 算法找出频繁项集。这个算法的基本思想是从单个项开始,逐步生成更长的项集,并计算每个项集的支持度。然后,通过设定最小支持度阈值来筛选出频繁项集。
假设我们设定最小支持度阈值为 40%。首先,我们计算每个单个项的支持度:
```
Support(牛奶) = 3/5 = 60%
Support(面包) = 4/5 = 80%
Support(花生酱) = 1/5 = 20%
Support(啤酒) = 3/5 = 60%
Support(尿布) = 3/5 = 60%
```
由于 `花生酱` 的支持度低于设定的最小支持度阈值,所以它不是频繁项集的一部分。接下来,我们生成包含两个项的候选项集,并计算它们的支持度:
```
Candidate(牛奶, 面包) = 2/5 = 40%
Candidate(牛奶, 花生酱) = 1/5 = 20%
Candidate(牛奶, 啤酒) = 2/5 = 40%
Candidate(牛奶, 尿布) = 2/5 = 40%
Candidate(面包, 花生酱) = 0/5 = 0%
Candidate(面包, 啤酒) = 2/5 = 40%
Candidate(面包, 尿布) = 3/5 = 60%
Candidate(花生酱, 啤酒) = 0/5 = 0%
Candidate(花生酱, 尿布) = 0/5 = 0%
Candidate(啤酒, 尿布) = 2/5 = 40%
```
由于 `花生酱, 啤酒` 和 `花生酱, 尿布` 的支持度都低于最小支持度阈值,它们也不是频繁项集的一部分。接下来,我们生成包含三个项的候选项集,并计算它们的支持度:
```
Candidate(牛奶, 面包, 啤酒) = 2/5 = 40%
Candidate(牛奶, 面包, 尿布) = 2/5 = 40%
Candidate(牛奶, 啤酒, 尿布) = 2/5 = 40%
Candidate(面包, 啤酒, 尿布) = 2/5 = 40%
```
所有包含三个项的候选项集的支持度都达到了最小支持度阈值,所以它们都是频繁项集的一部分。
最后,我们可以根据频繁项集生成关联规则。假设我们设定最小置信度阈值为 60%。我们使用以下公式计算置信度:
```
Confidence(项集A => 项集B) = Support(项集A ∪ 项集B) / Support(项集A)
```
根据这个公式,我们可以计算以下关联规则的置信度:
```
Confidence(牛奶 => 面包) = Support(牛奶, 面包) / Support(牛奶) = 40% / 60% = 66.67%
Confidence(面包 => 牛奶) = Support(牛奶, 面包) / Support(面包) = 40% / 80% = 50%
Confidence(面包 => 啤酒) = Support(面包, 啤酒) / Support(面包) = 40% / 80% = 50%
Confidence(啤酒 => 面包) = Support(面包, 啤酒) / Support(啤酒) = 40% / 60% = 66.67%
Confidence(面包 => 尿布) = Support(面包, 尿布) / Support(面包) = 60% / 80% = 75%
Confidence(尿布 => 面包) = Support(面包, 尿布) / Support(尿布) = 60% / 60% = 100%
```
根据最小置信度阈值,我们可以筛选出置信度高于等于 60% 的关联规则:
```
牛奶 => 面包
面包 => 尿布
尿布 => 面包
```
这些关联规则表示购买 `牛奶` 的顾客也有很高的可能会购买 `面包`,购买 `面包` 的顾客也有很高的可能会购买 `尿布`,以及购买 `尿布` 的顾客也有很高的可能会购买 `面包`。
这就是关联规则 apriori 算法的一个简单案例。希望能对您有所帮助!如有任何疑问,请随时向我提问。
阅读全文