机器学习关联分析PF和Apriori算法

简介: 机器学习关联分析PF和Apriori算法

1 什么是关联分析

此篇为了解篇幅,不做具体的算法实例,就是知道简单有这么回事,什么情况会用到的分析.


关联分析又称关联挖掘,就是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构。或者说,关联分析是发现交易数据库中不同商品(项)之间的联系。


简单的说:就是经常举例到的啤酒和尿片,大数据经典案例

买啤酒的人大部分会买尿片,所以放一起会卖的更好,我感觉有所依据,但是感觉是一种营销.


79910288ff47423cbb4ce5926845be51.png

2 Apriori算法

Apriori 算法是挖掘产生布尔关联规则所需频繁项集的基本算法,它使用一种称作逐层搜索的迭代方法,k 项集用于探索 k+1 项集。


衡量频率的指标有两个:一个是支持度,一个是置信度


这两个指标分别指的是这种模式的有用性和确定性。设置门限“最小支持度”和“最小置信度”,支持度和置信度同时高于这两个门限就可以认为是频繁模式了。


置信度是有“方向性”的,如果说购买面包的记录里有100%的记录都购买了麦片,那么就说购买面包后购买麦片的置信度为100%;反向地看,如果购买了麦片的记录有67%的记录都购买了面包,那么就说购买麦片后购买麦片的置信度为67%。


这里先不考虑置信度

e53e49b6345f445485619162c322a3e8.png


支持度概念:项集排列组合的一个最重要的性质是它的支持度计数,也就是包含特定项集的事务个数。我们从数学上定义项集X的支持度计数表示为

f49aed625a75424aa617645b71d817b7.png


统计总数得到:

都大于支持度2

8873317b7b5944e79d14c074b9584316.png

继续按照支持度淘汰

5932f55558384440be16da347bf90d9e.png

最后有一个公式的话最多能组成的项是t-1项,也就是四件商品,然后-1得到为三,最后得到最频繁的项集


d63f110fbcf7491bad58497a64da70b5.png

3 FP-growth算法

首先要知道,就是在每个购买记录中出现的各种单品其实体现的是一种组合的性质。也就是说,消费者在购买了一种单品的同时又购买了另一种单品。而且,这些单品的组合在记录中是无序的,也就是无法知道在记录1中究竟是先“购买”了面包然后诱使他又“购买”了麦片,还是先“购买”了面包后来又购买了麦片。因此只能研究一个无序的组合,这种组合就叫做“模式”。


这些模式里,有的出现频率很低,有的出现频率很高,一般认为频率较高的通常更有指导意义,这种高频率的模式就被称作“频繁模式”。


FP-growth 算法通过两次扫描事务数据库,把每个事务所包含的频繁项目按其支持度降序压缩存储到 FP—tree 中,这样在以后发现频繁模式的过程中,不需要再扫描事务数据库,仅在 FP-Tree 中进行查找即可。


e120422644f34d509f6ed6c8e00b5bb3.png

22788e49cad944b99330ba53fee98a7b.png

4 关联规则学习

关联规则学习是一种在大型数据库中发现变量之间的有趣性关系的方法,它的目的是利用一些有趣性的量度来识别数据库中发现的强规则。


目录
相关文章
|
1月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
99 4
|
3天前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
17 6
|
27天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
44 1
|
27天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
61 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
97 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
41 0
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
3天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
109 80
|
22天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。