Apriori 算法是一种用于关联规则学习的无监督机器学习算法。关联规则学习是一种数据挖掘技术,可识别数据中被称为项目集的不同项组之间的频繁模式、联系和依赖关系。
Apriori 算法适用于各种类型的数据集,尤其是由事务型数据库生成的数据集,通常用于市场篮子分析,以支持推荐系统。例如,当使用销售服装和鞋子的电子商务平台时,购物者搜索鞋子,并决定将一双黑色正装鞋添加到购物车。然后,购物者注意到界面推荐了其他要购买的商品,比如袜子。此推荐系统的工作方式之一是通过了解客户的购买模式,并将可能一起被购买的物品关联起来。
我们只有 4种商品:商品A,商品B,商品C和商品D。那么所有可能被一起购买的商品组合都有哪些?按照下面的推算步骤:
1.MapReduce订单源数据产生产品的非空子集
交易源数据:
订单号 | 商品名称 |
---|---|
1 | A |
1 | B |
1 | C |
2 | B |
2 | C |
2 | D |
…… | …… |
Map函数以orderId为Key,Values为(A,B,C)(B,C,D) ,Reduce的时候求(A,B,C)(B,C,D)的非空子集。
输出结果:
非空子集 | 个数 |
---|---|
A | 1 |
B | 1 |
C | 1 |
AB | 1 |
AC | 1 |
BC | 1 |
ABC | 1 |
B | 1 |
C | 1 |
D | 1 |
BC | 1 |
BD | 1 |
CD | 1 |
BD | 1 |
BCD | 1 |
…… | …… |
2.根据第一步Reduce结果MapReduce计算每个非空子集的个数
根据第一步Reduce的结果,Map函数以非空子集作为Key:
非空子集 | 个数 |
---|---|
A | 1 |
B | 1 |
C | 1 |
AB | 1 |
AC | 1 |
BC | 1 |
ABC | 1 |
B | 1 |
C | 1 |
D | 1 |
BC | 1 |
BD | 1 |
CD | 1 |
BD | 1 |
BCD | 1 |
…… | …… |
Reduce的时候Values的size为非空子集出现的总个数,输出结果:
非空子集 | 总个数 |
---|---|
A | 1 |
B | 2 |
C | 2 |
AB | 1 |
AC | 1 |
BC | 2 |
ABC | 1 |
D | 1 |
BD | 1 |
CD | 1 |
BD | 1 |
BCD | 1 |
…… | …… |
构建频繁项集完成。
3.根据MapReduce的结果,建立关联规则
MapReduce的结果,应用程序读取到Redis里面,从Redis里面以油标的方式遍历所有的数据,建立关联规则。关联规则持久到Mysql里面。
4.最后得出:关联规则结果B->C,C->B。
大模型火的一塌糊涂,代码助手、文档生成、AIOPS等已经提升很大效率,AI时代作为企业级开发程序员需要什么的能力?系统的了解一下AI也是我今年的一个学习目标。我认为有四点: