• 机器学习11关联规则


    理解置信度、支持度的定义以及最小置信度和最小支持度。

    这几个概念要搞明白。

    我们要做的事情就是在数据集中找出所有支持度大于最小支持度,置信度大于最小置信度的关联规则。

    关联规则的挖掘所面临的问题就是数据量大,则如何提高算法的效率就是我们主要要解决的问题。

    另外一个概念就是频繁项集,支持度大于最小支持度的数据项集就是频繁项集。

    由于置信度通过支持度就可以求出,所以我们的关键问题就是如何求支持度,也就是如何找到频繁项集。

    Apriori算法给出了两个定律就是为了解决这个问题。

    1、如果一个集合时频繁项集,那么它所有的子集都是频繁项集。很容易理解就是这个集合一起出现都大于最小支持度了,那它们单个出现肯定是大于。

    2、如果一个集合不是频繁项集,那么它所有的超集都不是频繁项集。这个也容易理解,也就是跟上面反过来。

    我们会发现这个算法有些不足。

    我们要多次扫描数据集,另外生成的候选集也可能是相当的大。这下面就有人对算法进行改进,也就有我们下一章的算法FP-tree,这个算法不用产生候选集支持生成频繁集,这个算法主要是构建一个频繁模式树。

    这个算法主要有如下步骤:

    1、扫描一下数据集,确定每一项的支持度,然后去掉非频繁集。

    2、这个频繁集按照这个支持度从大到小进行排列。如果支持度一样的话就按照字典顺序排序

    3、再次扫描数据集,构建第一个根节点,把每一个项集按照刚刚的顺序排序,再对每一个项集进行依次构建树的分支,这边构建分支的时候有一定的规则,简单点说就是,构建分支,没有一直构建,已有节点,则该节点数加一。

    4、最后把刚开始排序的频繁项集构建表头跟链表,这样就构建了FP-tree

    下面就是挖掘。挖掘的主要步骤:

    从刚刚构建的FP-tree的表头开始,按照每个频繁集的链接遍历,列出能够到达此项的所有前缀路径,然后去掉这个节点,找第二项的前缀路径,一直对每个项重复这个步骤。

    算法的过程我看了一下大概是这个样子,具体使用证明还没有看,这边也就不写了。

  • 相关阅读:
    noexcept(c++11)
    右值引用和std::move函数(c++11)
    mint-ui 取值
    apicloud 注意事项
    倒计时
    获取第n天日期
    防止split没有切割的变量报错
    return
    时间戳转为日期
    echarts 中 请求后台改变数据
  • 原文地址:https://www.cnblogs.com/fengbing/p/3523769.html
Copyright © 2020-2023  润新知