[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
编程语言
> 详细
apriori算法的简介和改进总结
时间:
2016-03-27 11:02:47
阅读:
281
评论:
0
收藏:
0
[点我收藏+]
apriori算法的简介:
利用的相关性质:
频繁项集 的非空子集也必须是频繁项集
非频繁项集的任一超集也必然不是频繁项集
如果K-维频繁项集集合中包含单个项目i的个数小于K-1,则i不可能在频繁K项集中(apriori算法中并没有用到这个性质,可以借助这个性质来进行优化,性质会在后面举例)
算法的主要思想是:
第一步,通过迭代,检索出食物数据库给中所有的频繁项集,主要依据用户设定的最小支持度的阈值
第二步,用频繁项集构造出满足用户最小信任度的关联规则。其中第一步是占算法的主要计算部分,我们也主要研究的是第一步。
迭代过程主要分为连接和剪枝两个步骤:(由k-1维项集产生K维项集
连接:两个项集的前K-2项相同,最后的K-1项不同,则连接产生的K维项集就是前K-2项加上两个项集中不同的项
剪枝:利用性质一和性质二:如果新产生的项集有存在一个子集不在K-1维的频繁项集中,则删掉该新产生的项集
算法的伪代码
在第三步产生新的项集之后,需要统计每个项集的频度,主要采取的算法是,对数据库中的每个条目,遍历一遍候选项集,对每个包含该条目的候选项集计数加一。这样的话需要重新扫描一遍数据库,产生大量的计算
算法的问题:
在计算项目集 的支持度时需要对数据库的全部记录进行一遍扫描比较,一般情况下数据库的规模会很庞大,这样会极大的增加系统的I/O开销。
在每一步中,产生候选项集时循环产生的组合过多,没有排除不应该参与组合的元素,即没有用到性质三
优化:主要考虑三个方面
第一,数据库的压缩,如果一个条目(或者说项目)不包含任何一个K-项集,那么它不可能包含任何一个K+1项集,即在下一次的遍历数据库时,不需要再去对该条目进行检查(通常做法是删除该条目,或者将这个条目做上标记)。
第二,缩小候选项集的个数,即动态项集计数。在某个条目的统计之后,如果发现某个候选项集的计数已经满足了最小支持度,那么可以将这个项集直接放入到频繁项集中,这样以后就不用对该项集进行计数了
第三,在连接的步骤之前,先对项集进行利用性质三进行筛选,提前删除不满足的项集。对K-1项项集中的每一个元素进行计数,若某个元素的个数小于K-1,则将K-1项集中删除包含该元素的项集。这样可以极大的减小了可能产生的候选项集的数量。
优化的步骤如下:
apriori算法的简介和改进总结
原文:http://www.cnblogs.com/928pjy/p/5325008.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!