以下是一个基于神经网络的关联规则挖掘的示例代码,用于挖掘购买牛奶和面包之间的关系:

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 著作权归作者所有。请勿转载和采集!

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