数据挖掘(3.1)--频繁项集挖掘方法
目录
1.Apriori算法
Apriori性质
伪代码
apriori算法
apriori-gen(Lk-1)【候选集产生】
has_infrequent_subset(c,Lx-1)【判断候选集元素】
例题
求频繁项集:
对于频繁项集L={B,C,E},可以得到哪些关联规则:
2.FP-growth算法
FP-tree构造算法【自顶向下建树】
insert_tree([plP],T)
利用FP-tree挖掘频繁项集
关联规则挖掘是数据挖掘领域中研究最为广泛的也最为活跃的方法之一
关联规则反应了一个事物和其他事物之间的相互依存性和关联性
如果存在一定的关联关系,其中一个事物就可以通过其他事物预测到
最小支持度:就是说当支持度达到一定的阈值后,某种数据才有被挖掘的潜力这个阈值就是最小支持度计数(min_sup)。
频繁项集:当某种数据的支持度超过最小支持计数阈值时就叫做频繁项集。
1.Apriori算法
Apriori算法是R.Agrawal和R.Srikant于1994年提出的为布尔关联规则挖掘频繁项集的原创性算法。
主要有以下几个步骤:首先通过扫描数据库积累每个项的计数,并收集满足最小支持度的项,找出频繁1-项集的集合(该集合记做L1)。然后L1用于找到频繁2-项集的集合L2,利用L2再找到L3,如此下去直到不能再找到频繁k-项集为止。
Apriori性质
频繁项集的所有非空子集也必须是频繁的。
非频繁项集的所有超集也必须是频繁的。
主要用于压缩拽索空间,从而更快地找到频繁项集。
伪代码
摘自《数据挖掘:方法与应用》徐华著
apriori算法
输人:数据集D;最小支持度计数minsup_count。
输出:频繁项目集L。//所有支持度不小于minsupport的1-项集
L1={频繁1-项集};
Ck=apriori-gen (L-1);//C是k个元素的候选集
for(k=2;Lk-1≠0;k++)
for all transaction t属于D
Ct=subset(Ck,t);
for all candidates c属于Ct
c.count++;
End for
End for
Lk={c∈Ck|c.count>=minsup_count}
End for
L=ULk
apriori-gen(Lk-1)【候选集产生】
输入:(k-1)-项集
输出:k-候选集C。
for all itemset p∈Lk-1
for all itemset q∈Lk-1
if (p.item1=q.item1, p.item2=q.item2,…,p.itemk-2=q.itemk-2,p.itemk-1<q.itemk-1)
c=p∞q;
if(has_infrequent_subset(c,Lx-1)) delete c;
else add c to Ck;
End for
End for
Return Ck
has_infrequent_subset(c,Lx-1)【判断候选集元素】
输入:一个k-项集c,(k-1)-项集Lk-1
输出:c是否从候选集中删除。
for all (k-l)-subsets of c
if S不属于Lk-1
return true;
return false
例题
假设最小支持度是2

求频繁项集:
- 频繁1-项集L1{A},{B},{C},{E};

- 频繁2-项集L2:{A,C},{B,C},{B,E},{C,E};
- 频繁3-项集L3:{B,C,E};
说白了就是找哪种组合出现的次数>=2。
对于频繁项集L={B,C,E},可以得到哪些关联规则:
- B->C,Econfidence=2/2=100%
- C->B,Econfidence=2/3=67%
- E->B,Cconfidence=2/2=100%
- C,E->Bconfidence=2/3=67%
- B,E->Cconfidence=2/3=67%
- B,C->Econfidence=2/3=67%
2.FP-growth算法
FP-growth算法主要采用如下的分治策略:首先将提供频繁项的数据库压缩到一个频繁模式树(FP-tree),但仍保留相关信息。然后将压缩后的数据库划分成一组条件数据库,每个关联一个频繁项或“模式段”,并分别挖掘每个条件数据库。
FP-tree构造算法【自顶向下建树】
输人:事务数据库DB;最小支持度阈值Minsupport。
输出:FP-tree树。
(1)扫描事务数据库D一次。收集频繁项集合E以及它们的支持度计数,对F按照支持度计数降序排序,得到频繁项列表L。
(2)创建FP-tree的根节点,以“null"标记它。对于D中的每个事务T,作如下处理:选择T中的频繁项,并按照L中的次序进行排序,排序后的频繁项标记为[plP],其中p是第一个元素,P是剩余元素的表。调用insert_tree([plP],T)将此元组对应的信息加入到T中。
insert_tree([plP],T)
构造FP-tree算法的核心是insert_tree过程。Insert_tree过程是对数据库的一个候选项目集的处理,它对排序后的一个项目集的所有项目进行递归式的处理直到项目表为空。
(1)if(T有一个子女N使得N.item-name=p.item-name)
(2)N的计数加一
(3) else
(4)创建一个新节点N,将其计数设为1,链接到它的父节点T,并通过节点链结构将其链接到具有相同项名的节点。
(5)如果P非空,递归地调用insert_tree(P,N)。
利用FP-tree挖掘频繁项集
输入:构造好的FP-tree,事务数据库D,最小支持度阈值Minsupport。
输出:频繁项集。FP-growth(Tree,α)
(1)if(Tree含单个路径P)
(2)for路径P中节点的每个组合(记作β)
(3)产生模式βUα,其支持度support=β中节点的最小支持度
(4)else for each ai 在Tree的头部{
(5)产生一个模式β=aiUα,其支持度support=ai.support;
(6)构造β的条件模式基,然后构造β的条件FP-树Treeß;
(7) if Treeβ≠0 then
(8)调用FP_growth(Treeβ,β);
参考资料《数据挖掘:方法与应用》徐华著
相关文章:
数据挖掘(3.1)--频繁项集挖掘方法
目录 1.Apriori算法 Apriori性质 伪代码 apriori算法 apriori-gen(Lk-1)【候选集产生】 has_infrequent_subset(c,Lx-1)【判断候选集元素】 例题 求频繁项集: 对于频繁项集L{B,C,E},可以得到哪些关联规则: 2.FP-growth算法 FP-tre…...
2023年信息安全推荐证书
随着网络安全行业的不断升温,相关的认证数量也不断增加,对于在网络安全行业发展的人才来说,提升职业竞争力最有效的办法之一,就是取得权威认证。 那么如何从繁多的适合网络安全从业者的证书中选择含金量高、发展潜力大的证书&…...
基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域应用
【自选】 时间地点:2023年7月22日-28日【乌鲁木齐】时间地点:2023年8月12日-18日【福建泉州】 【六天实践教学、提供全部资料】 专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门…...
基于ZC序列的帧同步
Zadoff-Chu序列是一种特殊的序列,具有良好的自相关性和很低的互相关性,这种性能可以被用来产生同步信号,作为对时间和频率的相关运算在TD-LTE系统中,Zadoff-Chu(ZC)序列主要应用于上行RS序列生成、PRACH前导序列生成以及主同步信号…...
配置NFS服务器-debian
NFS(Network Files System)是网络文件系统的英文缩写,由Sun公司于1980年开发,用于在UNIX操作系统间实现磁盘文件共享。在Linux操作系统出现后,NFS被Linux继承,并成为文件服务的一种标准。 通过网络,NFS可以在不同文件…...
正点原子STEMWIN死机
在用正点原子STM32F4开发板,搭配对应的button历程时,发现运行一会,button都无法使用了,以为是emwin死机了,但是看到Led还在闪烁,排除系统死机问题。那就是emwin的任务没有运行起来,但是打断点后…...
PMP考试中的固定答题套路
1、掌握PMBOK 编制的逻辑(整范进,成质资,沟风采,相) 2、事实求是,项目经理该怎么做就怎么做,不能违背职业道德。 3、PM 做事流程(5 步法): ①收集信息&…...
STM32 学习笔记_2 下载,GPIO 介绍
下载 Keil 编译例程 编译两个按钮,一个向下是部分编译,两个向下箭头是全部编译。对于未编译文件两个按钮等效。 点击编译后,linking 是链接,结果里面的几个数据的意义代表大小: 数据类型占用Flash or SRAM说明Code…...
Centos搭建k8s
在CentOS 7上搭建Kubernetes集群 kubeadm官方文档 https://blog.51cto.com/zhangxueliang/4952945 前置步骤(所有结点) CentOS 7.9 物理机或虚拟机三台,CPU 内核数量大于等于 2,且内存大于等于 4Ghostname 不是 localhost&…...
Flutter Flex(Row Column,Expanded, Stack) 组件
前言 这个Flex 继承自 MultiChildRenderObjectWidget,所以是多子布局组件 class Flex extends MultiChildRenderObjectWidget {} Flex 的子组件就是Row 和 Column , 之间的区别就是Flex 的 direction 设置不同。 它有两个轴,一个是MainAxis 还有一个是交…...
《深入探讨:AI在绘画领域的应用与生成对抗网络》
目录 前言: 一 引言 二 生成对抗网络(GAN) 1 生成对抗网络(GAN)简介 2.使用GAN生成艺术作品的实现方法 3,生成图像 三 GAN在艺术创作中的应用 1 风格迁移 2 图像生成: 3 图像修复: 四 使…...
al文章生成-文章生成工具
ai文章生成器 AI文章生成器是一种利用人工智能和自然语言处理技术生成文章的工具。它使用先进的算法、机器学习和深度学习技术,深度挖掘和提取大量数据背后的信息,自主学习并合并新的信息,生成优质、原创的文章。 使用AI文章生成器的优点如下…...
【云原生之Docker实战】使用docker部署webterminal堡垒机
【云原生之Docker实战】使用docker部署webterminal堡垒机 一、webterminal介绍1.webterminal简介2.webterminal特点二、检查本地docker环境1.检查docker版本2.检查操作系统版本3.检查docker状态4.检查docker compose版本三、下载webterminal镜像四、部署webterminal1.创建安装目…...
《低代码PaaS驱动集团企业数字化创新白皮书》-IDC观点
IDC观点 大型集团企业应坚定地走数字化优先发展道路,加深数字化与业务融合 大型企业在长期的经营发展中砥砺前行,形成了较为成熟的业务模式和运营流程,也具备变革 管理等系统性优势。在数字化转型过程中,其庞大的组织架构、复杂的…...
LoRA 指南之 LyCORIS 模型使用
LoRA 指南之 LyCORIS 模型使用 在C站看到这个模型,一眼就非常喜欢 在经历几番挣扎之后终于成功安装 接下来,我们一起开始安装使用吧! 1、根据原作大佬的提示,需要安装两个插件 https://github.com/KohakuBlueleaf/a1111-sd-web…...
[C#]IDisposable
在C#中,继承IDisposable接口的主要作用是在使用一些需要释放资源的对象时,可以显式地管理和释放这些资源,以避免内存泄漏和其他潜在问题。 如果一个类继承了IDisposable接口,那么该类就必须实现Dispose方法。在该类的实例不再需要…...
ROS开发之如何使用RPLidar A1二维激光雷达?
文章目录0.引言1.创建工作空间2.获取rplidar_ros包并编译3.检查雷达端口4.启动launch显示雷达扫描结果0.引言 笔者研究课题涉及多传感器融合,除了前期对ROS工具的学习,还需要用雷达获取数据,进行点云处理。虽然激光雷达已经应用很广泛&#x…...
【谷粒商城之JSR303数据校验和集中异常处理】
本笔记内容为尚硅谷谷粒商城JSR303数据校验和集中异常处理部分 目录 一、简介 二、SR303数据校验使用步骤 1、引入依赖 2、给参数对象添加校验注解 常见的注解 3、接口参数前增加Valid 开启校验 三、异常的统一处理 四、分组解决校验 1、创建Groups 2、添加分组 …...
限流算法(计数器、滑动时间窗口、漏斗、令牌)原理以及代码实现
文章目录前言1、计数器(固定时间窗口)算法原理代码实现存在的问题2、滑动时间窗口算法原理代码实现存在的问题3、漏桶算法原理代码实现存在的问题4、令牌桶算法原理代码实现最后本文会对这4个限流算法进行详细说明,并输出实现限流算法的代码示…...
C++回溯算法---图的m着色问题01
C回溯算法---图的m着色问题 图的m着色问题是指给定一个图以及m种不同的颜色,尝试将每个节点涂上其中一种颜色,使得相邻的节点颜色不相同。这个问题可以转化为在解空间树中寻找可行解的问题,其中每个分支结点都有m个儿子结点,最底层…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
