Apriori关联规则挖掘算法函数

假设有以下《超市商品购买.txt》数据集,每行代表一个顾客在超市的购买记录:

I1: 西红柿、排骨、鸡蛋、毛巾、水果刀

I2: 西红柿、茄子、水果刀、香蕉

I3: 鸡蛋、袜子、毛巾、肥皂、水果刀

I4: 西红柿、排骨、茄子、毛巾、水果刀

I5: 西红柿、排骨、酸奶

I6: 鸡蛋、茄子、酸奶、肥皂、香蕉

I7: 排骨、鸡蛋、茄子、水果刀

I8: 土豆、鸡蛋、袜子、香蕉、水果刀

I9: 西红柿、排骨、鞋子、土豆、香蕉

建一个Python脚本,命名为“学号+姓名+test4.py”,完成以下任务:

1)将以上购买记录转换为布尔类型数据,其数据结构为DataFrame。(10分)

2)利用Apriori关联规则挖掘算法函数进行关联规则挖掘,最小支持度和最小置信度分别为0.2和0.4,并将挖掘结果导出到Excel表格中。(6分)

代码 :

  1. 代码:

import pandas as pd

import numpy as np

data=pd.read_table('超市商品购买.txt',engine='python',sep='、',encoding = 'gb2312',header=None)

tiem=['西红柿','茄子','水果刀','香蕉','袜子','毛巾','肥皂','排骨','酸奶','鸡蛋','鞋子','土豆']

D=dict()

for t in range(len(tiem)):

    z=np.zeros((len(data)))

    li=list()

    for k in range(len(data.iloc[0,:])):

        s=data.iloc[:,k]==tiem[t]

        li.extend(list(s[s.values==True].index))

    z[li]=1

    D.setdefault(tiem[t],z)

Data=pd.DataFrame(D)

Data

布尔图:

 


(2)代码:

c=list(Data.columns)

c0=0.4

s0=0.2

list1=[]

list2=[]

list3=[]

for k in range(len(c)):

    for q in range(len(c)):

         if c[k]!=c[q]:

             c1=Data[c[k]]

             c2=Data[c[q]]

             I1=c1.values==1

             I2=c2.values==1

             t12=np.zeros((len(c1)))

             t1=np.zeros((len(c1)))

             t12[I1&I2]=1

             t1[I1]=1

             sp=sum(t12)/len(c1)

             co=sum(t12)/sum(t1)

             if co>=c0 and sp>=s0:

              list1.append(c[k]+'--'+c[q])

              list2.append(sp)

              list3.append(co)

R={'rule':list1,'support':list2,'confidence':list3}

R=pd.DataFrame(R)

R.to_excel('导出数据.xlsx')

结果:

 

  • 1
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大型超市“购物蓝”问题 作为超市的经理,经常关心的问题是顾客的购物习惯。他们想知道:“什么商品组合或集合,顾客多半会在一次购物时同时购买?”。现在假设你是超市的市场分析员,已经掌握了该超市一个星期的所有顾客购买物品的清单和相应商品的价格,需要你给超市经理一个合理的“购物蓝”分析报告,并提供一个促销计划的初步方案。 具体的说,需要完成如下任务: 1、附件1中的表格数据显示了该超市一个星期内的1024个顾客对999种商品的购买记录,表格中每一行代表一个顾客购买记录,数字代表了其购买商品的超市内部编号。试建立一种数学模型,该模型能定量表达超市中多种商品间的关联关系的密切程度。 2、根据你在问题1中建立的模型,寻找一种快速有效的方法能从附件1中的购买记录中分析出那些商品是最频繁被同时购买的。超市经理希望得到尽可能多的商品被频繁同时购买的信息,所以你找到的最频繁被同时购买的商品数量越多越好。 例如:如果商品1、商品2、商品3在1024个购物记录中同时出现了200次,则可以认为这三个商品同时频繁出现了200次,商品数量是3。 3、附件2给出了这999种商品对应的利润,试根据前面建立的模型,给出一种初步的促销方案,使超市的效益进一步增大。 4、给超市经理写一个报告,分析超市的现状并对将来超市购物蓝信息的收集策略提出建议。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值