获取项集长度大于1的关联规则python代码
时间: 2024-10-10 11:13:23 浏览: 37
在Python中,我们可以使用Apriori算法或者其他关联规则挖掘库如mlxtend或pyfim来获取项集长度大于1的关联规则。这里以mlxtend库为例,假设我们有一个交易数据集(如DataFrame形式),其中包含用户购买的商品列表:
```python
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
# 假设df是一个包含用户ID和商品列表的数据框
data = [
['Milk', 'Bread'],
['Eggs', 'Bread', 'Butter'],
['Tea', 'Sugar'],
['Milk', 'Butter'],
]
# 将数据编码成二进制矩阵
te = TransactionEncoder()
X = te.fit(data).transform(data)
# 创建FPGrowth模型,设置最小支持度和最小置信度
min_support = 0.5
min_confidence = 0.6
assoc_rules = apriori(X, min_support=min_support, use_colnames=True, min_length=2)
# 过滤出长度大于1的规则
filtered_rules = [rule for rule in assoc_rules if len(rule[2]) > 1]
print(filtered_rules)
```
上述代码首先将交易数据转换为频繁项集,然后应用Apriori算法寻找频繁项集,并过滤出那些支持度和置信度满足条件、长度大于1的关联规则。
阅读全文