zoukankan      html  css  js  c++  java
  • [数据挖掘课程笔记]关联规则挖掘

    两种度量:

         支持度(support)  support(A→B) = count(AUB)/N (N是数据库中记录的条数)

           自信度(confidence)confidence(A→B) = count(AUB)/count(A)

    关联规则挖掘的基本两个步骤:

        1.找出所有的频繁项集

         2.由频繁项集产生强关联规则

          由于整个数据库十分庞大,所以对第一步来说,若使用穷举法,搜索空间将是2d,d是项的个数。所以优化算法主要需要优化第一步。而频繁项集里的项的数目远小于数据库数据的数目,所以,在第二步中,我们可以采用穷举法。

    Apriori Algorithm

        频繁:support(A,B)>=min_sp

          几个原理:

          1.如果X在数据集D中是闭的,那么不存在X的超集Y的支持度与X的支持度相同。

          2.X是D中的极大频繁项集(闭的且频繁),那么不存在X的超集Y是频繁的。

          3.如果X不是一个频繁项集,那么它的超项集Y也一定不是频繁的。

          4.频繁项集的子集必是频繁的。

            算法思想:通过频繁n项集生成候选n+1项集,然后再扫描数据库,选出频繁n+1项集,直到不能产生新的频繁项集。

          在L2到C3的过程中,可以组成{A,B,C},{B,C,E},{A,C,E},由于{A,B,C}和{A,C,E}都包含不频繁子项集,所以可以直接删除,在扫描数据库过程中,只需要扫描{B,C,E}

         DIC: Reduce Number of Scans

         基本思想:把数据库分成若干块,每一块都有一个开始点(start point),在每一个开始点处都可以加入新的候选项集。

          

           如上图所示,初始时,加入所有的一项集,然后扫描B1,得到一项集在B1中的支持度,选出频繁一项集组成的候选二项集,在B2的start point位置加入,然后扫描B2,给候选项集里的项集计数,然后再生成新的频繁项集,在B1的start point上加入。重复这个过程,直到没有新的频繁项集生成。

  • 相关阅读:
    C
    C
    如何收集项目日志统一发送到kafka中?
    Jmeter压测快速体验
    实时收集Storm日志到ELK集群
    Neo4j的查询语法笔记(二)
    Logstash2.3.4趟坑之集成Redis哨兵模式
    Spring-Boot中如何使用多线程处理任务
    使用SpringBoot1.4.0的一个坑
    手动从零使用ELK构建一套搜索服务
  • 原文地址:https://www.cnblogs.com/leeshum/p/4903285.html
Copyright © 2011-2022 走看看