数据分析系列--④RapidMiner进行关联分析(案例)
一、核心概念
1.项集(Itemset)
2.规则(Rule)
3.支持度(Support)
3.1 支持度的定义
3.2 支持度的意义
3.3 支持度的应用
3.4 支持度的示例
3.5 支持度的调整
3.6 支持度与其他指标的关系
4.置信度(Confidence)
5.提升度(Lift)
5.1Lift说明
5.2提升度的意义
5.3提升度的计算示例
5.4提升度的应用
5.5. 提升度与其他指标的关系
5.6在 RapidMiner 中使用提升度
2.关联分析的目标
二、关联分析实践
1.表Attributes说明
2.修改数据预处理相关参数
2.1 复制之前的流程并修改名字
2.2 修改预处理中的相关参数
2.3 进行关联分析
2.4 结论
3.收尾工作
关联分析说明:
关联分析(Association Analysis) 是一种用于发现数据集中项与项之间关系的技术。它通常用于帮助商家识别顾客购买行为中的规律,例如“购买商品 A 的顾客也倾向于购买商品 B”。
举两个小列子,比如在超市购物,相关联的物品会摆在靠近的位置,比如卖牙膏的附近会有牙刷,卖咖啡的地方通常会有咖啡伴侣,炼乳等;又比如你在购物APP中买了东西,比如一个新手机,最近一段时间它就会给你推荐手机膜,手机壳等等.当然结论是推荐算法给出的,但推荐算法依赖的数据是通过类似于关联分析得到的结果.
在关联分析中一些重要的核心概念说明:
一、核心概念
1.项集(Itemset)
一组项的集合,例如 {牛奶, 面包}、{牙膏,牙刷}、{咖啡,咖啡伴侣},{手机,手机周边材料}。
2.规则(Rule)
形如 {A} → {B}
的关联规则,表示“如果购买了 A,则可能购买 B”。
3.支持度(Support)
项集或规则在数据集中出现的频率。例如,{牛奶, 面包}
的支持度为 30%,表示 30% 的交易中同时包含牛奶和面包。
3.1 支持度的定义
支持度表示某个项集或规则在数据集中出现的比例。它的计算公式如下:
-
项集的支持度:
例如,项集 {牛奶, 面包} 的支持度为 30%,表示在所有交易中,30% 的交易同时包含牛奶和面包。
-
规则的支持度:
例如,规则 {牛奶} → {面包} 的支持度为 25%,表示在所有交易中,25% 的交易同时包含牛奶和面包。
3.2 支持度的意义
-
衡量频率:
支持度反映了项集或规则在数据集中出现的普遍性。支持度越高,说明该模式在数据中越常见。 -
过滤不重要项:
通过设置最小支持度阈值(如 0.1),可以过滤掉低频的项集或规则,减少计算量并聚焦于有意义的模式。
3.3 支持度的应用
①发现频繁项集:在关联分析中,首先需要找到所有满足最小支持度阈值的频繁项集。例如,如果最小支持度为 0.2,则只有支持度 ≥ 20% 的项集会被保留。
②生成关联规则:基于频繁项集生成关联规则时,规则的支持度必须满足最小支持度阈值。例如,规则 {牛奶} → {面包} 的支持度为 25%,如果最小支持度为 0.2,则该规则会被保留。
3.4 支持度的示例
假设有以下交易数据:
交易ID | 商品 |
---|---|
1 | 牛奶, 面包 |
2 | 牛奶, 尿布 |
3 | 牛奶, 面包, 啤酒 |
4 | 面包, 啤酒 |
5 | 牛奶, 面包 |
-
计算项集 {牛奶, 面包} 的支持度:
-
包含 {牛奶, 面包} 的交易:交易 1、3、5。
-
总交易数:5。
-
支持度 = 3 / 5 = 0.6(即 60%)。
-
-
计算规则 {牛奶} → {面包} 的支持度:
-
同时包含 {牛奶} 和 {面包} 的交易:交易 1、3、5。
-
总交易数:5。
-
支持度 = 3 / 5 = 0.6(即 60%)。
-
3.5 支持度的调整
-
最小支持度阈值:
-
设置过高的阈值可能会漏掉一些有意义的低频模式。
-
设置过低的阈值可能会产生大量无意义的规则。
-
通常需要根据数据规模和业务需求进行调整。
-
3.6 支持度与其他指标的关系
-
置信度(Confidence):
-
置信度衡量规则的可靠性,计算公式为:
-
支持度是置信度计算的基础。
-
-
提升度(Lift):
-
提升度衡量规则的相关性,计算公式为:
-
支持度也是提升度计算的基础。
-
4.置信度(Confidence)
规则的可靠性。例如,规则 {牛奶} → {面包}
的置信度为 80%,表示在购买牛奶的交易中,80% 也购买了面包。
5.提升度(Lift)
衡量规则的相关性。提升度 > 1 表示正相关,< 1 表示负相关。用于评估两个事件之间的关联强度,以及一个事件的发生对另一个事件发生的概率的影响.比如该用户长时间不购买牛奶会不会影响其购买面包等.
5.1Lift说明
提升度(Lift)表示在给定条件下(例如,事件A发生的情况下),事件B发生的概率与不考虑该条件时事件B发生的概率之比。其数学公式为:
其中:
- P(A∩B) 表示事件A和事件B同时发生的概率。
- P(A) 表示事件A发生的概率。
- P(B) 表示事件B发生的概率。
提升度衡量的是规则 {A} → {B}
的相关性,具体定义为:
5.2提升度的意义
-
Lift = 1:
-
表示 A 和 B 是独立的,两者之间没有相关性。
-
-
Lift > 1:
-
表示 A 和 B 是正相关的,A 的出现会提高 B 出现的概率。
-
例如,Lift = 2 表示在 A 出现的情况下,B 出现的概率是原本的 2 倍。
-
-
Lift < 1:
-
表示 A 和 B 是负相关的,A 的出现会降低 B 出现的概率。
-
5.3提升度的计算示例
假设有以下交易数据:
交易ID | 商品A | 商品B |
---|---|---|
1 | 是 | 是 |
2 | 是 | 否 |
3 | 否 | 是 |
4 | 否 | 否 |
-
Support(A):商品 A 出现的频率 = 2/4 = 0.5
-
Support(B):商品 B 出现的频率 = 2/4 = 0.5
-
Support(A ∪ B):商品 A 和 B 同时出现的频率 = 1/4 = 0.25
计算提升度:
5.4提升度的应用
①评估规则的有效性:提升度 > 1 的规则通常更有意义,表明 A 和 B 之间存在正相关。
②优化营销策略:例如,如果 {牛奶} → {面包}
的提升度为 2,可以在牛奶附近摆放面包,促进销售。
③过滤无效规则:提升度接近 1 的规则可能没有实际意义,可以忽略。
5.5. 提升度与其他指标的关系
-
支持度(Support):
-
衡量规则在数据中的普遍性。
-
-
置信度(Confidence):
-
衡量规则的可靠性。
-
-
提升度(Lift):
-
衡量规则的相关性。
-
5.6在 RapidMiner 中使用提升度
①使用 FP-Growth
算子生成频繁项集。
②使用 Create Association Rules
算子生成规则,并设置最小提升度阈值。
③在结果中查看每条规则的提升度,筛选出有意义的规则。
2.关联分析的目标
“购买商品 A 的顾客也倾向于购买商品 B”,支持这个目标的项集(Itemset)、规则(Rule)、支持度(Support)、置信度(Confidence)、提升度(Lift)分别是什么,是否靠谱。
二、关联分析实践
说明:数据预处理部分参照 数据分析系列--③RapidMiner算子说明及数据预处理中的步骤,只是将数据表改为AssociationAnalysisData.xlsx .
1.表Attributes说明
表属性数据说明 | |
Elapsed_Time | : 每个调查对象完成调查所用的时间。精确到0.01分钟。 |
Time_in_Community | : 用于询问调查对象在该社区的居住时间是0-2年、3-9年,还是10年以上,并在数据集中分别记录为“Short”、“Medium”或“Long”。 |
Gender | : 调查对象性别。 |
Working | : 调查对象是否从事有薪工作,结果为yes/no。 |
Age | : 调查对象年龄。 |
Family | : 调查对象是否结婚,结果为yes/no。 |
Hobbies | : 调查对象是否参与兴趣爱好协会,结果为yes/no。 |
Social_Club | : 调查对象是否参与社会组织,结果为yes/no。 |
Political | : 调查对象是否参与政治组织,结果为yes/no。 Professional: 调查对象是否参与专业组织,结果为yes/no。 |
Religious | : 调查对象是否参与教会组织,结果为yes/no。 |
Support_Group | : 调查对象是否参与援助导向型组织,结果为yes/no。 |
2.修改数据预处理相关参数
2.1 复制之前的流程并修改名字
2.2 修改预处理中的相关参数
ctrl + s保存
2.3 进行关联分析
观察数据:
引入Numerical to Binominal算子将0和1的数据转化为false和true便于后续分析:
引入 FP-Growth找到频繁项集(概念在前面):
我的理解是一组经常同时出现的项的集合,面包+牛奶++++等等等.
结论:是否结婚与是否参加社交俱乐部及是否参加政治组织可能存在关联.
产生关联规则,使用算子Create Association Rules
2.4 结论
3.收尾工作
Ending, congratulations, you're done.
相关文章:

数据分析系列--④RapidMiner进行关联分析(案例)
一、核心概念 1.项集(Itemset) 2.规则(Rule) 3.支持度(Support) 3.1 支持度的定义 3.2 支持度的意义 3.3 支持度的应用 3.4 支持度的示例 3.5 支持度的调整 3.6 支持度与其他指标的关系 4.置信度࿰…...

1/30每日一题
从输入 URL 到页面展示到底发生了什么? 1. 输入 URL 与浏览器解析 当你在浏览器地址栏输入 URL 并按下回车,浏览器首先会解析这个 URL(统一资源定位符),比如 https://www.example.com。浏览器会解析这个 URL 中的不同…...

vim的多文件操作
[rootxxx ~]# vim aa.txt bb.txt cc.txt #多文件操作 next #下一个文件 prev #上一个文件 first #第一个文件 last #最后一个文件 快捷键: ctrlshift^ #当前和上个之间切换 说明:快捷键ctrlshift^,…...

设计转换Apache Hive的HQL语句为Snowflake SQL语句的Python程序方法
首先,根据以下各类HQL语句的基本实例和官方文档记录的这些命令语句各种参数设置,得到各种HQL语句的完整实例,然后在Snowflake的官方文档找到它们对应的Snowflake SQL语句,建立起对应的关系表。在这个过程中要注意HQL语句和Snowfla…...

CAPL与外部接口
CAPL与外部接口 目录 CAPL与外部接口1. 引言2. CAPL与C/C++交互2.1 CAPL与C/C++交互简介2.2 CAPL与C/C++交互实现3. CAPL与Python交互3.1 CAPL与Python交互简介3.2 CAPL与Python交互实现4. CAPL与MATLAB交互4.1 CAPL与MATLAB交互简介4.2 CAPL与MATLAB交互实现5. 案例说明5.1 案…...

无公网IP 外网访问 本地部署夫人 hello-algo
hello-algo 是一个为帮助编程爱好者系统地学习数据结构和算法的开源项目。这款项目通过多种创新的方式,为学习者提供了一个直观、互动的学习平台。 本文将详细的介绍如何利用 Docker 在本地安装部署 hello-algo,并结合路由侠内网穿透实现外网访问本地部署…...

实验四 XML
实验四 XML 目的: 1、安装和使用XML的开发环境 2、认识XML的不同类型 3、掌握XML文档的基本语法 4、了解DTD的作用 5、掌握DTD的语法 6、掌握Schema的语法 实验过程: 1、安装XML的编辑器,可以选择以下之一 a)XMLSpy b)VScode,Vs…...

Autosar-Os是怎么运行的?(内存保护)
写在前面: 入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!! 1.功能概述 以TC397芯片为例,英飞凌芯片集成了MPU模块, MPU模块采用了硬件机…...

题单:冒泡排序1
题目描述 给定 n 个元素的数组(下标从 1 开始计),请使用冒泡排序对其进行排序(升序)。 请输出每一次冒泡过程后数组的状态。 要求:每次从第一个元素开始,将最大的元素冒泡至最后。 输入格式…...

多目标优化策略之一:非支配排序
多目标优化策略中的非支配排序是一种关键的技术,它主要用于解决多目标优化问题中解的选择和排序问题,确定解集中的非支配解(也称为Pareto解)。 关于什么是多目标优化问题,可以查看我的文章:改进候鸟优化算法之五:基于多目标优化的候鸟优化算法(MBO-MO)-CSDN博客 多目…...

Go学习:字符、字符串需注意的点
Go语言与C/C语言编程有很多相似之处,但是Go语言中在声明一个字符时,数据类型与其他语言声明一个字符数据时有一点不同之处。通常,字符的数据类型为 char,例如 :声明一个字符 (字符名称为 ch) 的语句格式为 char ch&am…...

Linux文件原生操作
Linux 中一切皆文件,那么 Linux 文件是什么? 在 Linux 中的文件 可以是:传统意义上的有序数据集合,即:文件系统中的物理文件 也可以是:设备,管道,内存。。。(Linux 管理的一切对象…...

解决Oracle SQL语句性能问题(10.5)——常用Hint及语法(7)(其他Hint)
10.5.3. 常用hint 10.5.3.7. 其他Hint 1)cardinality:显式的指示优化器为SQL语句的某个行源指定势。该Hint具体语法如下所示。 SQL> select /*+ cardinality([@qb] [table] card ) */ ...; --注: 1)这里,第一个参数(@qb)为可选参数,指定查询语句块名;第二个参数…...

JavaScript系列(50)--编译器实现详解
JavaScript编译器实现详解 🔨 今天,让我们深入探讨JavaScript编译器的实现。编译器是一个将源代码转换为目标代码的复杂系统,通过理解其工作原理,我们可以更好地理解JavaScript的执行过程。 编译器基础概念 🌟 &…...

大数据相关职位 职业进阶路径
大数据相关职位 & 职业进阶路径 📌 大数据相关职位 & 职业进阶路径 大数据领域涵盖多个方向,包括数据工程、数据分析、数据治理、数据科学等,每个方向的进阶路径有所不同。以下是大数据相关职位的详细解析及其职业进阶关系。 &#…...

基础项目实战——学生管理系统(c++)
目录 前言一、功能菜单界面二、类与结构体的实现三、录入学生信息四、删除学生信息五、更改学生信息六、查找学生信息七、统计学生人数八、保存学生信息九、读取学生信息十、打印所有学生信息十一、退出系统十二、文件拆分结语 前言 这一期我们来一起学习我们在大学做过的课程…...

C++,STL,【目录篇】
文章目录 一、简介二、内容提纲第一部分:STL 概述第二部分:STL 容器第三部分:STL 迭代器第四部分:STL 算法第五部分:STL 函数对象第六部分:STL 高级主题第七部分:STL 实战应用 三、写作风格四、…...

【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.3.1. 函数和方法的隐式解引用转化(Deref Coercion) 隐式解引用转化(Deref Coercion)是为函数和方法提供的一种便捷特性。 它的原理是…...

密码强度验证代码解析:C语言实现与细节剖析
在日常的应用开发中,密码强度验证是保障用户账户安全的重要环节。今天,我们就来深入分析一段用C语言编写的密码强度验证代码,看看它是如何实现对密码强度的多维度检测的。 代码整体结构 这段C语言代码主要实现了对输入密码的一系列规则验证&a…...

arkts bridge使用示例
接上一篇:arkui-x跨平台与android java联合开发-CSDN博客 本篇讲前端arkui如何与后端其他平台进行数据交互,接上一篇,后端os平台为Android java。 arkui-x框架提供了一个独特的机制:bridge。 1、前端接口定义实现 定义一个bri…...

LINUX部署微服务项目步骤
项目简介技术栈 主体技术:SpringCloud,SpringBoot,VUE2, 中间件:RabbitMQ、Redis 创建用户 在linux服务器home下创建用户qshh,用于后续本项目需要的环境进行安装配置 #创建用户 useradd 用户名 #设置登录密…...

zsh安装插件
0 zsh不仅在外观上比较美观,而且其具有强大的插件,如果不使用那就亏大了。 官方插件库 https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins 官方插件库并不一定有所有的插件,比如zsh-autosuggestions插件就不再列表里,下面演示zs…...

网站如何正式上线(运维详解)
因为平台原因,不能有太多链接,所以下文中链接都删除了,想访问的去原文链接:https://www.zhoudongqi.com/ TIPS 这篇文章是我自己运营运维的wordpess站点的经验总结,可以说十分详细,域名,服务器和…...

SQL server 数据库使用整理
标题:SQL server 数据库使用整理 1.字符串表名多次查询 2.读取SQL中Json字段中的值:JSON_VALUE(最新版本支持,属性名大小写敏感) 1.字符串表名多次查询 SELECT ROW_NUMBER() OVER (ORDER BY value ASC) rowid,value…...

【Rust自学】17.2. 使用trait对象来存储不同值的类型
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 17.2.1. 需求 这篇文章以一个例子来介绍如何在Rust中使用trait对象来存储不同值的类型。 …...

初始化mysql报错cannot open shared object file: No such file or directory
报错展示 我在初始化msyql的时候报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解读: libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此…...

2025年1月22日(网络编程)
系统信息: ubuntu 16.04LTS Raspberry Pi Zero 2W 系统版本: 2024-10-22-raspios-bullseye-armhf Python 版本:Python 3.9.2 已安装 pip3 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480) 已安装 vim 已安装 git 学习…...

Jason配置环境变量
jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统,请按照以下具体步骤操作 视窗 下载 Jason 的最新版本,选择“jason-bin-3.3.0.zip”…...

蓝桥杯python语言基础(7)——自定义排序和二分查找
目录 一、自定义排序 (一)sorted (二)list.sort 二、二分查找 bisect 一、自定义排序 (一)sorted sorted() 函数会返回一个新的已排序列表,而列表的 sort() 方法会直接在原列表上进行排序…...

(开源)基于Django+Yolov8+Tensorflow的智能鸟类识别平台
1 项目简介(开源地址在文章结尾) 系统旨在为了帮助鸟类爱好者、学者、动物保护协会等群体更好的了解和保护鸟类动物。用户群体可以通过平台采集野外鸟类的保护动物照片和视频,甄别分类、实况分析鸟类保护动物,与全世界各地的用户&…...