Apriori关联规则挖掘

在某个商场,销售经理希望通过重新布置商品的摆放情况来提高销售额,那么该如何摆放既有利于方便顾客购买,也刺激顾客的购买欲呢?商品的摆放并不是随意的,首先是将同类商品放在一起外;其次,可以考虑将客户会经常同时购买的物品放在相邻的区域,可以有效地促进消费方便客户。在这种策略的指引下,于是这位销售经理开始统计购物小票,希望能从中有所发现。

环境和数据读取

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值