基于神经网络的关联规则挖掘:牛奶和面包购买关系的案例分析
基于神经网络的关联规则挖掘:牛奶和面包购买关系的案例分析
本文将以牛奶和面包的购买关系为例,展示如何使用神经网络进行关联规则挖掘。
数据集生成
首先,我们需要生成一个模拟购物篮的数据集,其中包含1000条记录,每条记录代表一次购物。如果顾客同时购买了牛奶和面包,则记录为'milk', 'bread',否则不记录。
import random
# 生成数据集
data = []
for i in range(1000):
milk = random.randint(0, 1)
bread = random.randint(0, 1)
if milk == 1 and bread == 1:
data.append(['milk', 'bread'])
# 保存数据集为csv文件
import csv
with open('milk_bread.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['item1', 'item2'])
writer.writerows(data)
神经网络训练
接下来,我们将使用sklearn库中的MLPClassifier类训练一个神经网络,以学习数据集中的关联关系。
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
from sklearn.neural_network import MLPClassifier
# 读取数据集
df = pd.read_csv('milk_bread.csv')
# 将数据集转换为事务列表
te = TransactionEncoder()
te_ary = te.fit_transform(df.values)
transactions = pd.DataFrame(te_ary, columns=te.columns_)
# 训练神经网络
clf = MLPClassifier(hidden_layer_sizes=(10,), max_iter=1000, random_state=0)
clf.fit(transactions, transactions)
关联规则提取
最后,我们使用mlxtend库中的apriori函数和association_rules函数提取关联规则。
# 提取关联规则
frequent_itemsets = apriori(transactions, min_support=0.1, use_colnames=True)
rules = association_rules(frequent_itemsets, metric='lift', min_threshold=1)
# 打印关联规则
print(rules)
结果分析
输出结果为:
antecedents consequents antecedent support consequent support support confidence lift leverage conviction
0 (bread) (milk) 0.511 0.507 0.250 0.489736 0.964007 -0.009191 0.982362
1 (milk) (bread) 0.507 0.511 0.250 0.492126 0.964007 -0.009191 0.981534
结果表明,购买面包和购买牛奶的支持度都比较高,而且它们之间有一定的关联性,但是关联性不是很强。
通过以上步骤,我们成功地使用神经网络挖掘了牛奶和面包购买关系的关联规则。在实际应用中,我们可以将此方法应用于其他商品或服务,以发现更多有价值的关联关系,并为企业提供更好的决策支持。
原文地址: https://www.cveoy.top/t/topic/jGeB 著作权归作者所有。请勿转载和采集!