对Market_Basket_Optimisation.csv使用mlxtend进行关联规则挖掘,找出经常一起购买的商品有哪些。将dataframe中的数据,转为List 数组类型 将List数组转换
时间: 2024-10-17 13:05:37 浏览: 43
对`Market_Basket_Optimisation.csv`文件进行关联规则挖掘通常使用Python的数据科学库如pandas进行数据预处理,然后利用mlxtend库中的`AssociationRuleLearning`模块来进行分析。首先,你需要加载CSV数据并将其读入DataFrame:
```python
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
# 1. 加载数据
df = pd.read_csv('Market_Basket_Optimisation.csv')
# 2. 将分类列(例如商品ID)转换为列表或交易集
def convert_to_list(column_name):
transaction_list = df[column_name].tolist() # 将一列转化为list
return transaction_list
# 假设我们关注的是'items_column'列
items_column = 'items_column'
item_lists = convert_to_list(items_column)
```
接下来,你需要创建TransactionEncoder对象,并将列表转换为编码后的二进制矩阵,这是关联规则学习的基础:
```python
te = TransactionEncoder()
te_ary = te.fit(item_lists).transform(item_lists)
# 现在te_ary是一个二维数组,每行代表一个购物篮的交易记录,其中非零元素表示包含的商品
```
现在你可以使用mlxtend的`frequent_itemsets()`函数找到频繁项集,之后使用`association_rules()`生成关联规则:
```python
# 生成频繁项集
min_support = 0.1 # 你可以设置最小支持度阈值
frequent_itemsets = apriori(te_ary, min_support=min_support, use_colnames=True)
# 生成关联规则
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
# 打印规则结果
print(rules)
```
最后,你可以看到哪些商品组合满足一定的支持度和置信度阈值,并被视为经常一起购买的。
阅读全文