Apriori 初步学习 + C++实现

Apriori算法是一种用于挖掘关联规则的频繁项集算法,常用于商业和网络安全领域。该算法通过找到支持度大于最小支持度的项目集生成强关联规则。本文介绍算法的基本概念、步骤,并提供了C++实现中的关键函数sc.candidate和count_support的讲解及代码示例,包括map、insert、迭代器iterator和pair类型的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基本概念

Apriori算法是一种挖掘关联规则的频繁项集算法,最早由R.Agrawal提出,现已广泛的运用到商业、网络安全等领域。最常见的淘宝相关推荐便包含有这一算法。

该算法的主要步骤为:

(1) 找到所有支持度大于最小支持度的项目集,即频繁项集(Frequent Itemset);

(2) 使用第(1)步的频繁项目集产生期望的规则。

Apriori算法着重与第一步,挖掘频繁项集。
形式化描述如下:令项集I={i1,i2,...in}且有一个数据集合D,它其中的每一条记录T,都是I的子集。

那么关联规则都是形如A->B的表达式,A、B均为I的子集,且A与B的交集为空。
这条关联规则的支持度:support = P(A∪B)
这条关联规则的置信度:confidence = support(A∪B)/suport(A)
如果存在一条关联规则,它的支持度和置信度都大于预先定义好的最小支持度与置信度,我们就称它为强关联规则。强关联规则就可以用来了解项之间的隐藏关系。所以关联分析的主要目的就是为了寻找强关联规则,而Apriori算法则主要用来帮助寻找强关联规则。

2.算法描述

符号说明:

k-itemset k维项目集
L(k) 具有最小支持度的最大 k-itemset
C(k) 候选的k维项目集

首先用sc.candidate通过第(k-1)步中生成的最大项目集L(k-1)来生成候选项目集
然后搜索数据库计算候选项目集的C(k)的支持度 By count_support 函数
--------------------------------------------------------------------

综述

C(1) = { candidate 1-itemsets };
L(1) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值