神经网络关联规则挖掘:牛奶和面包购买关系示例
以下是一个基于神经网络的关联规则挖掘的示例代码,用于挖掘购买牛奶和面包之间的关系:
import pandas as pd
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 加载数据集
data = pd.read_csv('milk_bread.csv', header=None)
# 将数据集转换为二进制矩阵
transactions = []
for i in range(0, len(data)):
transactions.append([str(data.values[i,j]) for j in range(0, 2)])
from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()
te_ary = te.fit(transactions).transform(transactions)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 构建神经网络模型
model = Sequential()
model.add(Dense(32, input_shape=(len(df.columns),), activation='relu'))
model.add(Dense(16, activation='relu'))
model.add(Dense(len(df.columns), activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy')
# 训练模型
model.fit(df, df, epochs=10)
# 提取关联规则
support = 0.2
confidence = 0.8
rules = []
for i in range(0, len(df.columns)):
for j in range(i+1, len(df.columns)):
s1 = sum(df[df.columns[i]])
s2 = sum(df[df.columns[j]])
s3 = sum(df[df.columns[i]] & df[df.columns[j]])
if s3 >= support * len(df) and s3 / s1 >= confidence:
rules.append((df.columns[i], df.columns[j], s3 / s1))
# 输出关联规则
for rule in rules:
print('{} -> {}: Confidence = {:.2f}'.format(rule[0], rule[1], rule[2]))
在这个示例中,我们首先加载了一个包含购买牛奶和面包之间关系的数据集。然后,我们将数据集转换为二进制矩阵,并使用这个矩阵来训练一个简单的神经网络模型。接下来,我们使用这个模型来提取关联规则,并输出这些规则及其置信度。
原文地址: https://www.cveoy.top/t/topic/jGei 著作权归作者所有。请勿转载和采集!