当前位置: 首页 > news >正文

【数据分析九:Association Rule】关联分析

一、数据挖掘定义

数据挖掘:
从大量的数据中挖掘那些令人感兴趣的、有用的、隐含的、先前未知的
和可能有用的 模式或知识 ,并据此更好的服务人们的生活。

二、四类任务

数据分析有哪些任务?

今天我们来讲述其中的关联分析

三、关联分析

典型例子:啤酒与尿布

常用方法 —— 关联规则挖掘 (Association Rule Mining)

        给出事务的集合, 能够发现一些规则:𝐴 => 𝐵

        当事务中某些子项出现时,预测其他子项也出现

基本概念:

Association Rule(关联规则)

    形如X → Y的表达式,X, Y均为项集

    例:{Milk, Diaper} →{Beer}

Confidence (置信度)

    度量包含X的事务中同时出现Y的频率

    例:对于关联规则{Milk, Diaper} →{Beer}

    confidence({Milk, Diaper} →{Beer})= 2/3

强关联规则

    用户自行设定最小置信度阈值min _conf,置信度大于min _conf的规则称为强关联规则

    例:设min _conf = 0.5,则{Milk, Diaper} →{Beer}为强关联规则

四、APriori算法

生成频繁项集

核心思想:广度优先搜索,自底而上遍历,逐步生成候选集与频繁项集

反单调性原理:如果一个项集是频繁的,则它的所有子集一定也是频繁

成立原因:

        ∀X, Y: X ⊆ Y → Support X ≥ Support(Y)

        依据该性质,对于某k+1项集,只要存在一个k项子集不是频繁项集, 则可以直接判定该项集不是频繁项集

 

算法步骤

        连接步:从频繁 K-1 项集生成候选K项集

        剪枝步:从候选 K 项集筛选出频繁K项集

举个例子:

下图为某商店的用户购买记录,共有9个事务,A-Priori假定事务中的项按字典次序存放。

(1) 在算法的第一次迭代,每个项都是候选1项集的集合C_1的成员。算法简单地扫描所有的事务,对每个项的出现次数计数

(2) 设最小支持度计数=2,可以确定频繁1项集的集合L_1

(3) 使用L1⋈ L1产生候选2项集的集合C_2

(4) 扫描数据集,计算C_2中每个候选项集的支持度

(5)最小支持度计数=2,确定频繁2项集的集合L_2

(6) 使用L2⋈ L2产生候选3项集的集合C_3

(7) 扫描数据集,计算C_3中每个候选项集的支持度

(8)最小支持度计数=2,确定频繁3项集的集合L_3

(9) 使用L3⋈ L3产生候选4项集的集合C4,尽管连接产生结果 \{l_1, l_2, l_3, l_5\} ,这个项集被

剪去,因为它的子集 \{l_2, l_3, l_5\}不是频繁的。则C4 = ∅ ,因此算法终止,找出了所有的

频繁项集如下

五、生成规则

关联规则挖掘的第二步:如何从频繁项集中生成规则?

若{A,B,C,D}是频繁项集, 候选规则有14种:

ABC →D, ABD →C, ACD →B, BCD →A,

A →BCD,B →ACD, C →ABD, D →ABC

AB →CD,AC → BD, AD → BC, BC →AD,BD →AC, CD →AB,

|L| = k, 则有2^k- 2 种候选的关联规则(忽略L → \phi\phi → L)

关联规则生成(Rule Generation)—— 计算复杂度

对于d个项目:

候选项集数= 2^d

可能规则数R = 3^d-2^{d+1}+1

六、辛普森悖论

相关关系≠因果关系,但相关关系的背后可能蕴含着某种因果

例如,公鸡打鸣 → 太阳升起,从关联规则角度来说,是高置信度规则,说明“公鸡打鸣 ”与“太阳升起”很相关,但并不是因果关系

第二个实例:

适当的数据分层有助于避免辛普森悖论


下一讲,我们将讲述分类和预测

相关文章:

  • 【前端AI实践】DeepSeek:开源大模型的使用让开发过程不再抓头发
  • 打造高效工作环境:技术方案助力文件整理提速
  • C++ 进阶:深入理解虚函数、继承与多态
  • Java项目:基于SSM框架实现的学生二手书籍交易平台管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+任务书+开题】
  • 使用Blender调整unity3d中的Fbx模型
  • Electron(01)
  • photoshop(ps)2025安装教程
  • MySQL日志锁
  • 数据结构 栈与队列 6.18
  • Linux软件管理包-yum和基础开发工具-vim
  • Evertz SVDN 3080ipx-10G Web管理接口任意命令注入及认证绕过漏洞(CVE-2025-4009)
  • 构建低代码平台的技术解析
  • 龙蜥OS搭建Technitium DNS全指南
  • git的使用——初步认识git和基础操作
  • 计算机视觉课程总结
  • python实现将COQE数据转换成字符串的格式
  • ollama在win10中使用
  • 前端面试专栏-主流框架:10. React状态管理方案(Redux、Mobx、Zustand)
  • 错误监控----比如实现sentry一些思路
  • web和uniapp接入腾讯云直播
  • 电脑当服务器做网站/百度电话客服24小时
  • 宣传京津风筝网站的建设目的/新产品如何快速推广市场
  • 做网站需要编程?/北京网站优化多少钱
  • dede企业网站带留言板后台查询/海南百度推广公司
  • 网站备案 法人变更/天气预报最新天气预报
  • 网站如何做tag/广告推广怎么做最有效