关联规则挖掘Python
时间: 2024-12-27 19:22:15 浏览: 0
### 如何使用 Python 进行关联规则挖掘
#### 使用 Apriori 算法进行关联规则挖掘
为了利用 Python 实现关联规则挖掘,通常会采用经典的 Apriori 算法。该算法能够有效地找出数据集中频繁项集并基于这些项集生成强关联规则。
#### 安装必要的库
首先需要安装 `mlxtend` 和 `pandas` 库来处理数据以及执行 Apriori 算法:
```bash
pip install mlxtend pandas
```
#### 数据准备
假设有一个购物篮分析的数据集如下所示:
| Transaction | Items |
|-------------|----------------------|
| T1 | Bread, Milk |
| T2 | Beer, Diapers |
| T3 | Bread, Butter, Eggs |
| ... | ... |
将此表格转换成适合 Apriori 输入的形式——即二元矩阵表示形式,在这里每一列代表一种商品,而每行则对应一次交易记录。
```python
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
dataset = [['Bread', 'Milk'],
['Beer', 'Diapers'],
['Bread', 'Butter', 'Eggs']]
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
print(df.head())
```
上述代码片段创建了一个由布尔值组成的 DataFrame 表格用于后续计算[^1]。
#### 执行 Apriori 算法寻找频繁项集
接下来调用 `apriori()` 函数找到满足最小支持度阈值的所有频繁项目组合:
```python
from mlxtend.frequent_patterns import apriori
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
print(frequent_itemsets)
```
这段程序指定了最低的支持率参数 (`min_support`) 来筛选出符合条件的频繁模式集合,并返回带有实际物品名称的结果表单而不是简单的索引编号[^4]。
#### 生成关联规则
最后一步是从前面得到的频繁项集中提取有用的关联关系:
```python
from mlxtend.frequent_patterns import association_rules
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
print(rules[['antecedents', 'consequents', 'support', 'confidence']])
```
此处设置了置信水平(`metric="confidence"`), 并设定了一个下限(`min_threshold`). 输出结果包含了前件 (antecedents),后件(consequents), 支持度(support) 及其对应的置信度(confidence).
阅读全文