首页 > 编程知识 正文

apriori算法的一般过程是什么,关联规则apriori算法数据集

时间:2023-05-06 20:39:57 阅读:138603 作者:1355

3358 www.Sina.com/http://www.Sina.com/apriori算法用于解决大数据集的相关分析问题。 关联分析(association analysis (或关联规则学习) association rule learning )是在大型数据集中查找项之间的隐式关系。 但是寻找物品组合是一项非常费时的工作,计算成本高,强行搜索无法解决问题,需要用更聪明的方法在合理的时间范围内找到频繁的项集。 Apriori算法就是解决这个问题的。

一、Apriori相关分析是在大数据集上寻找有趣关系的任务。 这些关系有两种形式: (1)频繁项集,(2)关联规则。

(1)频繁项集算法简介)是经常出现在一起的事物的集合。

二、关联分析:支持度(support )。 支持度是数据集中包含的记录的百分比。 例如,对于数据集[ 1,3,4 ]、[ 2,3,5 ]、[ 1,2,3 ]、[ 2,5 ],项目集{2}的支持度为3/4,项目集{ 2,3 }的支持度为项目集{ 2,3 }

)2)关联规则频繁项集提示两个物品之间可能存在较强的关系。

量化方法:可靠性或可靠性(confidence )。 可靠性是针对{1}----{2}{3}这样的关联规则定义的。 {2}--{3}该规则的可靠度为“支持度{ 2,3 } /支持度{2}”,2/3意味着包括{2}在内的所有记录中有2/3符合规则而包含{ 2,3 }。

http://www.Sina.com/http://www.Sina.com /无论频繁的项集或关联规则如何,都需要计算支持度。 如果数据量较低,则计算项集支持度后,可以通过扫描每个项集的所有数据,并将出现项集的总数除以事务记录总数来获得支持度。 但是,n个物品的数据集具有2N-1中项集合的组合,即使是4个物品也需要遍历数据集15次。 100种物品有中可能的项集合的组合,在现代的计算机中,完成运算需要很长时间。 当然,实际上店里有成百上千的商品。

Apriori算法可以缩短计算时间,减少可能感兴趣的项目集。

关联规则:如果某个项目集很频繁,则其所有子集也很频繁。 如果{ 2,3 }频繁,{0}、{1}也必须频繁。 相反,如果项目集不频繁,则其所有超集也不频繁。 如果{ 2,3 }不频繁,则{ 0,2,3 }、{ 1,2,3 }、{ 0,1,2,3 }也是非频繁项。 因此,如果计算{ 2,3 }的支持度非常频繁,则{ 0,2,3 }、{ 1,2,3 }、{ 0,1,2,3 }的支持度不需要计算。

Apriori原理可以避免项集数量的指数增长,并在合理的时间内计算频繁的项集。

http://www.Sina.com/http://www.Sina.com/apriori算法流程:

1 )首先基于数据集生成项数为1的项集列表C1;

2 )根据频繁出现项集合函数,计算C1中各要素的支持度,去除不满足最小支持度的要素,生成满足最小支持度的频繁出现项集合列表L1;

3 )基于用于生成候选集合函数,基于L1生成k=2的候选集合列表C2;

4 )基于频繁项集函数,基于C2生成满足最小支持度的k=2的频繁项集列表L2;

5 )增加k的值,重复3 )、4 ),生成Lk直到Lk变为空时,返回到l列表,l包含L1、L2、L3 .

以下是创建候选集的函数和说明。

为什么要比较前k-2个元素,初始项集合的个数通常为1,从k=1的项集合中生成k=2的项集合。 所以k的初始值也是2。 为了生成个数为k的项集合,将前k-2项进行比较,相等合并,合并后的个数为k-21=k项,因为正好在比较的项中留下一个不相等的元素。 (以下是忽略C2被滤波后生成的L2,直接将C2视为L2的导出过程的例子,支持度相当于0 )

通过比较前k-2个元素,可以减少遍历列表的次数。 例如,如果尝试使用{ 0,1 }、{ 0,2 }、{ 1,2 }创建三元素项集合,如果将两个集合一一组合,则{ 0,1,2 }、{ 0,1,2 } 相同结果的结合被重复3次,为了得到非重复的结果需要处理。 目前,只比较k-2=1第一个元素,如果第一个元素不相同,则合并集合,得到{ 0,1,2 },只需一次操作,无需遍历列表查找非重复值。

量化计算首先从频繁项集开始,然后创建规则列表。 规则的右侧只包含一个元素。 然后测试这些规则。 然后,合并所有剩馀的规则,以在规则右侧创建包含两个元素的新规则列表。 该方法也称为分级法。 【等待后续】

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。