zoukankan      html  css  js  c++  java
  • 【机器学习】关联规则分析(一):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,接着又去扫描那些非频繁项目,重复……

     看下面这个例子:

    元素项目表格:


      如果每个步骤不去掉非频繁项目集,则其扫描过程的树形结构如下:

      在其中某个过程中,可能出现非频繁的项目集,将其去掉(用阴影表示)为:



  • 相关阅读:
    iOS 开发笔记-获取某个APP素材
    iOS UI基础-15.0 UIWebView
    iOS UI基础-14.0 DatePicker
    iOS UI基础-13.0 数据存储
    iOS UI基础-12.0 Storyboard
    iOS UI基础-11.0 UINavigationController
    iOS UI基础-10.0 QQ聊天布局之键盘及文本使用
    iOS 开发技巧总结
    iOS 设计模式-NSNotificationCenter 通知中心
    iOS UI基础-9.2 UITableView 简单微博列表
  • 原文地址:https://www.cnblogs.com/DianaCody/p/5425631.html
Copyright © 2011-2022 走看看