`
美丽的小岛
  • 浏览: 310763 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Apriori算法

 
阅读更多

http://blog.csdn.net/lizhengnanhua/article/details/9061755

一、Apriori算法简介:  Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。 Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。

二、挖掘步骤:

1.依据支持度找出所有频繁项集(频度)

2.依据置信度产生关联规则(强度)

三、基本概念

对于A->B

①支持度:P(A ∩ B),既有A又有B的概率

②置信度:

P(B|A),在A发生的事件中同时发生B的概率 p(AB)/P(A)     例如购物篮分析:牛奶 ⇒ 面包

例子:[支持度:3%,置信度:40%]

支持度3%:意味着3%顾客同时购买牛奶和面包

置信度40%:意味着购买牛奶的顾客40%也购买面包

③如果事件A中包含k个元素,那么称这个事件Ak项集事件A满足最小支持度阈值的事件称为频繁k项集。

④同时满足最小支持度阈值和最小置信度阈值的规则称为强规则

四、实现步骤

    Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法Apriori使用一种称作逐层搜索的迭代方法,“K-1项集”用于搜索“K项集”。

首先,找出频繁“1项集”的集合,该集合记作L1L1用于找频繁“2项集”的集合L2,而L2用于找L3。如此下去,直到不能找到“K项集”。找每个Lk都需要一次数据库扫描。

核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某

个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从CK中删除。

简单的讲,1发现频繁项集,过程为(1)扫描(2)计数(3)比较(4)产生频繁项集(5)连接、剪枝,产生候选项集   重复步骤(1~5)直到不能发现更大的频集

2产生关联规则,过程为:根据前面提到的置信度的定义,关联规则的产生如下:

1)对于每个频繁项集L,产生L的所有非空子集;

2)对于L的每个非空子集S,如果

                PL/PS)≧min_conf

则输出规则“SàL-S

注:L-S表示在项集L中除去S子集的项集



 

算法:Apriori
输入:D - 事务数据库;min_sup - 最小支持度计数阈值
输出:L - D中的频繁项集
方法:
     L1=find_frequent_1-itemsets(D); // 找出所有频繁1项集
     For(k=2;Lk-1!=null;k++){
        Ck=apriori_gen(Lk-1); // 产生候选,并剪枝
        For each 事务t in D{ // 扫描D进行候选计数
            Ct =subset(Ck,t); // 得到t的子集
            For each 候选c 属于 Ct
                         c.count++;
        }
        Lk={c属于Ck | c.count>=min_sup}
}
Return L=所有的频繁集;
 
Procedure apriori_gen(Lk-1:frequent(k-1)-itemsets)
      For each项集l1属于Lk-1
              For each项集 l2属于Lk-1
                       If((l1[1]=l2[1])&&( l1[2]=l2[2])&&……..
&& (l1[k-2]=l2[k-2])&&(l1[k-1]<l2[k-1])) then{
                   c=l1连接l2 //连接步:产生候选
                   if has_infrequent_subset(c,Lk-1) then
                       delete c; //剪枝步:删除非频繁候选
                   else add c to Ck;
                  }
          Return Ck;
 
     Procedure has_infrequent_sub(c:candidate k-itemset; Lk-1:frequent(k-1)-itemsets)
        For each(k-1)-subset s of c
            If s不属于Lk-1 then
               Return true;
        Return false;

 

  • 大小: 91.7 KB
分享到:
评论

相关推荐

    Apriori算法及其改进算法

    Apriori算法及其改进算法 Apriori算法是一种基本的频繁项目集算法,广泛应用于数据挖掘和机器学习领域。其基本原理是逐层搜索的迭代,通过不断地筛选和组合项sets来发现频繁项集。 Apriori算法的核心思想是基于...

    python apriori算法实例

    Apriori算法是关联规则学习中最经典的算法之一,它由R. Agrawal和R. Srikant于1994年提出。本实例将探讨如何在Python中实现Apriori算法,以发现给定数据集中频繁项集。 **Apriori算法的核心思想:** Apriori算法...

    数据挖掘apriori算法-java语言源码AR.zip

    Apriori算法是关联规则挖掘的代表性算法,十大数据挖掘算法之一,可见其重要性。它的主要作用是发现事物之间的内在联系。 Apriori算法的基本思想是通过对数据的多次扫描来计算项集的支持度,发现所有的频繁项集从而...

    关联规则挖掘算法apriori算法的实现

    Apriori算法是关联规则挖掘中最经典、最广泛使用的算法之一,由Rakesh Agrawal和Ramakrishnan Srikant在1994年提出。这个算法主要目标是从交易数据库中找出频繁项集和强关联规则。 首先,我们来理解“关联规则”。...

    Apriori算法matlab代码实现,带数据集和使用说明

    Apriori算法是一种经典的挖掘频繁项集和发现关联规则的数据挖掘方法,由R. Agrawal和R. Srikant于1994年提出。它主要用于从大规模交易数据库中找出有趣的、有意义的关联关系,如“购买尿布的顾客往往也会购买啤酒”...

    Apriori算法python实现含数据集

    在数据分析和数据挖掘领域,Apriori算法是一个经典且重要的概念。它主要用于发现数据库中物品集之间的关联规则,这些规则可以揭示项目之间的隐藏关系。在本篇内容中,我们将深入探讨Apriori算法的原理、Python实现...

    Apriori算法对购物篮进行关联分析-Apriori算法进行购物篮关联分析.rar

    Apriori算法对购物篮进行关联分析-Apriori算法进行购物篮关联分析.rar 大家好,出来乍到,看到好多高手分享自己的程序,我也想分享一下,做出自己的贡献。 虽然学MATLAB已经一年有余,但是一直忙着数学建模,对...

    APRIORI算法带数据集.rar_Apriori_Apriori算法_amountaps_matlab

    利用APRIORI算法找出频繁集,计算置信度与支持度,支持多种格式的数据

    Apriori算法优化策略[

    Apriori 算法 优化策略

    Apriori算法 java实现

    Apriori算法是一种经典的关联规则学习算法,最初由R Agrawal和R Srikant在1994年提出,用于发现数据库中的频繁项集和强关联规则。它基于一个核心理念:如果一个项集是频繁的,那么它的所有子集也必须是频繁的。这个...

    Apriori算法实验报告

    Apriori算法是一种经典的关联规则学习算法,常用于数据挖掘中的频繁项集发现。该算法由R. Agrawal和R. Srikant在1994年提出,其核心思想是通过迭代的方式生成候选频繁项集,并通过支持度计数来消除不满足最小支持度...

    Apriori算法伪代码

    ### Apriori算法知识点解析 #### 一、Apriori算法概述 Apriori算法是一种常用的关联规则学习方法,主要用于挖掘频繁项集及其相应的强关联规则。它在数据挖掘领域尤其是Web数据挖掘中有广泛的应用。Apriori算法的...

    基于hadoop的apriori算法设计于实现

    ### 基于Hadoop的Apriori算法设计与实现 #### 一、背景与问题概述 随着信息技术的发展,海量数据的处理与分析变得日益重要。传统的数据挖掘算法和技术已经难以满足当前的需求,尤其是在处理多维度、含有大量噪声的...

    Apriori算法实现及实验报告

    Apriori算法是一种经典的关联规则学习算法,广泛应用于数据挖掘中的频繁项集发现。该算法由R. Agrawal和R. Srikant在1994年提出,主要用于找出数据库中项集之间的有趣关系,如购物篮分析,即发现哪些商品经常一起被...

    使用Apriori算法进行关联规则挖掘的实验报告与代码实现

    本实验报告主要聚焦于使用Apriori算法进行关联规则挖掘,这是由Rakesh Agrawal和Ramakrishnan Srikant在1994年提出的经典算法。此算法主要应用于零售数据分析,例如发现顾客购买商品之间的关联性。 Apriori算法的...

    基于MapReduce的Apriori算法代码

    基于MapReduce的Apriori算法代码 基于MapReduce的Apriori算法代码是一个使用Hadoop MapReduce框架实现的关联规则挖掘算法,称为Apriori算法。Apriori算法是一种经典的关联规则挖掘算法,用于发现事务数据库中频繁...

    Apriori算法参数含义

    Apriori算法参数含义 Apriori算法是一种常用的关联规则挖掘算法,它的参数设置对挖掘结果有着至关重要的影响。了解Apriori算法参数的含义对于提高关联规则挖掘的效果非常重要。 1. car参数:如果设为真,则...

    基于Apriori算法的关联规则挖掘系统的设计与实现_大数据apriori_关联规则_#大数据论文_Apriori算法_

    标题中的“基于Apriori算法的关联规则挖掘系统的设计与实现”揭示了本文的核心主题,主要探讨了如何利用Apriori算法在大数据环境下构建关联规则挖掘系统。关联规则挖掘是数据挖掘领域的一个重要方法,其目标是从大...

    Apriori算法及其实现

    Apriori算法是一种经典的关联规则挖掘算法,它主要用于发现数据集中项集之间的频繁模式和强关联规则。在商业智能、市场分析、医学诊断等领域,Apriori算法的应用极为广泛,因为它能够帮助决策者从海量数据中提取出有...

Global site tag (gtag.js) - Google Analytics