关联规则挖掘
每天看一下ai画的美女,愉悦一下心情
1.关联规则
2.Apriori算法
3.close算法
4.FP-tree算法
1.关联规则
关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系,它在我们的生活中有很多应用场景。
目的:发现不同数据项之间的联系规则
交易数据集记作D,D=T1,T2,...,Tn交易数据集记作D, D={T_1,T_2,...,T_n}
Tk称为交易,每个交有唯一标识T_k 称为交易,每个交有唯一标识
im表示项,在交易数据集中,每个项ik代表一种商品的编号i_m表示项,在交易数据集中,每个项i_k代表一种商品的编号
I中部分或全部表示一个项集I 中部分或全部表示一个项集
关于关联规则有三个比较重要的概念,可以结合上面的图表进行说明。
什么是支持度?
支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大。在这个例子中,我们能看到“牛奶”出现了 4 次,那么这 5 笔订单中“牛奶”的支持度就是 4/5=0.8。同样“牛奶 面包”出现了 3 次,那么这 5 笔订单中“牛奶 面包”的支持度就是 3/5=0.6。
什么是置信度?
它指的就是当你购买了商品 A,会有多大的概率购买商品 B,在上面这个例子中:置信度(牛奶→啤酒)=2/4=0.5,代表如果你购买了牛奶,有多大的概率会购买啤酒?所以说置信度是个条件概念,就是说在 A 发生的情况下,B 发生的概率是多少,相当于一种条件概率。(还有一个置信区间,记得区分下)
什么是提升度?
我们在做商品推荐的时候,重点考虑的是提升度,因为提升度代表的是“商品 A 的出现,对商品 B 的出现概率提升的”程度。 还是看上面的例子,如果我们单纯看置信度 (可乐→尿布)=1,也就是说可乐出现的时候,用户都会购买尿布,那么当用户购买可乐的时候,我们就需要推荐尿布么?实际上,就算用户不购买可乐,也会直接购买尿布的,所以用户是否购买可乐,对尿布的提升作用并不大。
我们可以用下面的公式来计算商品 A 对商品 B 的提升度:
提升度 (A→B)= 置信度 (A→B)/ 支持度 (B)
这个公式是用来衡量 A 出现的情况下,是否会对 B 出现的概率有所提升。所以提升度有三种可能:
提升度 (A→B)>1:代表有提升;
提升度 (A→B)=1:代表有没有提升,也没有下降;
提升度 (A→B)<1:代表有下降。
提升度(尿布->啤酒) = (2/5)/(2/5) = 1
提升度(牛奶->啤酒) = (2/4)/(2/5) = 5/4
这里显示牛奶对啤酒地提升更大,而尿布对啤酒并没有什么提升。但这里只是单纯地举个例子,并不代表实际情况,因此没有实际的参考价值,只是为了进行概念的说明。并且也可以说不同国家相差也会很大,并不一定有沃尔玛超市的那个情况。
挖掘关联规则的两个原则:
1.找出频繁项集(频繁项集是指支持度大于等于最小支持度(min_sup)的集合)
2.生成强关联规则
Apriori 算法
Apriori 算法其实就是查找频繁项集 (frequent itemset) 的过程,所以首先我们需要定义什么是频繁项集。
频繁项集就是支持度大于等于最小支持度 (Min Support) 阈值的项集,所以小于最小值支持度的项目就是非频繁项集,而大于等于最小支持度的项集就是频繁项集。
项集这个概念,英文叫做 itemset,它可以是单个的商品,也可以是商品的组合。我们再来看下这个例子,假设我随机指定最小支持度是 50%,也就是 0.5。
算法步骤:
从数据项集生成项为1的项集,很具支持度找出项为1的频繁项集,计算项为2的关联规则项集,通过同理,直到生成项数k的关联规则。
Apriori算法的简单实例Apriori算法举例——发现频发项集
2.Apriori算法举例——产生关联规则对于频繁项集{B, C, E}, 它的非空子集有{B}, {C}, {E}, {B, C}, {B,E}, {C,E}.以下 是据此获得的关联规则及其置信度
改进的方法, close算法 ,FP-Growth 算法
close算法
Close算法的思想:一个频繁闭合项目集的所有闭合子集一定是频繁的,一个非频繁项目集的所有闭合超集一定是非频繁的。
在之前一些概念需要知道:
闭项集:指一个项集x,它所有的超集(包含x的项集)的支持度计数都小于它的本身的支持度计数。
扫描交易数据集,执行交集运算得到候选闭项集FCC1FCC_1
计算FCC1FCC_1产生式的闭合集
剪掉支持数小于2的闭合,得到闭合项集FC1FC_1
在Close算法中,使用了迭代的方法:利用频繁闭合i-项集记为FCiFC_i,生成频繁闭合 (i 1)-项集,记为FCi 1FC_i 1(i>=1)。
close算法优势
使用频繁闭合项目集发现频繁集,可以提高发现关 联规则的效率。
实际上既是频繁的又是闭合的项目集的比例比频繁 项目集的比例要小的多,而且随着数据集事务数的 增加和项的大小的增加,项目集格增长很快。
使用闭合项目集格可以通过减少查找空间、减少了 数据集扫描次数,来改进Apriori方法。
FP-growth算法
特点
不需要生成大量候选项集的频繁项集挖掘:用Frequent-Pattern tree(FP-tree)结构压缩数据集,避免代价较高的数据集扫描算法。
采用分而治之的策略:分解数据挖掘任务为小任务,用FP-tree递归增长频繁项集
主要步骤
-1.两次扫描数据集,生成频繁模式树FP-Tree:
-2.使用FP-Tree,生成频繁项集:
-如果条件FP-tree只包含一个路径,则直接生成所包含的频繁项集。
步骤描述
步骤1:扫描数据集一次,得到所有频繁1-项集的频度排序表T;依照T,再扫描数据集,得到FP-Tree。根据支持度排序原始项集,从根节点出发,在每个项集中选择一个像递归生成子节点.
步骤2:根据支持数来构建条件模式基,来找到最大频繁项集。为FP-tree中的每个节点生成条件模式基;用条件模式基构造对应的条件FP-tree;递归挖掘条件FP-tree同时增长其包含的频繁项集;如果条件FP-tree只包含一个路径,则直接生成所包含的频繁项集。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaibhk
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13