apriori算法breadBasket频繁项集和规则挖掘

文章目录

前言

什么是AI?
The theory and development of computer systems able to perform tasks normally requiring human intelligence.(–Oxford Dictionary)
Using data to solve problems.(–cy)

过程

数据集一家超市的购物信息,包括了购物时间,购物篮和购物篮中的商品名称,用apriori算法做一下数据的频繁项集和规则挖掘。

#先导包
from efficient_apriori import apriori
import pandas as pd
#数据加载
data=pd.read_csv('BreadBasket_DMS.csv')
data

在这里插入图片描述

#Item统一小写
data['Item']=data['Item'].str.lower()
data

在这里插入图片描述

#看一下是否有空值
data.isnull().any()#没有空值  然后看看有多少个None

Date False
Time False
Transaction False
Item False
dtype: bool

#看看Transaction的数据分布
data['Transaction'].value_counts()

在这里插入图片描述

#看看item的数据分布
data_item=data['Item'].value_counts()
data_item

在这里插入图片描述

#除了none之外 看看是否还有其他的奇葩
data_item.index#没有了

在这里插入图片描述

#看看item里面none有多少个
data_item.loc["none"]#有787个   反正已经是none了  留着也意义不大 删除吧

787

data=data.drop(data[data.Item == 'none'].index)
data#这个时候item里面为none的行都删除了

在这里插入图片描述

# 得到一维数组orders_series,并且将Transaction作为index, value为Item取值
orders_series = data.set_index('Transaction')['Item']
orders_series

在这里插入图片描述

# 将数据集进行格式转换
transactions = []
temp_index = 0
for i, v in orders_series.items():
    if i != temp_index:
        temp_set = set()
        temp_index = i
        temp_set.add(v)
        transactions.append(temp_set)
    else:
        temp_set.add(v)         
transactions#得到了购物篮     

在这里插入图片描述

# 挖掘频繁项集和频繁规则
itemsets, rules = apriori(transactions, min_support=0.02,  min_confidence=0.5)
print('频繁项集:\n', itemsets)
print('关联规则:\n', rules)

频繁项集:
{1: {(‘scandinavian’,): 275, (‘hot chocolate’,): 552, (‘cookies’,): 515, (‘muffin’,): 364, (‘coffee’,): 4528, (‘bread’,): 3096, (‘pastry’,): 815, (‘medialuna’,): 585, (‘tea’,): 1350, (‘farm house’,): 371, (‘juice’,): 365, (‘soup’,): 326, (‘cake’,): 983, (‘sandwich’,): 680, (‘alfajores’,): 344, (‘brownie’,): 379, (‘truffles’,): 192, (‘toast’,): 318, (‘scone’,): 327}, 2: {(‘bread’, ‘coffee’): 852, (‘bread’, ‘pastry’): 276, (‘coffee’, ‘pastry’): 450, (‘coffee’, ‘medialuna’): 333, (‘coffee’, ‘tea’): 472, (‘bread’, ‘tea’): 266, (‘coffee’, ‘juice’): 195, (‘coffee’, ‘hot chocolate’): 280, (‘coffee’, ‘cookies’): 267, (‘cake’, ‘coffee’): 518, (‘cake’, ‘tea’): 225, (‘bread’, ‘cake’): 221, (‘coffee’, ‘sandwich’): 362, (‘coffee’, ‘toast’): 224}}
关联规则:
[{pastry} -> {coffee}, {medialuna} -> {coffee}, {juice} -> {coffee}, {hot chocolate} -> {coffee}, {cookies} -> {coffee}, {cake} -> {coffee}, {sandwich} -> {coffee}, {toast} -> {coffee}]

总结

(如果您发现我写的有错误,欢迎在评论区批评指正)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值