第六章(1) 关联分析:基本概念
发布日期:2022-02-06 02:21:59
浏览次数:23
分类:技术文章
本文共 2274 字,大约阅读时间需要 7 分钟。
- 关联分析:发现隐藏在大型数据集中的有意义的联系;所发现的联系可以用关联规则和频繁项集来表示
- 两个问题:
- 从大型事务数据集中发现联系的开销大
- 所发现的联系需要验证
- 问题定义:
- 二元表示:购物篮事务每行对应一个事务,每列对应一个项,项在事务中的值为0或1,出现很重要,所以是非对称二元变量
- 项集和支持度计数:事务的宽度是事务中出现项的个数;项集的支持度计数即包含该项集的事务个数
- 关联规则:关联规则的强度用支持度和置信度度量
- 支持度:确定规则可以用于给定数据集的频繁程度
- 置信度:确定Y在包含X的事务中出现的频繁程度
- 支持度代表规则出现程度,置信度通过规则进行推理具有可靠性
- 关联分析做出的推论并不必然蕴含因果关系,这只表示规则前后件中的项明显的同时出现;因果关系需要关于数据中原因和结果属性的知识
- 关联规则的发现:对给定事务集合T,关联规则发现是指找出支持度和置信度>=阈值的规则
- 从包含多个项的数据集中提取规则的直接办法开销很大,提高效率的方法是拆分支持度和置信度要求,一种策略:
- 频繁项集的产生:从项集中找到满足最小支持度阈值的项集,即频繁项集
- 规则的产生:从频繁项集中提取满足最小置信度阈值的规则,即强规则
- 频繁项集的产生:
- 两种降低频繁项集的计算复杂度的策略:
- 减少候选项集的数目:先验原理Apriori
- 减少比较次数:替代每个候选项集和每个事务相匹配,使用更高级的数据结构、存储候选项集、压缩数据集
- 先验原理:如果一个项集是频繁的,则它的所有子集是频繁的;相反,子集如果是非频繁的,其超集也是非频繁的;基于支持度的剪枝,依赖于支持度的反单调性:一个项集的支持度不会超过其子集的支持度
- Apriori算法的频繁项集的产生:两个特点
- 逐层算法,找出频繁k-项集
- 使用产生-测试策略来发现频繁项集(产生候选项集->识别属于事务的所有候选、支持度计数->提取频繁k-项集)
- 候选集的产生和剪枝:Apriori-gen函数:
- 候选项集的产生:由前一次迭代发现的频繁(k-1)-项集产生新的候选k-项集
- 候选项集的剪枝:基于支持度,删除一些候选k-项集
- 候选项集产生过程的要求:
- 避免产生过多不必要的候选:子集非频繁
- 确保候选项集是完全的:没有遗漏
- 避免产生重复的候选项集
- 候选项集产生过程的几种方法:
- 蛮力方法:对指定k,把所有k-项集作为候选,去除不要的候选
- F(k-1)*F(1)方法:用其他频繁1-项集来扩展频繁(k-1)-项集;完备的方法,但会出现重复的候选项集,避免产生重复的方法是将每个项以字典序存储,每个频繁(k-1)-项集X只用字典序比X中所有的项都大的频繁项进行扩展
- F(k-1)*F(k-1)方法:即Apriori-gen函数,合并一对频繁(k-1)-项集,仅当它们的前(k-2)项相同且最后一项不同
- 支持度计数:枚举每个事务包含的项集,利用它们更新对应的候选项集的支持度(项集中的项以字典序排序)
- Hash树的支持度计数:在Apriori算法中,将候选项集划分为不同的桶,包含在事务中的项集也散列在相应的桶中
- 计算复杂度:
- Apriori算法的计算复杂度由以下因素影响:
- 支持度阈值:支持度阈值降低,频繁项集的最大长度会增加
- 项数(维度)
- 事务数
- 事务的平均宽度:频繁项集的最大长度随事务的平均宽度的增加而增加;事务宽度增加,Hash树遍历次数增加
- 时间复杂度:
- 频繁1-项集的产生:O(N*w)
- 候选的产生
- 支持度计数
- Apriori算法的计算复杂度由以下因素影响:
- 两种降低频繁项集的计算复杂度的策略:
- 规则产生:每个频繁k-项集产生多达2^k-2个关联规则,满足置信度阈值则被留下;计算关联规则的置信度不需要再次扫描事务数据集
- 基于置信度的剪枝:不具有任何单调性
- 定理:如果规则X->(Y-X)不满足置信度阈值,则X'->(Y-X')也不满足,X'是X的子集
- Apriori算法的规则的产生:使用一种逐层方法产生关联规则,其中每层对应于规则后件的项数;开始,提取规则后件只有一个项的所有高置信度规则,然后合并两个规则后件产生新的候选规则;在规则产生时,不必再扫描数据集,而是使用在频繁项集中产生时计算的支持度计数来确定置信度
- 频繁项集的紧凑表示:频繁项集的数量可能很大,从中找出重点的、其他所有频繁项集的、较小的、具有代表性的项集是有用的;两种:
- 极大频繁项集:直接超集都是不频繁的;极大频繁项集形成了可以导出所有频繁项集的最小的项集的集合;但是极大频繁项集却不包含其子集的支持度信息
- 闭频繁项集:提供了频繁项集的一种最小表示,不丢失支持度信息;
- 闭项集:项集的直接超集都不具有和它相同的支持度计数
- 可以用闭频繁项集的支持度来确定非闭频繁项集的支持度,非闭频繁项集的支持度一定与其某个直接超集相同,而子集的支持度>=超集的支持度,所以非闭频繁项集的支持度一定等于其超集的最大支持度
- 所以从闭频繁项集找出子集中的非闭频繁项集,可以确定其支持度
- 对于分析,仅提供闭频繁项集就足够了,而不是所有的频繁项集
- 冗余规则:如果存在X的子集X'和Y的子集Y',X->Y和X‘->Y'的支持度和置信度是相同的,则X’->Y'是冗余的;如果使用闭频繁项集产生规则,则不会出现这样的冗余规则
- 极大频繁项集都是闭的,因为任何极大频繁项集都不可能和其直接超集有相同的支持度计数
- 产生频繁项集的其他方法:Apriori算法多次扫描事务数据集,开销大
- 项集格遍历:3种策略
- 双向
- 等价类
- 宽度优先和深度优先:深度优先策略用来寻找极大频繁项集的算法,找到后再其子集上进行剪枝
- 事务数据集的表示:表示方法的选择可能影响计算候选集支持度的开销
- 项集格遍历:3种策略
转载地址:https://blog.csdn.net/u013103305/article/details/83307724 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月18日 23时53分51秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
别再问我什么是A/B测试了!
2019-04-30
如何用同期群分析模型提升留存?(Tableau实战)
2019-04-30
爱了,吹爆这个高颜值的流程图工具!
2019-04-30
一个数据项目
2019-04-30
基于JAVA_JSP电子书下载系统
2019-04-30
基于java出租车计价器设计与实现
2019-04-30
基于java的B2C的网上拍卖系统
2019-04-30
十二时辰篇:这该死的 996
2019-04-30
2021最新 上海互联网公司排名
2019-04-30
字节vs快手!取消大小周之战
2019-04-30
送一个闲置显示器!
2019-04-30
Oracle 行转列 pivot函数基本用法
2019-04-30
Oracle字符串分隔符替换(替换奇数个或偶数个)
2019-04-30
Oracle 利用 UTL_SMTP 包发送邮件
2019-04-30
Oracle 自定义函数实现split功能,支持超长字符串和clob类型的分隔
2019-04-30
Oracle 的循环中的异常捕捉和处理
2019-04-30
Oracle通过pivot和unpivot配合实现行列转换
2019-04-30
给Oracle数据库换一个1522端口的监听
2019-04-30
Excel表格数据生成ECharts图表
2019-04-30