Association Rule
# module
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from apyori import apriori
# data
store_data = pd.read_csv('store_data.csv', header = None) # header = None
store_data.head()
min_support
전체 항목 7500 중에 7일에 5번 이상 구매된 항목
35 / 7500 = 0.0045min_confidence
20% = 0.2
min_lift
min_length
최소 item 단위
records = []
for i in range(0, 7501):
records.append([str(store_data.values[i,j]) for j in range(0, 20)])
association_rules = apriori(records, min_support = 0.0045, min_confidence = 0.2, min_lift = 3, min_length=2)
association_result = list(association_rules);
for item in association_result:
print(item[0])
items = [x for x in item[0]]
print(items[0] + " -> " + items[1])
print("support = " + str(item[1]))
print("confidence = " + str(item[2][0][2]))
print("lift = " + str(item[2][0][3]))
print()
# result
frozenset({'pasta', 'escalope', 'nan'})
pasta -> escalope
support = 0.005865884548726837
confidence = 0.3728813559322034
lift = 4.700811850163794