Apriori算法的python实现


作者:李雪茸

函数介绍

实现Apriori关联规则挖掘是借助mlxtend第三方包,使用步骤如下:

1、调用apriori算法挖掘频繁项集,apriori()中min_support也就是最小支持度,默认为0.5;

2、根据频繁项集,计算出它们的关联规则,使用association_rules()函数,如下

    association_rules(df, metric=“confidence”,
                min_threshold=0.8,
                support_only=False)

参数介绍:

  • df:就是 apriori 计算后的频繁项集

  • metric:可选值有’support’,‘confidence’,‘lift’,‘leverage’,‘conviction’

  • min_threshold:参数类型是浮点型,根据 metric 不同可选值有不同的范围

  • support_only:默认是 False。仅计算有支持度的项集,若缺失支持度则用 NaNs 填充。

实例

Step1:整理数据

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder#编码
from mlxtend.frequent_patterns import apriori#Apriori
from mlxtend.frequent_patterns import association_rules#导入关联规则包
###数据准备,每一行为一位购物者的购物篮
dataset = [['牛奶','面包','鸡蛋'],
          ['牛奶','鸡蛋'],
          ['面包','鸡蛋','酸奶'],
          ['牛奶','酸奶']]  
#进行 one-hot 编码
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
df

在这里插入图片描述

Step2:挖掘频繁项集

###挖掘频繁项集
#利用 Apriori 的支持度找出频繁项集,阈值为0.2
freq = apriori(df, min_support=0.2, use_colnames=True)
freq

在这里插入图片描述

Step3:挖掘关联规则

#挖掘关联规则
result = association_rules(freq, metric="lift", min_threshold=0.6)
result

在这里插入图片描述

Step4:进一步筛选规则

##利用兴趣因子(lift)筛选掉无意的规则
result[result["lift"]>1]

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值