• Apriori算法原理总结


    Apriori算法用来找出频繁出现的数据集合

    1. 频繁项集的评估标准

    常用的频繁项集的评估标准有支持度、置信度、提升度三个。

    支持度:几个关联数据在数据集中出现的次数占总数据集的比重。或者说几个关联数据出现的概率

    比如两个想分析关联性的数据XY,则支持度为:

    以此类推,三个想分析关联性的数据X、Y、Z,则支持度为:

    一般来说,支持度高的数据不一定构成频繁项集,但是支持度低的肯定不构成频繁项集。

    置信度:一个数据出现后,另一个数据出现的概率。或者说数据的条件概率

    比如两个想分析关联性的数据XY,则置信度为:

    以此类推,三个想分析关联性的数据X、Y、Z,则置信度为: 

    举个例子,在购物数据中,纸巾对应鸡爪的置信度为40%,支持度为1%。则意味,总共有1%的用户既购买了鸡爪又买了纸巾;同时买鸡爪的用户有40%的用户购买纸巾。

    提升度:在含有Y的条件下,同时含有X的概率,与X总体发生的概率之比,即: 置信度与X总体发生的概率之比。

    提升度大于1X<=Y是有效的强关联规则。提升度小于等于1X<=Y是无效的强关联规则。如果XY独立,则lift(X<=Y) = 1,因为此时p(X|Y) = p(X)

    2. Apriori算法思想

    对于Apriori算法,我们使用支持度作为判断频繁项集的标准Apriori算法的目标是找到最大的K项频繁集。这里有两层意思,

    第一层,要找到符合支持度标准的频繁集。但是这样的频繁集可能有很多。

    第二层,要找到最大个数的频繁集。比如找到符合支持度的频繁集ABABE,那么会抛弃AB,只保留ABE,因为AB是2项频繁集,而ABE是3项频繁集。

    Apriori算法挖掘K项频繁集过程:

    Apriori算法采用迭代的方法,先搜索候选1项集及对应的支持度,剪枝去掉低于支持度的1项集,得到频繁1项集。然后对剩下的频繁1项集进行连接,得到候选的频繁2项集,筛选去掉低于支持度的候选频繁2项集,得到真正的频繁2项集,以此类推,迭代下去,直到无法找到频繁k+1项集为止,对应的频繁k项集的集合即为算法的输出结果。

    可见,这个算法很简洁,第i次的迭代过程包括扫描计算候选频繁i项集的支持度,剪枝得到真正频繁i项集和连接生成候选频繁i+1项集第三步。

    用下面这个简单例子演示:

    数据集D有4条记录,分别是134,235,1235和25。现在用Apriori算法来寻找频繁k项集,最小支持度设置为50%。首先我们生成候选频繁1项集,包括我们所有的5个数据并计算5个数据的支持度,计算完毕后我们进行剪枝,数据4由于支持度只有25%被剪掉。我们最终的频繁1项集为1235,现在我们链接生成候选频繁2项集,包括12,13,15,23,25,35共6组。此时我们的第一轮迭代结束。

    进行第二轮迭代,我们扫描数据集计算候选频繁2项集的支持度,接着进行剪枝,由于12和15的支持度只有25%而被筛除,得到真正的频繁2项集,包括13,23,25,35。现在我们链接生成候选频繁3项集,123,135,和235共3组,这部分图中没有画出。通过计算候选频繁3项集的支持度,我们发现123和135的支持度均为25%,因此接着被剪枝,最终得到的真正频繁3项集为235一组。由于此时我们无法再进行数据链接,进而得到候选频繁4项集,最终的结果即为频繁3项集235。

    来自:https://www.cnblogs.com/pinard/p/6293298.html

  • 相关阅读:
    自动刷新页面
    docker 数据卷管理
    docker container(容器)
    docker images
    docker 设计原理
    hbase数据原理及基本架构
    详谈kafka的深入浅出
    django介绍及路由系统
    mysql爱之深探测
    mysql数据库内容相关操作
  • 原文地址:https://www.cnblogs.com/keye/p/14869510.html
Copyright © 2020-2023  润新知