- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器学习--Apriori算法
一、基本原理
手机微信关注公众号:datadw 学习数据挖掘,研究大数据,
关注你想了解的,分享你需要的。关联分析( association an alysis ) 就是从大规模数据集中寻找物品间的隐含关系。这里的主要问题是,寻 找物品的不同组合是一项十分耗时的任务,所需计算代价很高,蛮力搜 索方法并不能解决这个问题,所以需要用更智能的方法在合理的时间内 找到频繁项集。Ap riori算法正是基于该原理得到的。
关联分析是一种在大规模数据集中寻找有趣关系的任务。 这些关系 分为两种形式:频繁项集和关联规则。频繁项集( frequent item sets)
是经常出现在一起的物品的集合。 其中频繁的概念可以用支持度来定 义。支持度(support)被定义为数据集中包含该项集的记录所占的比 例,保留满足最小支持度的项集。关联规则( association rules )暗示 两种物品之间可能存在很强的关系。 关联的概念可用 置信度或可信度来 定义。
我们的目标是找到经常在一起购买的物品集合, 通过使用集合的支 持度来度量其出现的频率。一个集合的支持度是指有多少比例的交易记 录包含该集合。假如有 N种物品,那么这些物品就有 2^N-1种项集组
合。即使只出售100种物品,它们之间的组合数对于现有的计算机也是
吃不消的。为了降低这种复杂度,有人提出了 Apriori算法。Apriori原
理是说如果某个项集是频繁的,那么它的所有子集也是频繁的。反过来,
如果某一项集是非频繁集,那么它的所有超集(包含该集的集合)也是 非频繁的。
二、算法流程
对数据集的每条交易记录 tran saction
对每个候选项集can:
检查一下can是否是transaction 的子集: 如果是,则增加can的计数值
对每个候选项集:
如果其支持度不低于最小值,则保留该项集
返回所有频繁项集列表
三、算法的特点
优点:易编码实现
缺点:在大规模数据集上可能较慢。
适用数据范围:数值型或标称型。
四、python代码实现
1、创建简单数据集 ############################# #功能:创建一个简单的测试数据集 #说明:数字1、2、3、4、5代表物品1、、、物品5,
#每个子集代表顾客的交易记录
#输入变量:空
#输出变量:数据集 ############################# def load_data_set():
return [[1, 3, 4], [2, 3, 5], [1,2, 3, 5], [2, 5]]
2、创建大小为1的不重复项集
##################################
#功能:构建一个大小为1的不重复候选项集
#输入变量:测试数据集
#输出变量:候选项集合 #############################
def create_c1(data_set):
c1 =[]
#遍历数据集中所有的交易记录for item in tran sacti on:#遍历每条记录的每一项if [item] not in c1: #
#遍历数据集中所有的交易记录
for item in tran sacti on:
#遍历每条记录的每一项
if [item] not in c1: #
如果该物品没有在c1中
c1.a ppen d([item])
c1.sort()
# set和frozenset皆为无序唯一值序列。
# set和frozenset最本质的区别是前者是可变的、后者是不可变的。
# frozenset的不变性,可以作为字典的键值使用。
retu rn map( froze nset, c1)
3、保留满足最小支持度的项集 ####################################
#功能:扫描候选集集合,把支持度大于最小支持度的元素留下来,
#通过去掉小于支持度的元素,可以减少后面查找的工作量。
#输入变量:数据集,候选项集列表,最小支持度 #data_set, ck, min_support
#输出变量:大于最小支持度的元素列表,包含支持度的字典 #ret_list, suppo rt_data #################################### def sca n_d(data_set, ck, min_supp ort):
D = map( set, data_set) ss_c nt = {}
for tid in D: #遍历数据集中所有交易
for can in ck: # 遍历候选项集
#判断候选集中该集合是数据集中交易记录的子集 # set().issubset()判断是否是其子集 i
您可能关注的文档
- 有理数易错题汇编及答案.docx
- 有理数易错题汇编附答案.docx
- 有理数测试题23.docx
- 有理数的加减法计算题3.docx
- 有理数的运算专项训练及答案.docx
- 有理数的运算全集汇编及答案.docx
- 有理数的运算全集汇编附答案解析0001.docx
- 有理数的运算基础测试题含答案.docx
- 有理数的运算技巧及练习题0001.docx
- 有理数的运算知识点总复习有答案.docx
- 2025年电信职业技能鉴定试题含完整答案详解(易错题).docx
- 2025年电信职业技能鉴定试卷(精选题)附答案详解.docx
- 2025年电信职业技能鉴定试题【A卷】附答案详解.docx
- 2025年电信职业技能鉴定试题含答案详解(基础题).docx
- 2025年电信职业技能鉴定试题含答案详解(典型题).docx
- 药物基因组学在个体化治疗中的应用前景.pptx
- 2025年电信职业技能鉴定试题【达标题】附答案详解.docx
- 2025年电信职业技能鉴定试题【达标题】附答案详解.docx
- 2025年电信职业技能鉴定试题含完整答案详解(考点梳理).docx
- 2025年电信职业技能鉴定试题及完整答案详解(典优).docx
文档评论(0)