600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Apriori关联规则挖掘算法函数

Apriori关联规则挖掘算法函数

时间:2023-02-06 15:28:05

相关推荐

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分)

代码 :

代码:

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

结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。