Apriori简单运用

https://www.cnblogs.com/molieren/articles/10679277.html
https://www.cnblogs.com/bigmonkey/p/7405555.html
https://www.cnblogs.com/bigmonkey/p/7449761.html

from efficient_apriori import apriori
# 设置数据集
data = [('牛奶','面包','尿布'),
           ('可乐','面包', '尿布', '啤酒'),
           ('牛奶','尿布', '啤酒', '鸡蛋'),
           ('面包', '牛奶', '尿布', '啤酒'),
           ('面包', '牛奶', '尿布', '可乐')]
itemsets, rules = apriori(data, min_support=0.5,  min_confidence=1)  #最小支持度,最小置信度

min_support=0.5表示频繁项集出现的次数占一半或者以上,这里有5次购物,则至少出现3次才可以。
min_confidence=1表示最小置信度为1,其实是买了前件,就一定要买后件。

itemsets   # 频繁项集
{1: {('啤酒',): 3, ('尿布',): 5, ('牛奶',): 4, ('面包',): 4},
 2: {('啤酒', '尿布'): 3, ('尿布', '牛奶'): 4, ('尿布', '面包'): 4, ('牛奶', '面包'): 3},
 3: {('尿布', '牛奶', '面包'): 3}}

前面1,2,3代表的是频繁项集的维数,里面的3,5,4,4等是支持度(大于等于3),即出现的次数。

rules  # 频繁规则
[{牛奶} -> {尿布}, {面包} -> {尿布}, {啤酒} -> {尿布}, {牛奶, 面包} -> {尿布}]

买了牛奶一定会买尿布,买了啤酒一定会买尿布等等,但买了尿布不一定会买啤酒。

data 是个List类型,其中每个值都可以是一个集合。实际上也可以把 data 列表中的每个值由tuple设置为 List 类型,两者的运行结果是一样的。

efficient-apriori 工具包把每一条数据集里的项式都放到了一个集合中进行运算,并没有考虑它们之间的先后顺序。因为实际情况下,同一个购物篮中的物品也不需要考虑购买的先后顺序。而其他的 Apriori 算法可能会因为考虑了先后顺序,出现计算频繁项集结果不对的情况。所以这里采用的是 efficient-apriori 这个工具包。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值