在某个商场,销售经理希望通过重新布置商品的摆放情况来提高销售额,那么该如何摆放既有利于方便顾客购买,也刺激顾客的购买欲呢?商品的摆放并不是随意的,首先是将同类商品放在一起外;其次,可以考虑将客户会经常同时购买的物品放在相邻的区域,可以有效地促进消费方便客户。在这种策略的指引下,于是这位销售经理开始统计购物小票,希望能从中有所发现。
环境和数据读取
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
origin_data=open("E:/input/data.txt","r",encoding='utf-8')
line = origin_data.readline()
line
数据处理
#创建空列表
title_list=[]
while line:
line=line.strip()#去掉换行符
product_items=line.split(',')#把一行数据用逗号进行分隔
for item in product_items:#将商品名加入列表中
title_list.append(item)
line=origin_data.readline()#读取下一行
#去重
title_list=set(title_list)
title_list
#打印列表的长度
print("共有",len(title_list),"种商品")
origin_data.close()
数据转换
#创建一个空的DataFrame用来存放处理后的数据集
changed_data=pd.DataFrame(columns=title_list)
origin_data=open("E:/input/data.txt","r",encoding='utf-8')
line=origin_data.readline()
while line:
line=line.strip()
customer={}
product_items=line.split(',')
for item in title_list:#逐个查看是否购买商品
if(product_items.__contains__(item)):
customer[item]=1
else:
customer[item]=0
changed_data=changed_data.append(customer,ignore_index=True)#将这一行添加到数据集中
line=origin_data.readline()
changed_data.head()
changed_data.to_excel("E:/output/changed_data.xlsx",index=False)#保存数据
关联规则挖掘
frequent_itemsets=apriori(changed_data,min_support=0.05,use_colnames=True)
#输出频繁项集
frequent_itemsets
rules=association_rules(frequent_itemsets,metric='lift',min_threshold=1)
#输出得到关联规则
rules