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

布尔图:

Apriori关联规则挖掘算法函数_第1张图片

 


(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')

结果:

Apriori关联规则挖掘算法函数_第2张图片

 

你可能感兴趣的:(算法,python,pandas)