Apriori算法的python实现

本文详细介绍了Apriori算法的基本原理,包括项、项集、事务等概念,以及支持度与置信度的计算方式。通过实例展示了如何用Python实现Apriori算法,并生成频繁项集和强关联规则。

最近学习了关联分析和用于寻找频繁项集的Apriori算法,做了一些笔记,并且来自己实现一下。

一、Apriori原理

首先需要了解几个基本概念:

项(item): 每个item成为一个项,例如购物记录里的apple, banana, orange每一件不同的物品就是一个项。
项集: 一个或多个项的集合组成项集。
频繁项集: 出现次数大于某个阈值的项集,称为频繁项集。
事务(transaction): 每一条记录称为一次事务,本质是一个项集,例如某一次购买的商品集合。

频繁项集的评估标准
  1. 支持度(support)是A,B同时出现的次数占总事务数的百分比。
    s u p p o r t ( A , B ) = P ( A ∩ B ) support(A, B) = P(A\cap B) support(A,B)=P(AB)

  2. 置信度(confidence)是已知A出现条件下B出现的概率。
    c o n f i d e n c e ( A ⇒ B ) = P ( B ∣ A ) = P ( A ∩ B ) P ( A ) confidence(A\Rightarrow B) = P(B\mid A) = \frac{P(A\cap B)}{P(A)} confidence(AB)=P(BA)=P(A)P(AB)

Apriori基本思想与原理

前提假设:频繁项集的所有非空子集也一定是频繁的。

步骤:

  1. 找出频繁项集:
  • 对每条记录进行排序,使得item按照字典序排列,防止出现(a,b)和(b,a)同一个项集出现两次的情况。
  • 产生频繁一项集,即数据列表中的每个item
  1. 由频繁项集产生强关联规则

在这里插入图片描述
实际应用中很少直接采用Apriori算法,但基本都是对其改进后的算法。

二、评价

  1. 缺点:
  • 频繁一项集会很大
  • 未考虑出现次数
  • 应用于商业领域可能需要考虑能产生更高效益的频繁项集
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值