基于神经网络的关联规则挖掘:牛奶和面包购买关系的案例分析

本文将以牛奶和面包的购买关系为例,展示如何使用神经网络进行关联规则挖掘。

数据集生成

首先,我们需要生成一个模拟购物篮的数据集,其中包含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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录