神经网络关联规则挖掘:牛奶和面包品牌关系示例代码
以下是一个简单的基于神经网络的关联规则挖掘示例代码,用于挖掘购买牛奶和面包品牌之间的关系:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 生成数据集
num_samples = 1000
milk_brands = ['A', 'B', 'C', 'D', 'E']
bread_brands = ['F', 'G', 'H', 'I', 'J']
X = np.zeros((num_samples, len(milk_brands) + len(bread_brands)))
for i in range(num_samples):
milk_brand = np.random.choice(milk_brands)
bread_brand = np.random.choice(bread_brands)
X[i, milk_brands.index(milk_brand)] = 1
X[i, len(milk_brands) + bread_brands.index(bread_brand)] = 1
y = np.zeros((num_samples, 2))
for i in range(num_samples):
if X[i, milk_brands.index('A')] == 1 and X[i, len(milk_brands) + bread_brands.index('F')] == 1:
y[i, 0] = 1
if X[i, milk_brands.index('B')] == 1 and X[i, len(milk_brands) + bread_brands.index('G')] == 1:
y[i, 1] = 1
# 构建神经网络模型
model = Sequential()
model.add(Dense(10, input_dim=len(milk_brands) + len(bread_brands), activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X, y, epochs=50, batch_size=10, verbose=0)
# 输出关联规则
for i, milk_brand in enumerate(milk_brands):
for j, bread_brand in enumerate(bread_brands):
if model.predict(np.array([np.concatenate((np.zeros(len(milk_brands)), np.zeros(len(bread_brands)))) + np.array([np.zeros(len(milk_brands)) + i, np.zeros(len(bread_brands)) + j])]))[0, 0] > 0.5:
print(milk_brand, 'and', bread_brand, 'are frequently purchased together')
数据集生成的代码如下:
import numpy as np
num_samples = 1000
milk_brands = ['A', 'B', 'C', 'D', 'E']
bread_brands = ['F', 'G', 'H', 'I', 'J']
X = np.zeros((num_samples, len(milk_brands) + len(bread_brands)))
for i in range(num_samples):
milk_brand = np.random.choice(milk_brands)
bread_brand = np.random.choice(bread_brands)
X[i, milk_brands.index(milk_brand)] = 1
X[i, len(milk_brands) + bread_brands.index(bread_brand)] = 1
y = np.zeros((num_samples, 2))
for i in range(num_samples):
if X[i, milk_brands.index('A')] == 1 and X[i, len(milk_brands) + bread_brands.index('F')] == 1:
y[i, 0] = 1
if X[i, milk_brands.index('B')] == 1 and X[i, len(milk_brands) + bread_brands.index('G')] == 1:
y[i, 1] = 1
该示例展示了如何使用神经网络来挖掘牛奶和面包品牌之间的关联规则。代码中,我们首先生成一个模拟数据集,然后构建一个简单的单层神经网络模型,并训练模型来预测购买牛奶和面包品牌之间的关系。最终,我们可以输出预测到的关联规则,例如'A and F are frequently purchased together'。
原文地址: https://www.cveoy.top/t/topic/jGgO 著作权归作者所有。请勿转载和采集!