②机器学习推荐算法之关联规则Apriori与FP-Growth算法详解

简介: 机器学习推荐算法之关联规则Apriori与FP-Growth算法详解

构建FP树


第二步,扫描数据库,进行FP树的构建。FP树以root节点为起始,节点包含自身的item和count,以及父节点和子节点。


首先是第一条交易数据,a b d,结合第一步商品顺序,排序后为b a d,依次在树中添加节点b,父节点为root,最新的的频次为1,然后节点a,父节点为a,频次为1,最后节点d,父节点为b,频次为1。


image.png


构建FP树


第二条交易数据,排序后为:b c d。依次添加b,树中已经有节点b,因此更新频次加1,然后是节点c,b节点当前只有子节点d,因此新建节点c,父节点为b,频次为1,最后是d,父节点为c,频次为1。


image.png



构建FP树


后面三条交易数据的处理和前两条一样


image.png


频繁项的挖掘

商品b频繁项的挖掘


首先是商品b,首先b节点本身的频次符合minSupport,所以是一个频繁项(b : 5),然后b节点往上找subTree,只有根节点,所以解锁,b为前缀的频繁项只有一个:(b : 5)。


商品a频繁项的挖掘


a本身是个频繁项(a : 3),然后递归的获取a的子树,进行挖掘。


然后遍历树中所有的a节点,往上找,直到root节点,每个节点的频次为当前遍历节点的频次。因为a只有一个节点(a, 3),所以往上遍历得到节点b,频次为节点(a, 3)的频次3。只能挖掘出频繁项(b : 3),然后这是a递归得到的子树,拼上前缀a,所以得到频繁项为(ab : 3),因此商品a的频繁项挖掘结束,有两个频繁项为:(a : 3), (ab : 3)


image.png


商品c频繁项的挖掘商品


c在FP树中包含两个节点,分别为: (c, 1), (c, 2)。显然c自身是个频繁项(c : 3),然后进行递归。(c, 1)节点往上路径得到如下节点:(a, 1), (b, 1)。节点(c, 2)往上得到(b, 2)。


节点(b, 3)符合minsupport,拼上前缀c得到频繁项(bc : 3)。节点(a, 1)不满足要求,丢弃。


因此,c挖掘出的频繁项为:(c:3), (cb : 3)


image.png



商品d频繁项的挖掘


同理,(d : 3)是一个频繁项,子树首先挖出(c : 2),(b : 3),拼上前缀d得到(dc : 2),(db : 3),然后节点c的仅仅有根节点和节点(b, 2),拼上两个前缀得到(dcb : 2)


image.png


最终结果


通过上述的挖掘过程,我们依次挖出了如下9个频繁项:(b : 5), (a : 3), (ab : 3), (c:3), (cb : 3), (d : 3), (dc : 2),(db : 3), (dcb : 2)


总结:


FP-Growth算法 采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-tree),但仍保留项集关联信息。减少重复遍历数据的次数,加速计算过程。


关联规则兴趣度

Apriori算法大多是在提升挖掘的效率,而对挖掘出来的规则是否是用户有用,或者说用户感兴趣却研究不多。


现有的许多关联规则发现方法具有以下缺陷:

产生大量的规则,而其中的大部分是显而易见的或不相关的;

没有充分利用管理者的领域知识和职业直觉。管理者的职业直觉往往对知识发现的过程具有重大的价值;

没有提供好的能够评价规则兴趣度的方法。


如何从关联规则中选择出用户最希望得到的知识?

寻找置信度度量的替代物(如兴趣度、有效度、匹配度等)

扩展原有的固定支持度阈值限制的客观评价方法的改进


判断一条关联规则是否有趣可以由两类评价方法:客观兴趣度和主观兴趣度。客观兴趣度主要根据模式或规则的形式和数据库中的数据进行定义,属于数据驱动。主观兴趣度还要考虑客户的参与等人为因索的影响,属于客户驱动。


关联规则挖掘使用支持度-置信度框架存在问题。会产生大量冗余规则。


例如{A,B,C}->{D}等同于{A,B}->{D}强规则不代表有意义,甚至可能误导。


例如conf({怀孕->女性})=100%。


置信度可以看成是在交易数据库中前件发生的 条件下后件概率 P(Y|X )的估计 ,置信度表示某 些项 目集的出现会导致其他项 目集的出现。


置信度作为度量有一个缺点 ,就是只考虑了与的关系,而忽略 了 P(Y) (X=>Y 不等于Y=>X)。例如 :P(XY)/P(X) 的值 可以等于 P(Y) (即 Y出现与X无关--全概率公式 ),但又超过置信度的阀值 可以使规则成立。


关联规则的可信度支持度阈值不能够显示否定示例的情况.


例如, 我们无法采掘出一条规则表示“买了咖啡的顾客不会买奶粉的可能性是34% , 且在交易记录中有46% 的记录是买了咖啡而没买奶粉”. 显然, 这种购买趋势(即买了咖啡不买奶粉) 在现实生活中是很有可能存在的。


买了咖啡同时又卖茶的比较多,但是买了咖啡但是没买茶的更多。造成这种情况的主要问题是2端的数据规模不匹配,买咖啡的人远多余买茶的人,且很多人只买了咖啡。


兴趣度反映 了是X条件下 Y出现的概率与不 考虑X条件下 Y出现的概率比值 ,反映项集X和项 集 y之间的关系。


兴趣度的取值范围为[0,+∞]。当兴趣度等于 1时 ,表明X和 Y同时出现属于概率事件 ,不具有特别意义 ,即X的出现与Y的出现是独立的,互不受影响 ,称该规则为不相关规则


兴趣度小于 1时表明项集X的出现降低了另一个项集 Y出现的可能性 , 称为负相关规则 ;


兴趣度大于 1时表明项集Y在项集出现X的条件下 比在无条件下出现 可能性要大,也就是项集X的出现会带动另一个项集 Y的出 现 ,称为正相关规则。


一般情况下 ,挖掘出正相关 的关联规则更具现 实意义 ,但有时负相关规则 的出现也会 为用户带来新的知识。


这里所说的在上一篇文章中也详细的解释了!

相关文章
|
11天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
25天前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
25天前
|
存储 算法 大数据
Apriori算法和Eclat算法差异
Apriori算法和Eclat算法差异
|
28天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
157 1
|
2月前
|
机器学习/深度学习 存储 算法
图解最常用的 10 个机器学习算法!
图解最常用的 10 个机器学习算法!
|
10天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
39 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
|
2月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
62 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统
|
2月前
|
机器学习/深度学习 算法 数据挖掘
机器学习必知必会10大算法
机器学习必知必会10大算法
下一篇
无影云桌面