• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

关联规则挖掘

武飞扬头像
小阿磊
帮助1

学新通

每天看一下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
系列文章
更多 icon
同类精品
更多 icon
继续加载