Apriori 原理:快速筛选频繁出现的症状组合

先明确一个前提:什么是 “频繁项集”?

比如医生想找 “经常一起出现的症状”,假设我们规定 “至少在 2 个病人身上出现才算频繁”(这就是 “最小支持度”)。

  1. 单个症状 “发烧” 在 3 个病人身上出现 → 算 “频繁 1 项集”;
  2. 症状组合 “发烧 + 咳嗽” 在 2 个病人身上出现 → 算 “频繁 2 项集”;
  3. 如果 “发烧 + 咳嗽 + 腹泻” 只在 1 个病人身上出现 → 不算频繁。

Apriori 原理:用 “小规则” 排除 “大麻烦”

Apriori 原理就一句话:

如果一个组合不频繁,那么包含它的所有更大组合也一定不频繁”

咱们拆成两句大白话理解:

1. 先看 “反例”:不频繁的组合,它的 “放大版” 也不频繁

比如我们发现 “咳嗽 + 腹泻” 这个组合只在 1 个病人身上出现(不频繁),那么:

  1. 包含它的 “发烧 + 咳嗽 + 腹泻” → 肯定也不频繁(因为 “咳嗽 + 腹泻” 本身就少,再加上 “发烧” 只会更少);
  2. 包含它的 “咳嗽 + 腹泻 + 头痛” → 也一定不频繁。

作用:遇到 “咳嗽 + 腹泻” 这种不频繁的组合,直接把所有包含它的更大组合(3 个症状、4 个症状...)全部排除,不用再计算它们的支持度,省了很多功夫。

2. 再看 “正例”:频繁的组合,它的 “缩小版” 也一定频繁

反过来,如果 “发烧 + 咳嗽” 是频繁组合(在 2 个病人身上出现),那么它的所有 “小组合”:

  1. “发烧”(单个症状) → 一定频繁;
  2. “咳嗽”(单个症状) → 一定频繁。

作用:如果一个组合是频繁的,那它拆分后的小组合肯定也频繁,不用怀疑。

举个例子:用 Apriori 原理快速筛选项集

假设我们有 5 个症状:发烧(A)、咳嗽(B)、嗓子痛(C)、头痛(D)、腹泻(E),最小支持度是 2 次。

  1. 先找 “频繁 1 项集”:

算出单个症状的出现次数,发现 “腹泻(E)” 只出现 1 次(不频繁)→ 排除。

剩下的频繁 1 项集:{A, B, C, D}。

  1. 再找 “频繁 2 项集”:

只需要用剩下的 A、B、C、D 两两组合(比如 A+B、A+C...),计算它们的出现次数。

假设发现 “B+D”(咳嗽 + 头痛)只出现 1 次(不频繁)→ 根据 Apriori 原理,所有包含 “B+D” 的 3 项集(比如 A+B+D、B+C+D)都可以直接排除,不用计算。

  1. 继续找 “频繁 3 项集”:

只用上一步筛选出的频繁 2 项集(比如 A+B、A+C)来组合,那些包含 “不频繁 2 项集” 的 3 项集,早就被排除了,计算量大大减少。

为什么要学这个原理?

因为它能帮我们 “少做无用功”。如果没有 Apriori 原理,我们可能要计算所有可能的组合(比如 5 个症状有 31 种组合),但用这个原理,能提前排除掉大部分肯定不频繁的组合,让计算效率翻倍。

这就是 Apriori 算法的核心秘密 —— 靠这个原理 “剪枝”,从海量数据中快速挖出频繁项集,再生成有用的关联规则(比如 “发烧 + 咳嗽→感冒”)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值