【机器学习】关联规则分析(一):Apriori
一、Apriori原理? ? ? ? Apriori是关联分析中较早的一种方法,主要用来挖掘那些频繁项集合,其思想是: 1.如果一个项目集合不是频繁集合,那么任何包含它的项目(超集)也一定不是频繁集。 2.如果一个项目集合是频繁集合,那么它的任何非空子集(子集)也是频繁集合。 ? 二、关联分析1.发现频繁项集→ 经常出现在一起的样本集合 2.发现关联规则→ 暗示两种样本之间可能存在很强的关系 3.Apriori原理可减少支持度计算量 *************************************************** 支持度:数据集里包含该项集的记录所占的比例 可信度:针对一条eg.{A}→{B}的关联规则来确定的,定义为:可信度 = 支持度{A,B} / 支持度{A} ? 支持度(比例大小)→特定数据集/总数据集→ 反映频繁项集 可信度(关联规则)→支持度{A,B}/支持度{A} →反映关联度 ? 用户自行设定最小支持度minSupport作为参数,当集合/列表(set/list)支持度大于最小支持度,则为频繁项集 *************************************************** ? 三、算法步骤1.生成候选项集流程: ******************************** 对数据集里每条记录item: 对每个候选项集can: ???????? 检查can是否为item的子集: ?????????????????? 如果是,则增加can的计数值 ?????????????????? 对每个候选项集can: ??????????????????????????? 如果其支持度不小于最小值,则保留该项集 返回所有频繁项集列表 *********************************** ? 2.完整Apriori流程*********************************** 当集合中项的个数>0: ???????? 构建k个项组成的候选项集列表 ???????? 检查数据以确定每个项集都是频繁的 ???????? 保留频繁集并构建k+1项组成的候选项集列表 *********************************** ? ? ? ? ? Apriori需要扫描项目多遍,从一个项目开始,舍去掉那些不频繁项目,得到集合成为l,然后对l中每个元素进行自组合,生成比上次扫描多一个项目的集合,该集合成为c,接着又去扫描那些非频繁项目,重复…… 看下面这个例子: 元素项目表格: 如果每个步骤不去掉非频繁项目集,则其扫描过程的树形结构如下: 在其中某个过程中,可能出现非频繁的项目集,将其去掉(用阴影表示)为: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |