数据挖掘——关联规则挖掘

数据挖掘——关联规则挖掘《数据挖掘》国防科技大学《数据挖掘》青岛大学数据挖掘之关联规则挖掘关联规则挖掘(AssociationRuleMining)最早是由Agrawal等人提出。最初的动机是解决购物篮分析(BasketAnalysis)问题,目的是发现交易数据库(TransactionDatabase)中不同商品之间的联系规则。定义关联规则是描述在一个交易中物品之间同时出现的规律的知识模式,更确切的说,关联规则是通过量化的数字描述物品X的出现对物品Y的出现有多大的影响。关联分析associationana

大家好,又见面了,我是你们的朋友全栈君。

《数据挖掘》国防科技大学
《数据挖掘》青岛大学

数据挖掘之关联规则挖掘

关联规则挖掘(Association Rule Mining)最早是由Agrawal等人提出。最初的动机是解决购物篮分析(Basket Analysis)问题,目的是发现交易数据库(Transaction Database)中不同商品之间的联系规则。

1. 定义

关联规则是描述在一个交易中物品之间同时出现的规律的知识模式,更确切的说,关联规则是通过量化的数字描述物品X的出现对物品Y的出现有多大的影响。
关联分析 association analysis:关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。
在这里插入图片描述

形式化描述

• 关联规则挖掘的交易数据集记为D
• D ={T1,T2,…,Tk,…,Tn},Tk(k=1,2,…,n)称为交易,每个交易有唯一的标识,记作TID。
• 元素 im(m=1,2,…,p)称为项。在交易数据集中,每个项 ik 代表一种商品的编号或名称。
• 设 I = { i1,i2,…,im}是 D 中全体项组成的集合。D 中的每个事务Tk都是 I 的一个子集,即 Tk ⊆ I ( j=1,2,…,n)。
• 由 I 中部分或全部项构成的一个集合称为项(itemset),任何非空项集中均不含有重复项。若 I 包含m个项,那么可以产生2m个非空项集。
• 设 X 是一个 I 中项的集合,如果 X ⊆ Tk,那么称交易 Tk 包含项集 X。
◆ 若X,Y为项集,X⊂I, Y⊂I,并且X∩Y=Ø,则形如X→Y的表达式称为关联规则。

度量

  • 支持度(support)
    支持度是对关联规则重要性的衡量,反映关联是否是普遍存在的规律,体现这条规则在所有交易中有多大的代表性。记为:support(X→Y)
    在这里插入图片描述
  • 置信度(confidence)
    置信度(或可信度、信任度)是对关联规则准确度的衡量,度量关联规则的强度。即在所有出现了X的活动中出现Y的频率,说明规则X→Y的必然性有多大。记为confidence(X→Y)。
    在这里插入图片描述

基本概念

  • 挖掘关联规则
    在给定一个交易数据集D上,挖掘关联规则问题就是产生支持度和置信度分别大于等于用户给定的最小支持度阈值和最小置信度阈值的关联规则。
  • 支持度计数
    一般地,项集支持度是一个0~1的数值,由于在计算项集支持度时,所有分母是相同的,所以可以用分子即该项集出现的次数来代表支持度,称为支持度计数。
  • 频繁项集
    给定全局项集 I 和交易数据集 D,对于 I 的非空项集 I1,若其支持度大于或等于最小支持度阈值min_sup,则称 I1 为频繁项集(Frequent Itemsets)。
  • k-项集和频繁 k-项集
    对于I的非空子集 I1,若项集 I1 中包含有 I 中的 k 个项,称 I1 为 k-项集。若 k-项集 I1 是频繁项集,称为频繁 k-项集。
  • 超集
    如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集。 S1是S2的超集,若S1中一定有S2中没有的元素,则S1是S2的真超集,反过来S2是S1的真子集。

2. 基本过程

① 找频繁项集:通过用户给定最小支持度阈值min_sup,寻找所有频繁项集,即仅保留大于或等于最小支持度阈值的项集。
② 生成强关联规则:通过用户给定最小置信度阈值min_conf,在每个最大频繁项集中寻找关联规则,即删除不满足最小置信度阈值的规则。
注意:一个频繁X项集能够生成2X-2个候选关联规则

3. 原始方法

蛮力法(brute-force approach):计算每个可能的规则的支持度和置信度
计算代价过高(可能提取的规则的数量达指数级)

4. Apriori

先验原理:
· 如果一个项集是频繁的,则它的所有子集一定也是频繁的;相反,如果一个项集是非频繁的,则它的所有超集也一定是非频繁的。→提前剪枝
注意事项:

  • 项的字典序:尽管集合具有无序性,但为了快速连接操作,通常对所有商品做一个默认的排序(类似于建立一个字典索引)。
  • 项的连接:可以降低候选项的生成
    在这里插入图片描述
    例子:
    在这里插入图片描述
    算法特点:
  • 多次扫描数据库
  • 候选项规模庞大
  • 计算支持度开销大
    提高算法性能的方法:
  • 散列项集计数 Hash-based itemset counting
  • 事务压缩 Transaction reduction
  • 划分 Partitioning
  • 采样 Sampling

FPGrowth

基本思想:

  • 只扫描数据库两遍,构造频繁模式树(FP-Tree)
  • 自底向上递归产生频繁项集
  • FP树是一种输入数据的压缩表示,它通过逐个读入事务,并把每个事务映射到FP树中的一条路径来构造。
    构造FP树:
  • 扫描数据库,得到频繁1-项集,并把项按支持度递减排序
  • 再一次扫描数据库,建立FP-tree(遍历每一个事务,构造成一条路径,并给项计数)
    在这里插入图片描述
    生成条件模式:
  • 从FP-tree的头表开始
  • 按照每个频繁项的连接遍历FP-tree
  • 列出能够到达此项的所有前缀路径,得到条件模式基
    在这里插入图片描述
    递归生成FP树:
    对每个模式库,计算库中每个项的支持度,用模式库中的频繁项建立FP-tree
    在这里插入图片描述
    优点:
  • 完备性:不会打破交易中的任何模式,包含了频繁模式挖掘所需的全部信息
  • 紧密性:支持度降序排列,支持度高的项在FP-tree中共享的机会也高;绝不会比原数据库大

Apriori和FP-tree性能对比

在这里插入图片描述
!在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160718.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • NPTL, NGPT

    NPTL, NGPT

  • BN层理解_理解六层次总结

    BN层理解_理解六层次总结bn层计算的均值和方差是channel的输入数据是nchw,求得的均值和方差均是长度为c的向量mini-batch指的是一个batch的所有样本对应通道组合成一个minibatch,1个nchw的数据有c个mini-batch一个mini-batch在一起进行求均值和方差HW的归一化,求出NC个均值与方差,然后N个均值与方差求出一个均值与方差的Vector,size为C,即相同通道的一个mini_batch的样本求出一个mean和variance每次迭代时采用的是滑动平均方式更新,.

    2022年10月14日
  • NTP时间服务器

    1.NTP简介NTP(NetworkTimeProtocol网络时间协议)是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正。简而言之,NTP就是使一台或多台服务器(客户端)与时间服务器(服务端)之间进行时间同步(即客户端与服务端的时间同步),以保证时间的统一性2.NTP服务器架设   上面提到客户端与服务端的时间

  • 极光漏洞,”极光”ie漏洞,微软发布2010年第一个IE 0day漏洞“极光”警告、最新官方补丁和解决办法

    极光漏洞,”极光”ie漏洞,微软发布2010年第一个IE 0day漏洞“极光”警告、最新官方补丁和解决办法微软2010年1月14日晚发布公告称,黑客在最近的针对Google、Adobe以及其他公司的攻击中利用了IE零日漏洞。远程代码执行漏洞影响到各Windows版本上运行的近乎全部的IE版本。关键字:极光

  • 网页406错误(网页错误代码1607)

    原因出现网页出现406问一般为一下两种情况 *1、缺失jar包, * *2、如果访问的url的后缀名是以.html结尾的,则服务端不能响应json数据。因为springMVC会误以为.html后缀名的请求,是请求访问某个html文件,则springMVC则无法处理响应json数据 解决方法 *解决方法: * 1、检查所依赖的jar包是否完整 *2、在we…

  • 原生ajax请求的五个步骤

    原生ajax请求的五个步骤什么是ajax?通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。ajax的优点:1.实现局部更新(无刷新状态下)2.减轻了服务器端的压力ajax的缺点:1.破坏了浏览器前进和后退机制(因为ajax自动更新机制)2.一个Ajax请求多了,也会出现页面加载慢的情况。3.搜索引擎的支持程度比较低。4.ajax的安全性问题不太好(可以用数据加密解决)。注:如果要使用ajax必须要有后端环境的支持(服务器端)。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号