一文详解仅用python底层代码实现关联规则与Apriori算法

本文深入探讨关联规则的基本概念和理论基础,重点解析Apriori算法,并提供基于Python的代码实现,详细解释如何通过迭代和剪枝步骤生成频繁项集并挖掘高置信度规则。
摘要由CSDN通过智能技术生成

一、基本概念

1.1. 项集的定义:在关联分析中,包含 0 0 0 个或多个项的集合称为项集.如果一个项集包含 k k k 个项,则称它为 𝑘 − 𝑘 − k项集.例如{牛奶,面包,麦片}是一个 3 − 3 − 3项集.
我们把空集看成不包含任何项的项集.如果一个项集 X X X出现在某个事物 𝑡 𝑖 𝑡_𝑖 ti 对应的购物记录中,称该事物包含了该项集,记为 𝑋 ⊆ 𝑡 𝑖 𝑋 ⊆ 𝑡_𝑖 Xti.每个事物包含的项集都是 𝐼 𝐼 I的子集.

1.2. 支持度的定义:项集的一个重要性质就是它的支持度计数,即包含该项集的事务个数.项集 X X X 的支持度计数可以用 σ ( 𝑋 ) = ∣ { 𝑡 𝑖 : 𝑋 ⊆ 𝑡 𝑖 , 𝑡 𝑖 ∈ 𝑇 } ∣ \sigma(𝑋) = |\{𝑡_𝑖: 𝑋 ⊆ 𝑡_𝑖, 𝑡_𝑖\in 𝑇\}| σ(X)={ ti:Xti,tiT}来表示

1.3. 关联规则的表示方式:形如 𝑋 → 𝑌 𝑋 \rightarrow𝑌 XY的蕴
涵表达式,其中 𝑋 𝑋 X 𝑌 𝑌 Y 是是不相交的项集.关联规则的强度可以用它的支持度 𝑠 𝑠 s 和置信度 𝑐 𝑐 c 来度量,分别定义如下: 𝑠 ( 𝑋 → 𝑌 ) = σ ( 𝑋 ∪ 𝑌 ) N , 𝑐 ( 𝑋 → 𝑌 ) = σ ( 𝑋 ∪ 𝑌 ) σ ( X ) 𝑠(𝑋 → 𝑌) =\frac{ \sigma(𝑋\cup𝑌)}{N} , 𝑐(𝑋 \rightarrow 𝑌) = \frac{\sigma(𝑋\cup𝑌)}{\sigma(X)} s(XY)=Nσ(XY),c(XY)=σ(X)σ(XY)

二、理论基础

2.1. 关联规则的挖掘分解可以拆分成一下两个子任务
(1)产生频繁项集:发现满足最小支持度阈值的所有项集,称为频繁项集;
(2)产生关联规则:从上一步发现的频繁项集中提取所有高置信度的规则.

如果采用对每个项集都计算其支持度计数的方式去发现频繁项集,必须将每个候选项集与每个事物去比较,这样做显然计算开销非常大.一个自然的思路就是能否利用频繁项集的性质在计算前减少候选项集的数目.对每一个非空项集来说,它的每个非空子集也是一个项集,并且包含大的项集的事务也一定包含该项集的每一个子集,因而我们有如下的先验原理.

2.2. (先验原理)设 𝑋 𝑋 X是项集,若

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值