简介
Apriori算法是第一个关联规则挖掘算法,也是最经典的算法。它利用逐层搜索的迭代方法找出数据库中项集的关系,以形成规则,其过程由连接(类矩阵运算)与剪枝(去掉那些没必要的中间结果)组成。该算法中项集的概念即为项的集合。包含K个项的集合为k项集。项集出现的频率是包含项集的事务数,称为项集的频率。如果某项集满足最小支持度,则称它为频繁项集。
Apriori算法是种挖掘关联规则的频繁项集算法,一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。Apriori算法已经被广泛的应用到商业、网络安全等各个领域。Apriori算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。但其有一些难以克服的缺点:
(1)对数据库的扫描次数过多。
(2)Apriori算法会产生大量的中间项集。
(3)采用唯一支持度。
(4)算法的适应面窄。
问题
1、开放性题目:
【目的与方法】:对智能个体的生存性进行评估。智能个体处在某种特定的环境中,为了评估它的生存能力,可以从行为决策、行动规则、失能周期等几个功能去评价。
【设置的仿真环境】:在仿真智能体环境中,设置一个简单的方形网格环境。在该环境中,存在一个蓝方和若干个红方的智能体。红方的目的是追击、捕获和消灭蓝方,蓝方的目的是躲避红方以及在规定的时间内到达指定的目的地。当红方和蓝方位置重合时,表明蓝方被消灭;若蓝方的位置在红方的攻击范围内,表明红方正在追击蓝方;若蓝方的位置超出红方的探测范围,表明蓝方在安全区域。在此期间,采用“安全系数”指标来衡量蓝方个体所处位置是否安全,“安全系数”越高说明所处位置越安全;红蓝双方可采取的行为决策有随机游走、策略游走。红蓝双方采取的任何决策都可能会影响到蓝方的生存,可采用“蓝方生存率”指标来评价,生存率越大说明其生存能力越强。红蓝双方具有的行动规则是在方形网格中向上、下、左、右移动;失能周期指的是在规定时间内未到达安全区域或被红方消灭。
【需要完成的任务】:根据您对上述仿真环境的理解,自行调研、细化、规划、设计与构建一个仿真环境,设立不同的智能体,并在该环境中评估他们的生存性。
【考核方式】:1、提炼问题与解决问题的能力(文字描述,不限字数,以清晰程度为主);2、项目方案规划与撰写能力(方案书,不限篇幅,以清晰程度为主);3、代码实现(不限开发平台与编程语言)。
2、算法修正与实现:
Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。现在按照以下要求进行修正:
(1)修正Apriori 算法以满足动态项集的应用场景;
(2)修正Apriori 算法以满足大数据的应用场景;
(3)构建一种阈值设定机制,对Apriori 算法的支持度、置信度阈值的合理设置,避免人为主观设置。
算法思想
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。
L1 = find_frequent_1-itemsets(D);
for (k=2;Lk-1 ≠Φ ;k++) {
Ck = apriori_gen(Lk-1 ,min_sup);
for each transaction t ∈ *D* {//scan D for counts
Ct = subset(Ck,t);//get the subsets of t that are candidates
for each candidate c ∈ Ct
c.count++;
}
Lk ={c ∈ Ck|c.count≥min_sup}
}
return L= ∪ k Lk;
//可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。
算法应用
经典的关联规则数据挖掘算法Apriori 算法广泛应用于各种领域,通过对数据的关联性进行了分析和挖掘,挖掘出的这些信息在决策制定过程中具有重要的参考价值。
Apriori算法广泛应用于商业中,应用于消费市场价格分析中,它能够很快的求出各种产品之间的价格关系和它们之间的影响。通过数据挖掘,市场商人可以瞄准目标客户,采用个人股票行市、最新信息、特殊的市场推广活动或其他一些特殊的信息手段,从而极大地减少广告预算和增加收入。百货商场、超市和一些老字型大小的零售店也在进行数据挖掘,以便猜测这些年来顾客的消费习惯。
Apriori算法应用于网络安全领域,比如网络入侵检测技术中。早期中大型的电脑系统中都收集审计信息来建立跟踪档,这些审计跟踪的目的多是为了性能测试或计费,因此对攻击检测提供的有用信息比较少。它通过模式的学习和训练可以发现网络用户的异常行为模式。采用作用度的Apriori算法削弱了Apriori算法的挖掘结果规则,是网络入侵检测系统可以快速的发现用户的行为模式,能够快速的锁定攻击者,提高了基于关联规则的入侵检测系统的检测性。
Apriori算法应用于高校管理中。随着高校贫困生人数的不断增加,学校管理部门资助工作难度也越加增大。针对这一现象,提出一种基于数据挖掘算法的解决方法。将关联规则的Apriori算法应用到贫困助学体系中,并且针对经典Apriori挖掘算法存在的不足进行改进,先将事务数据库映射为一个布尔矩阵,用一种逐层递增的思想来动态的分配内存进行存储,再利用向量求"与"运算,寻找频繁项集。实验结果表明,改进后的Apriori算法在运行效率上有了很大的提升,挖掘出的规则也可以有效地辅助学校管理部门有针对性的开展贫困助学工作。
Apriori算法被广泛应用于移动通信领域。移动增值业务逐渐成为移动通信市场上最有活力、最具潜力、最受瞩目的业务。随着产业的复苏,越来越多的增值业务表现出强劲的发展势头,呈现出应用多元化、营销品牌化、管理集中化、合作纵深化的特点。针对这种趋势,在关联规则数据挖掘中广泛应用的Apriori算法被很多公司应用。依托某电信运营商正在建设的增值业务Web数据仓库平台,对来自移动增值业务方面的调查数据进行了相关的挖掘处理,从而获得了关于用户行为特征和需求的间接反映市场动态的有用信息,这些信息在指导运营商的业务运营和辅助业务提供商的决策制定等方面具有十分重要的参考价值。
在地球科学数据分析中,关联模式可以揭示海洋、陆地和大气过程之间的有意义的关系。这些信息能够帮助地球科学家更好的理解地球系统中不同的自然力之间的相互作用。
有关术语
[编辑](javascript:😉
支持度(support):support(A=>B) = P(A∪B),表示A和B同时出现的概率。
置信度(confidence):confidence(A=>B)=support(A∪B) / support(A),表示A和B同时出现的概率占A出现概率的比值。
频繁项集:频繁项集挖掘是数据挖掘研究课题中一个很重要的研究基础,它可以告诉我们在数据集中经常一起出现的变量,为可能的决策提供一些支持。频繁项集挖掘是关联规则、相关性分析、因果关系、序列项集、局部周期性、情节片段等许多重要数据挖掘任务的基础。因此,频繁项集有着很广泛的应用,例如:购物篮数据分析、网页预取、交叉购物、个性化网站、网络入侵检测等。,对频繁项集挖掘算法进行研究的方向大概可归纳为以下四个方面:一、在遍历方向上采取自底向上、自顶向下以及混合遍历的方式;二、在搜索策略上采取深度优先和宽度优先策略;三、在项集的产生上着眼于是否会产生候选项集;四、在数据库的布局上,从垂直和水平两个方向上考虑数据库的布局。对于不同的遍历方式,数据库的搜索策略和布局方式将会产生不同的方法,研究表明,没有什么挖掘算法能同时对所有的定义域和数据类型都优于其他的挖掘算法,也就是说,对于每一种相对较为优秀的算法,它都有它具体的适用场景和环境。 [2]
强关联规则:满足最小支持度和最小置信度的关联规则。