郭震 AI公众号:郭震AI

12 数据挖掘技术之关联规则

发布日期:

最近更新:

分类: 数据挖掘小白

预计阅读: 5 分钟

阅读次数: 0

预计阅读5 分钟
结构重点8 个
图文要点6 张
正文规模2.1k 字
数据挖掘技术之关联规则结构图查看大图
数据挖掘技术之关联规则结构图

数据挖掘不是只跑算法,而是从数据准备、模式发现到结果解释的一整条流程。阅读时可以按「关联规则的基本概念 -> 关联规则算法 -> Apriori 算法 -> FP-Growth 算法」建立结构,再回到正文里的代码、案例或指标做验证。

数据挖掘技术之关联规则核对图查看大图
数据挖掘技术之关联规则核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「关联规则的基本概念」,再查「关联规则算法」。

在数据挖掘领域,关联规则是揭示数据间潜在关系的重要方法。它通常用于找出不同变量之间的关系,广泛应用于市场篮子分析、推荐系统等场景。本篇文章将详细介绍关联规则的基本概念、常用算法、实际应用案例,以及如何使用 Python 实现简单的关联规则挖掘。

关联规则的基本概念

关联规则的形式可以表示为 XYX \Rightarrow Y,其中 XXYY 是项集。这个规则的意思是:如果在一个事务中出现了 XX,那么在很多情况下也会出现 YY。主要有以下几个重要指标来衡量关联规则的有效性:

关联规则判断卡查看大图
关联规则判断卡

学习关联规则时,先看事务数据、频繁项集、支持度、置信度、提升度和可解释的业务动作。

  • 支持度 (Support):表示包含项集 XYX \cup Y 的事务所占的比例,公式为:

    Support(XY)=count(XY)total transactions\text{Support}(X \cup Y) = \frac{\text{count}(X \cup Y)}{\text{total transactions}}
  • 置信度 (Confidence):表示在包含项集 XX 的事务中,同时也包含项集 YY 的比例,公式为:

Confidence(XY)=Support(XY)Support(X)\text{Confidence}(X \Rightarrow Y) = \frac{\text{Support}(X \cup Y)}{\text{Support}(X)}
  • 提升度 (Lift):表示规则 XYX \Rightarrow Y 的强度,与 XXYY 的独立性关系有关,公式为:

    Lift(XY)=Confidence(XY)Support(Y)\text{Lift}(X \Rightarrow Y) = \frac{\text{Confidence}(X \Rightarrow Y)}{\text{Support}(Y)}
  • 关联规则算法

    在数据挖掘中,最著名的关联规则挖掘算法是 Apriori 算法和 FP-Growth 算法。

    数据挖掘阅读地图卡查看大图
    数据挖掘阅读地图卡

    看完《数据挖掘技术之关联规则》后,建议用一分钟复盘:关键概念是否分清、练习步骤是否可复现、结论能不能换成自己的话。

    Apriori 算法

    Apriori算法基于“先频繁后生成”的思想,借助支持度来发现频繁项集。其主要步骤如下:

    1. 生成候选项集:从单个项开始,计算所有项的支持度,找到频繁项集。
    2. 剪枝:利用频繁项集的特性,删去不可能成为频繁项集的项集。
    3. 迭代:不断重复上述过程,直到无法生成新的频繁项集为止。

    FP-Growth 算法

    与 Apriori 算法不同,FP-Growth算法不生成候选项集,而是构建一个 FP-tree(Frequent Pattern Tree),直接从中挖掘频繁项集。其步骤如下:

    1. 构建 FP-tree:扫描数据库,统计每个项的频次,构建树结构。
    2. 挖掘频繁项集:从 FP-tree 中递归地挖掘频繁项集,利用条件模式基生成局部频繁项集。

    案例分析:市场篮子分析

    下面我们通过一个市场篮子分析的案例来具体演示如何利用 Python 进行关联规则挖掘。

    假设有以下交易数据:

    Transaction ID Items
    1 Milk, Bread
    2 Milk, Diaper, Beer
    3 Bread, Diaper
    4 Milk, Bread, Diaper
    5 Bread, Diaper

    我们将使用 mlxtend 库中的 aprioriassociation_rules 函数来实现关联规则挖掘。

    代码示例

    首先,安装 mlxtend 库(如果尚未安装):

    pip install mlxtend
    

    接下来,使用以下代码进行关联规则挖掘:

    import pandas as pd
    from mlxtend.frequent_patterns import apriori, association_rules
    
    # 创建事务数据
    data = [['Milk', 'Bread'],
            ['Milk', 'Diaper', 'Beer'],
            ['Bread', 'Diaper'],
            ['Milk', 'Bread', 'Diaper'],
            ['Bread', 'Diaper']]
    
    # 转换为 DataFrame 格式
    df = pd.DataFrame(data, columns=['Items'])
    
    # 将事务数据转换为一个热编码格式(One-Hot Encoding)
    from mlxtend.preprocessing import TransactionEncoder
    encoder = TransactionEncoder()
    onehot = encoder.fit(data).transform(data)
    onehot_df = pd.DataFrame(onehot, columns=encoder.columns_)
    
    # 计算频繁项集
    frequent_itemsets = apriori(onehot_df, min_support=0.4, use_colnames=True)
    
    # 生成关联规则
    rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.5)
    
    # 输出结果
    print(rules)
    

    结果解析

    输出的关联规则将显示不同项之间的关系,比如如果购买了 Milk,则购买 Bread 的概率为 Confidence 的值。我们可以由此判断哪些商品的组合是值得推荐的。

    数据挖掘技术之关联规则应用复盘卡查看大图
    数据挖掘技术之关联规则应用复盘卡

    读到这里,可以把《数据挖掘技术之关联规则》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

    数据挖掘技术之关联规则应用检查卡查看大图
    数据挖掘技术之关联规则应用检查卡

    读完《数据挖掘技术之关联规则》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

    总结

    通过本篇文章,我们详细介绍了数据挖掘技术中的 关联规则,了解了其基本概念、常用算法及应用案例。采用 AprioriFP-Growth 算法,我们可以有效地发现数据中的有趣关系,下一篇我们将讨论模型评估与选择中的各种评估指标,帮助我们更好地理解算法的效果。

    希望本系列教程能帮助数据挖掘小白们掌握相关知识,欢迎在后续学习中继续跟随我们的内容!

    相关教程

    相关入口

    AI 教程总索引

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    相关教程

    AI 教程总索引

    相关内容

    相关 AI 教程

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...