Springboot 关联规则算法实践

2023年 10月 16日 73.4k 0

劝君更进一杯酒,西出阳关无故人。

1 前言

在前文中已经分享了协同过滤算法的内容,在本文中将继续分享另外一种推荐算法-关联规则算法。关联算法在数据挖掘领域有着广泛的应用,从市场分析到应用推荐都有包含。本文将深入探讨关联规则算法的基本原理、应用领域和案例应用。

2 关联规则算法

关联规则算法是一种数据挖掘技术,用于发现数据集中项(item)之间的关联关系,通常应用于大规模交易数据或者购物车数据,推荐产品给相关人员进行购买。最著名的应用就是啤酒与尿布的案例,发现了购买啤酒和尿布之间的关联。关联规则算法核心思想就是寻找频繁项集之间的关联关系,算法主要是置信度和支持度两方面的内容,支持度表示的是一个项集出现的频率,而置信度表示的是规则的可信度。

关联算法的应用领域主要应用于市场分析、推荐系统、医疗诊断和信贷评级。

3 概念介绍

在介绍算法原理之前,先介绍几个概念:

频繁项集:
项(Items) : 数据集中的元素,通常是指具体的产品。
项集(ItemSets) : 项的集合,可以包含一个或者多个项。
频繁项集: 在数据集中频繁出现的项集,当某些项集出现的频率高于阈值就会被选定,一般是通过最小支持度的参数来确定的。

关联规则(Association Rules):
这些规则用于描述项之间的关联性,一个关联规则通常由两部分组成:前提 (antecedent) 和结论 (consequent)。前提是规则的条件,结论是规则的结论。关联规则通常有规则就会有对应的结论。

支持度(Support):
支持度是一个频繁项集的度量,表示包含该项集的交易次数与总交易次数的比率。支持度用来衡量一个项集在整个数据集中的普遍程度。如果某项集的支持度高于某个阈值,那么它被认为是频繁的。

支持度(A) = 包含项集A的交易数 / 总交易数

置信度(Confidence) :置信度是关联规则的度量,表示规则的可信程度。它表示在前提成立的情况下,结论发生的概率。高置信度意味着前提与结论之间的关联性更强。

置信度(A → B) = 支持度(A ∪ B) / 支持度(A)

最小支持度和最小置信度:这两个参数由用户设置,用于控制频繁项集和关联规则的发现过程。通常,用户会根据具体应用的需求来调整这些参数。

4 算法原理

关联规则算法的工作原理如下:

1 扫描数据集:首先,加载整个数据集,计算每个项的支持度然后筛选出频繁项集,这些项集的支持度要高于最小支持度阈值。

2 生成候选项集:生成候选项集,逐渐增加项集中的项的数量,然后计算它们的支持度。这一操作步骤会不断迭代,直到不能再生成新的频繁项集。

3 构建关联规则:找到频繁项集之后,算法会使用它们来构建关联规则。这些规则基于支持度和置信度来筛选,通常只选择满足最小支持度和最小置信度条件的规则。

4 输出关联规则:最后,算法会将生成的关联规则输出,供进一步分析和应用。

总结而言,关联规则算法是一种强大的数据挖掘工具,可以寻找数据中的关联关系,通常用于市场分析、推荐系统等多个领域。它基于频繁项集进行关联规则的构建,以支持度和置信度为核心度量。通过调整最小支持度和最小置信度的参数,可以根据具体应用的需求来输出模型运算的结果。

5 算法实践

在算法实践中,以用户消费数据集为数据计算基础,计算可能存在的产品关联关系。

如下所示,是关联规则算法的主程序,首先根据数据组装频次的映射关系。然后循环计算计数频次。

1697375669249.png

以下是频次计算方法以及是否有子集合。
1697375856398.png

根据频繁的数据集选出候选集合,从而进行后续结果的计算。
1697375633990.png

根据频繁数据集来产生具体的关联规则。
1697376922498.png

关联规则算法结果,通过输入算法集,可以输出关联规则的计算结果,控制台的输出结果即是产品之间的关联度,可以看出芝士和牛奶、面包的关联度是很高的。在产品推介时就可以利用关联规则算法进行产品推荐。
1697375021155.png

6 总结

在本文中,主要介绍了关联规则的原理和项目实践,最终通过代码实现编码,完成了模型的计算结果。关联规则算法在电商系统中为十分常见的推荐算法,感兴趣的掘友可以关注学习。项目代码已经上传,github 地址 springboot-auth。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论