精华内容
下载资源
问答
  • 关联规则数据分析

    千次阅读 2019-01-13 13:55:59
    关联规则数据挖掘关联规则1.关联规则的产生背景2. 基本概念与原理Aprioir算法用SSAS对医疗数据进行关联分析 关联规则 1.关联规则的产生背景 最早是由Agrawal等人提出的(1993)。最初的动机是针对购物篮分析...

    关联规则

    1.关联规则的产生背景

    最早是由Agrawal等人提出的(1993)。最初的动机是针对购物篮分析(Basket Analysis)问题提出的,其目的是为了发现交易数据库中不同商品的关联规则。之后诸多的研究人员对关联规则的挖掘问题进行了大量的研究,主要涉及关联规则的挖掘理论的探索、原有算法的改进和新算法的设计、增量式关联规则的挖掘、并行关联规则的挖掘、模糊关联规则挖掘以及关联规则的应用等问题。

    2. 基本概念与原理

    **1)**关联规则(AR,Association Rule)反映了一种特定的数据之间的关系。用来揭示数据与数据之间未知的相互依赖关系。他的任务就是:给定一个事物数据库T,在基于支持度-置信度框架中,发现数据与项目之间大量有趣的相关联系,生成所有的置信度和可信度分别高于用户给定的最小支持度和最小可信度的关联规则。其算法设计的两个问题:
    (1) 找到所有支持度大于等于最小支持度(min_sup)的项目集(Item Sets),这些项目集称为频繁项目集(Frequent Item Sets)。
    (2) 使用步骤(1)找到的频繁项目集,产生期望的规则。
    **2)**关联规则的评价标准主要是支持度和置信度。支持度和置信度的两个阈值是描述关联规则的两个重要概念。为了方便将最小的支持度阈值记为min_sup,最小的置信度阈值记为min_conf。最小支持度表示项目集在统计意义上的最低重要性。最小置信度表示规则的最低可靠性。
    假设 是由m个不同数据项组成的一个集合。给定一个数据事物集T,其中每一个事物记录t是I的一个非空子集,即 ,每一个事物记录都有与一个唯一的标识符TID(Transaction ID)相对应。
    对于任意一个非空的项集(itemset) ,如果记录t包含X(即 ),则称记录t支持项集X。对于整个数据集T来说,X的支持度定义为包含X的记录在数据集T中所占的比例。即: 在这里插入图片描述
    式中 表示数据集T中包含的X的记录个数,|T|表示T中所有记录的数目。显而易见, 。如果|X|=k(即|X|表示X中数据项的个数),则称X为k-项集。
    若X的支持度大于所给定的最小支持度阈值 ,则称X为频繁集。关联规则是形如 的表达式,其中X、Y是非空项集,且X、Y不相交。关联规则的支持度定义为: 在这里插入图片描述
    其中X为前项,Y为后项。 的置信度为(前项作为分母)
    在这里插入图片描述
    式中 和 分别表示数据集T中 和X记录的个数。其中并集可以简记为XY。
    如果我们所要求的关联规则支持度大于最小支持度,并且置信度大于最小置信度,称作合格关联规则。
    ※一个关联规则,计算支持度的工作主要是计数运算,要求遍历扫描数据集T。
    ※关联规则数目的大小是影响挖掘效率的关键因素。
    查找数据库中所有的频繁项目集和它的支持度是关联规则挖掘研究的重点。
    所以下面介绍基于广度优先搜索策略的关联规则算法——Apriori算法(通过多次迭代找出所有的频繁项目集):访问完一个频繁项目集的时候,访问它的超集。

    Aprioir算法

    是通过项目集元素数目不断增长来逐步完成项目集的发现。
    分为两个阶段:
    迭代所有的频繁项目集,要求频繁项目集的支持度不小于最小支持度(用户设定的)。
    从频繁项目集中构造置信度不低于用户设定的最小置信度的规则。
    即:首先生成1-频繁项目集L1,然后产生2-频繁项目集L2(也就是逐层产生候选集),直到不能再拓展频繁项目集中的
    元素的数目的时候,算法停止。
    其中,根据项目及空间理论:频繁集的子集是频繁集,非频繁项目集的超级不是频繁集。
    证明:设X是一个项目集,事物数据库中支持X的元组数为从s,对X的任意非空子集Y,设T中支持Y的元组数为s1。
    根据频繁项目集的定义:支持X的一定支持Y,所以
    在这里插入图片描述
    同理可以证明非频繁集的超集不是频繁集。
    例如:假设事务数据库为D(如下表),计算min_sup为25% min_cof=100%时的关联规则。
    表1 事物数据库D

    TID 项目集
    01 ACD
    02 BCE
    03 ABCE
    04 BE

    第一次扫描数据库生成的候选项目集和频繁集如下表
    表2 1-候选项目集

    项目集 支持度
    A 0.167
    B 0.25
    C 0.25
    D 0.083
    E 0.25

    表3 1-频繁项目集

    项目集 支持度
    B 0.25
    C 0.25
    E 0.25

    第二次扫描:用第一次扫描生成的一项频繁项目集来生成二项候选集
    表4 2-候选项目集

    项目集 支持度
    BC 0.167
    BE 0.25
    CE 0.0167

    表5 2-频繁项目集

    项目集 支持度
    BE 0.25

    第二次扫描结束之后只有一个项目集无法再生成三项候选集,所以算法结束。
    然后对于二项集计算其置信度,判断关联规则是否合格。
    |BE|

    Rules (左边的是分母) Conf
    Dsupp(BE)/Dsupp(B) 1
    Dsupp(BE)/Dsupp(E) 1

    由计算得到的置信度我们知道BE关联规则合格。

    用SSAS对医疗数据进行关联分析

    1)Microsoft SQl Server 2008 Analysis Services 的操作步骤

    1. 打开集成环境页面
      依次执行“开始”→“所有程序”→“Microsoft SQL Server 2008”→“SQL Server Business Intelligence Development Studio”命令,打开Analysis Service集成环境界面。

    2. 新建项目
      (1) 执行菜单栏的“文件”→“新建”→“项目”命令,打开如图所示的“新建项目”对话框。(2) 选中“Analysis Services”项目,分别在“名称”、“解决方案名称”文本框中,填写项目名称和解决方案名称;在“位置”下拉文本框中,单击右侧的“浏览”钮,选择解决方案的保存路径。。
      (3) 单击“确定”按钮,返回集成环境的起始界面,在右上角显示“解决方案资源管理器”字样。

    3. 创建数据源

    4. 创建数据源视图

    5. 创建适用于中医的挖掘结构

    6. 部署项目并处理挖掘模型

    7. 模型解释
      规则由生成的挖掘模型得到了116个规则。其中概率大的重要性不一定大。这里产生的项集既有单项集也有多项集。在规则上面的各个控制选项中,我们可以选择最小概率和最低重要性。
      在这里插入图片描述图2 项集
      由图2我们知道产生的项集有362个,支持代表项集的支持度是多少,上面的下拉选项可以控制最低支持度是多少以及最小项集的大小。

    在这里插入图片描述在这里插入图片描述图三 癌细胞无转移情况的关联程度(上)癌细胞有转移情况的关联程度(下)
    由图3我们可以知道在最低支持度为1最小概率为0.42的前提下,和癌细胞无转移情况的有关联的属性由图三(左)中显示红色的属性;和癌细胞有转移情况有关联的属性由图三(右)中显示红色的属性。其中我们还可以看出肾细胞癌分期>=3.25、患者的年龄岁>=60.3173663616、癌细胞分期 -1.2985798036-3.25、患者的年龄岁-52.3197128896-60.3173663616、肾细胞癌组织内微血管数MVC<64.7726790528,这几个属性与癌细胞的转移或者不转移都有联系。

    展开全文
  • 关联规则 挖掘 ,数据关联 融合

    千次阅读 2019-02-22 20:45:25
    关联规则 挖掘 ,数据关联 融合

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                   


    3月9日07:49新浪博客来源:时空交互查看原文>

     

     

     

    关联式规则


    关联式规则(Association Rules, AR),又称关联规则,是数据挖掘的一个重要课题,用于从大量数据中挖掘出有价值的数据项之间的相关关系。关联规则解决的常见问题如:“如果一个消费者购买了产品A,那么他有多大机会购买产品B?”以及“如果他购买了产品C和D,那么他还将购买什么产品?”正如大多数数据挖掘技术一样,关联规则的任务在于减少潜在的大量杂乱无章的数据,使之成为少量的易于观察理解的静态资料。

    关联规则一个经典的实例是购物篮分析(Market Basket Analysis)。超市对顾客的购买记录数据库进行关联规则挖掘,可以发现顾客的购买习惯,例如,购买产品X的同时也购买产品Y,于是,超市就可以调整货架的布局,比如将X产品和Y产品放在一起,增进销量。

    基本概念

    表1:关联规则的简单例子
    TID网球拍网 球运动鞋羽毛球
    11110
    21100
    31000
    41010
    50111
    61100

    根据韩家炜等[1],关联规则定义为:

    假设I=\{I_1, I_2,\ldots,I_m\}的集合。给定一个交易数据库D=\{t_1, t_2,\ldots,t_n\},其中每个事务(Transaction)t是I的非空子集,即t\subseteq I,每一个交易都与一个唯一的标识符TID(Transaction ID)对应。关联规则是形如X \Rightarrow Y蕴涵式,其中X, Y \subseteq IX \cap Y = \emptysetXY分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。关联规则X \Rightarrow Y在D中的支持度(support)是D中事务包含X \cup Y的百分比,即概率P(X \cup Y)置信度(confidence)是包含X的事务中同时包含Y的百分比,即条件概率P \left ( Y | X \right )。如果同时满足最小支持度阈值最小置信度阈值,则认为关联规则是有趣的。这些阈值由用户或者专家设定。

    用一个简单的例子说明。表1是顾客购买记录的数据库D,包含6个事务。项集I={网球拍,网球,运动鞋,羽毛球}。考虑关联规则:网球拍 \Rightarrow 网球,事务1,2,3,4,6包含网球拍,事务1,2,6同时包含网球拍和网球,支持度support= \frac{3}{6} = 0.5,置信度confident= \frac{3}{5} = 0.6。若给定最小支持度 \alpha =0.5,最小置信度 \beta =0.6,关联规则网球拍 \Rightarrow 网球是有趣的,认为购买网球拍和购买网球之间存在强关联。

    分类

    关联规则有以下常见分类[1]

    根据关联规则所处理的值的类型

    • 如果考虑关联规则中的数据项是否出现,则这种关联规则是布尔关联规则(Boolean association rules)。例如上面的例子。
    • 如果关联规则中的数据项是数量型的,这种关联规则是数量关联规则(quantitative association rules)。例如年龄("20-25")\Rightarrow购买("网球拍"),年龄是一个数量型的数据项。在这种关联规则中,一般将数量离散化(discretize)为区间。

    根据关联规则所涉及的数据维数

    • 如果关联规则各项只涉及一个维,则它是单维关联规则(single-dimensional association rules),例如购买("网球拍")\Rightarrow购买("网球")只涉及“购买”一个维度。
    • 如果关联规则涉及两个或两个以上维度,则它是多维关联规则(multi-dimensional association rules),例如年龄("20-25")\Rightarrow购买("网球拍")涉及“年龄”和“购买”两个维度。

    根据关联规则所涉及的抽象层次

    • 如果不涉及不同层次的数据项,得到的是单层关联规则(single-level association rules)。
    • 在不同抽象层次中挖掘出的关联规则称为广义关联规则(generalized association rules)。例如年龄("20-25")\Rightarrow购买("HEAD网球拍")和年龄("20-25")\Rightarrow购买("网球拍")是广义关联规则,因为"HEAD网球拍"和"网球拍"属于不同的抽象层次。

    算法

    Apriori 算法

    Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法。它的核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集。
    在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:算法需要对数据集进行多步处理。第一步,简单统计所有含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集。从第二步开始循环处理直到再没有最大项目集生成。循环过程是:第k步中,根据第k-1步生成的(k-1)维最大项目集产生k维侯选项目集,然后对数据库进行搜索,得到侯选项目集的项集支持度,与最小支持度进行比较,从而找到k维最大项目集。
    下面以图例的方式说明该算法的运行过程: 假设有一个数据库D,其中有4个事务记录,分别表示为:

    TIDItems
    T1I1,I3,I4
    T2I2,I3,I5
    T3I1,I2,I3,I5
    T4I2,I5

    这里预定最小支持度minSupport=2,下面用图例说明算法运行的过程:

    TIDItems
    T1I1,I3,I4
    T2I2,I3,I5
    T3I1,I2,I3,I5
    T4I2,I5

    扫描D,对每个候选项进行支持度计数得到表C1:

    项集支持度计数
    {I1}2
    {I2}3
    {I3}3
    {I4}1
    {I5}3

    比较候选项支持度计数与最小支持度minSupport,产生1维最大项目集L1:

    项集支持度计数
    {I1}2
    {I2}3
    {I3}3
    {I5}3

    由L1产生候选项集C2:

    项集
    {I1,I2}
    {I1,I3}
    {I1,I5}
    {I2,I3}
    {I2,I5}
    {I3,I5}

    扫描D,对每个候选项集进行支持度计数:

    项集支持度计数
    {I1,I2}1
    {I1,I3}2
    {I1,I5}1
    {I2,I3}2
    {I2,I5}3
    {I3,I5}2

    比较候选项支持度计数与最小支持度minSupport,产生2维最大项目集L2:

    项集支持度计数
    {I1,I3}2
    {I2,I3}2
    {I2,I5}3
    {I3,I5}2

    由L2产生候选项集C3:

    项集
    {I2,I3,I5}

    比较候选项支持度计数与最小支持度minSupport,产生3维最大项目集L3:

    项集支持度计数
    {I2,I3,I5}2

    算法终止。

    从算法的运行过程,我们可以看出该Apriori算法的优点:简单、易理解、数据要求低,然而我们也可以看到Apriori算法的缺点:(1)在每一步产生侯选项目集时循环产生的组合过多,没有排除不应该参与组合的元素;(2)每次计算项集的支持度时,都对数据库D中的全部记录进行了一遍扫描比较,如果是一个大型的数据库的话,这种扫描比较会大大增加计算机系统的I/O开销。而这种代价是随着数据库的记录的增加呈现出几何级数的增加。因此人们开始寻求更好性能的算法,如下面要介绍的F-P算法。

    F-P算法

    针对Apriori算法的性能瓶颈问题-需要产生大量候选项集和需要重复地扫描数据库,2000年Jiawei Han等人提出了基于FP树生成频繁项集的FP-growth算法。该算法只进行2次数据库扫描且它不使用侯选集,直接压缩数据库成一个频繁模式树,最后通过这棵树生成关联规则。研究表明它比Apriori算法大约快一个数量级。
    FP-growth算法是一种不产生候选模式而采用频繁模式增长的方法挖掘频繁模式的算法。算法只需要扫描2次数据库:第一次扫描数据库,得到1维频繁项集;第二次扫描数据库,利用1维频繁项集过滤数据库中的非频繁项,同时生成FP树。由于FP树蕴涵了所有的频繁项集,其后的频繁项集的挖掘只需要在FP树上进行。FP树挖掘由两个阶段组成:第一阶段建立FP树,即将数据库中的事务构造成一棵FP树;第二阶段为挖掘FP树,即针对FP树挖掘频繁模式和关联规则。
    FP-growth算法描述
    输入:事务数据库D,最小支持度minSupport。
    输出:频繁模式的完全集。
    方法:
    1 构建FP树:
    1.1 扫描事务数据库,收集频繁项集F并统计支持度,对F按支持度降序排序,得到频率排序好的项表L。
    1.2 创建FP树的根节点,用“null”标记它。对于D中每个事务T,执行:选择T中的频繁项,并按L中的次序排序。设排序后的频繁项表为[p|P],其中p是第一个元素,而P是剩余元素的表。调用insert_tree([p|P],T)。该过程执行情况如下:如果T有子女N使得N.itemName=p.itemName,则N的计数增加1;否则创建一个新节点N,将其计数设置为1,链接到它的父节点T,并且通过节点链结构将其链接到具有相同itemName的节点。如果P非空,递归地调用insert_tree(P,N)。
    2 FP树的规则挖掘(通过FP-growth(Tree,α)函数来实现,初始调用FP-growth(Tree,null)):
    if Tree含单个路径P then {
    for 路径P中节点的每个组合(记作β)
    产生模式β∪α,其支持度support=β中节点的最小支持度; }
    else for each αi 在Tree的头部 do {
    产生模式β=αi ∪ α,其支持度support=αi.support;
    构造β的条件模式基,然后构造β的条件FP树Treeβ;
    if Treeβ≠空集 then
    调用FP_growth(Treeβ,β) }
    end

    F-P算法实现

    Bash版本:请参考文章FP-growth算法实现

    Eclat算法

    与fp-growth 和apriori算法不同,Eclat算法加入了倒排的思想,具体就是将事务数据中的项作为key,每个项对应的事务ID作为value。

    原输入数据为

    tiditem
    1A,B
    2B,C
    3A,C
    4A,B,C

    转换后为:

    itemtids
    A1,3,4
    B1,2,4
    C2,3,4

    通过转换后的倒排表可以加快频繁集生成速度。 其算法思想是 由频繁k项集求交集,生成候选k+1项集 。对候选k+1项集做裁剪,生成频繁k+1项集,再求交集生成候选k+2项集。如此迭代,直到项集归一。 根据上述数据的情况,具体计算过程为

       算法过程:

    1.计算频繁1项集,结果为:

    itemfreq
    A3
    B3
    C3

    2.由频繁1项集生成频繁2项集

    itemfreq
    A,B2
    A,C2
    B,C2

    3.由频繁2项集生成频繁3项集

    itemfreq
    A,B,C1

    频繁k项集生成频繁k+1项集的过程与由1项集生成2项集的过程完全一致。

    这里有个隐含的条件是,两个频繁k项集生成k+1项集时,前k-1项是一致的,A,B+A,C==>A,B,C

    Eclat算法实现

    eclat的核心思想就是倒排,这种数据处理方式很适合用关系型数据表示和实现。 具体可参考用关系型数据结构实现Eclat算法——Hive

    参考文献

    1. 1.0 
    展开全文
  • 数据挖掘-关联规则

    千次阅读 2016-05-01 16:18:33
     关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系在数据中并没有直接表示出来 常用关联规则算法如下表所示: 算法名称 算法描述 ...

    关联规则

     

          关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系在数据中并没有直接表示出来

    常用关联规则算法如下表所示:

    算法名称

    算法描述

    Apriori

    关联规则最常用也是最经典的挖掘频繁项集的算法,其核心思想是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集

    FP-Tree

    针对Apriori算法固有的多次扫描事务数据集的缺陷,提出的不产生候选项频繁项集的方法。Apriori和FP-Tree都是寻找频繁项集的算法

    Eclat算法

    Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间

    灰色关联法

    分析和确定各因素之间的影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法

    1.Apriori算法

    该算法核心思想是通过连接产生候选项与其支持度然后通过剪枝生成的频繁项集。

    1)关联规则和频繁项集

    关联规则的一般形式

    项集A、B同时发生的概率称为关联规则的支持度(也称为相对支持度):

     Support(A=>B)=P(AB)

    项集A发生,则项集B发生的概率为关联规则的置信度:

    Confidence(A=>B)=P(B|A)

    2)最小支持度和最小置信度

         最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上的最低重要性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度值的规则称为强规则。

    3)项集

         项集是项的集合。包含k个项的项集称为k项集,项集的出现频率是所有包含项集的事务计数,又称作绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作为Lk

    4)支持度计数

          项集A的支持度计数是失误数据集中包含项集A的事务个数,简称为项集的频率或计数。已知项集的支持度计数,则规则A=>B的支持度和置信度很容易从所有事务计数、项集A和项集AB的支持度计数推出:

    Support(A=>B)=A,B同时发生的事务个数/所有的事务个数

    Confidence(A=>B)=P(A|B)=Support(AB)/Support(A)

      也就是说,一旦得到所有事务个数,A,B和AB的支持度计数,就可以导出对应的关联规则A=>B和B=>A,并可以检查该规则是否是强规则。

     

    2.Apriori算法:使用候选产生频繁项集

         Apriori算法的主要思想是找出存在于事务数据集中最大的频繁项集,在利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。

    1)  Apriori的性质

        频繁项集的所有非空子集也必须是频繁项集。根据该性质可以得出:向不是频繁项集I的项集中添加事务A,新的项集IA一定也不是频繁项集。

    2)  Apriori算法实现的两个过程

        找出所有的频繁项集(支持度必须大于等于给定的最小支持度阈值),在这个过程中连接步和剪枝不互相融合,最终得到最大频繁项集Lk  

    l  连接步:

        连接步的目的是找到k项集。对给定的最小支持度阈值,分别对1项候选集C1,剔除小于该阈值的项集得到1项频繁项集L1;下一步由L1自身连接产生2项候选集C2,保留C2中满足约束条件的项集得到2项频繁集,记为L2;再下一步由L2与L1连接产生3项候选集C3,保留C2中满足约束条件的项集得到3项频繁集,记为L3……这样循环下去,得到最大频繁项集L

    l  剪枝步:

         剪枝步紧接着连接步,在产生候选项Ck  的过程中起到减小搜索空间的目的。由于Ck是Lk-1与L1连接产生的,根据Apriori的性质频繁项集的所有非空子集也必须是频繁项集,所以不满足该性质的项集将不会存在于Ck中,该过程就是剪枝。 

     

    2)由频繁项集产生强关联规则:由过程1)可知未超过预定的最小支持度阈值的项集已被剔除,如果剩下这些规则又满足了预定的最小置信度阈值,那么就挖掘出了强关联规则。

    展开全文
  • 数据挖掘之关联规则分析

    万次阅读 2018-08-12 14:01:18
    关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系。 用于寻找数据集中各项之间的关联关系。根据所挖掘的关联关系,可以从一个属性的信息来推断另一个属性的信息。当置信度...

    关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系。

    用于寻找数据集中各项之间的关联关系。根据所挖掘的关联关系,可以从一个属性的信息来推断另一个属性的信息。当置信度达到某一阈值时,可以认为规则成立。

    常用的关联规则算法

    算法名称 算法描述
    Apriori

    关联规则最常用、最经典的挖掘频繁项集的算法,核心思想是通过连接产生候选项及其支持度,然后通过剪枝生成频繁项集

    无法处理连续型数值变量,往往分析之前需要对数据进行离散化。

    FP-Tree

    针对Apriori算法固有的多次扫描事务数据集的缺陷,提出的不产生候选频繁项集的方法。

    Apriori和FP-Tree都是寻找频繁项集的算法

    Eclat算法 一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间
    灰色关联法 分析和确定各因素之间的影响程度,或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法

    本文介绍最常用的Apriori算法。

    项集:项的集合。包含k个项的项集成为k项集,如集合{牛奶、麦片、糖}是一个3项集

    频繁项集:如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集

    支持度(相对支持度):项集A、B同时发生的概率。

    置信度:项集A发生,则项集B发生的概率。

    最小支持度:用户或专家定义的衡量支持度的一个阈值,表示项集在统计意义上的最低重要性。

    最小置信度:用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度阈值的规则成为强规则。

    目前,设置最小支持度和最小置信度,大部分根据业务经验设置初始值,然后经过多次调整,获取与业务相符的关联规则结果。


    举例1:

    R语言实现:

    1、创建稀疏矩阵

    tr <- read.transactions("menu_orders.txt",format="basket",sep=",") #读入源数据并创建稀疏矩阵
    #format=c("basket", "single")用于注明源数据的格式。如果源数据每行内容就是一条交易购买的商品列表(类似于一行就是一个购物篮)那么使用basket;如果每行内容是交易号+单个商品,那么使用single。
    summary(tr) #查看数据集相关的统计汇总信息
    
    inspect(tr) #查看稀疏矩阵的内容

    输出如下:

    2、采用Apriori算法建模

    rule0 = apriori(tr,parameter = list(support=0.2,confidence = 0.5)) #设定支持度为0.2,置信度为0.5

    3、输出模型结果

    inspect(rule0)

    输出结果如下:

    结果分析(以结果第12条为例):

    a、b同时发生的概率是50%。

    a发生,则b发生的概率是71.42857%。

    这样就可以进行智能推荐了。


    举例2:

    trans = as(a,"transactions") #将数据转换成transactions属性
    
    inspect(trans[1:5]) #观察前五行的数据
    
    rules = apriori(trans,parameter = list(support=0.06,confidence = 0.75)) #调用Apriori算法,最小支持度为0.06,最小置信度为0.75
    
    rules #显示rules中关联规则条数
    
    inspect(rules) #观测rules中的关联规则

    输出结果如下:

    结果分析(以结果第2条为例):

    A4、F3~H4的支持度最大,为7.85%,置信度为87.96%。说明当A4、F3的条件满足时,H4的可能性为87.96%,而这种情况发生的可能性为7.85%。

     

    Python实现:

    import pandas as pd 
    from apriori import * 导入自己编写的Apriori函数
    data = pd.read_excel("menu_orders.xls",header=None)
    
    print(u'\n转换原始数据为0-1矩阵')
    ct = lambda x:pd.Series(1,index=x[pd.notnull(x)]) #转换0-1矩阵的过渡函数
    b = map(ct,data.as_matrix()) #用map方式执行
    data = pd.DataFrame(list(b)).fillna(0) #实现矩阵转换,空值用0填充
    print(u'\n转换完毕。')
    del b #删除中间变量b,节省内存
    
    support = 0.2 #最小支持度
    confidence = 0.5 #最小置信度
    ms = '---' #连接符
    find_rule(data,support,confidence,ms).to_excel('1.xls')

    输出结果如下:

    展开全文
  • Python机器学习&数据分析-关联规则

    千次阅读 2019-08-04 09:10:23
    数据分析-关联规则 机器学习课程的笔记整理 一、关联规则前置知识 关联规则 在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,超市也因此发现了一个规律,在购买婴儿尿布的年轻父亲们中,有30%~40%的人同时...
  • 数据挖掘进阶之关联规则挖掘FP-Growth算法 绪 近期在写论文方面涉及到了数据挖掘,需要通过数据挖掘方法实现软件与用户间交互模式的获取、分析与分类研究。主要涉及到关联规则与序列模式挖掘两块。关联规则挖掘使用...
  • 数据挖掘学习笔记3: 关联规则2

    千次阅读 2015-05-12 22:29:11
    在适当的等级挖掘出来的数据项之间的关联规则可能是非常有用的 通常, 事务数据库中的数据也是根据维和概念分层进行储存的 在多个抽象层挖掘关联规则, 并在不同的抽象层进行转化. 是数据挖掘系统应该提供的能力 挖掘...
  • 数据挖掘之关联规则(Apriori算法)

    万次阅读 2021-02-18 17:12:33
    关联规则想必大家都是听说过 尿布和啤酒的故事; 在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店...
  • 基于关联规则的足球比赛数据分析

    万次阅读 2018-08-19 00:48:27
    针对这种情况,本文通过足球比赛中产生的数据,比如射门次数、控球率、传球成功率等,运用关联规则算法进行建模、分析,探索足球比赛的胜负与哪些关键指标的关系密切。 思路:以本赛季的中超联赛(目前进行到第18轮...
  • 数据关联规则分析算法

    千次阅读 2018-01-29 18:33:14
    数据关联规则(Associaton Rules,AR)是数据挖掘算法的重要目的之一,用于在海量数据中挖掘出具有价值的信息,通常在商业中用于数据数据指尖的关系来产生更大的价值,典型的例子就是“啤酒与尿不湿”。 1、基于...
  • 数据挖掘学习笔记之关联规则

    千次阅读 2020-09-17 21:29:14
    关联规则 关联规则的一般表现为蕴含式规则形式:X—>Y 其中的X为前提或先导条件,Y为结果或后继 关联规则与传统的用于分类的产生式规则有两点不同: 1)在某条关联规则中以前提条件出现的属性可以出现在下一条关联...
  • 数据挖掘之关联规则练习

    千次阅读 2018-05-17 11:10:03
    1.关联规则 ...关联规则数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。 关联规则挖掘的最经典的例子就是沃尔玛的啤酒与尿布的故事,通过对超市购物篮数据进行分析...
  • 关联规则

    千次阅读 2016-03-01 16:26:34
    举一个大家最耳熟能详的例子,就是尿布和啤酒,表示成关联规则的形式就是{尿壶} —&gt;{啤酒}。这就是使用关联分析方法所得到的结果,而关联分析所得到的结果,我们可以用关联规则或者频繁项集的形式表示。...
  • 数据挖掘之关联规则

    2018-05-17 11:21:21
    数据挖掘的知识模式中,关联规则模式是比较重要的一种。属于描述性模式,发现关联规则的算法属于无监督学习的方法。关联规则通过量化的数字描述物品甲的出现对物品乙的出现有多大的影响。一般用4个参数来描述关联...
  • 在学习数据挖掘,刚学到关联规则,老师要求自己写一写。 本着能用库就不自己敲详细代码的原则,找到了这个叫做apyori的库。 自己在CSDN上搜了搜大佬的案例,主要是参考的这个大佬的案例 但是我照着大佬写的还是不能...
  • 数据挖掘之关联规则挖掘标签:数据挖掘关联规则挖掘研究有助于发现交易数据库中不同商品项之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。分析结果应用与商品货架布局,货存安排以及根据...
  • 数据挖掘】关联规则之灰色关联分析法

    千次阅读 多人点赞 2019-01-24 17:52:39
    灰色关联分析法 利用灰色关联分析的九个步骤: 1.根据分析目的确定分析指标体系,收集分析数据。  设n个数据序列形成如下矩阵:   其中m为指标的个数, 2.确定参考数据列 参考数据列应该是一个理想的比较...
  • R语言关联规则-Foodmart数据数据集描述初步探索关联规则挖掘关联规则可视化商品品类的关联规则如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 一、概述本篇博文主要阐述数据挖掘相关的关联规则挖掘的算法(Apriori算法)。主要介绍关联规则的基本概念、Apriori算法原理和Apriori算法实例,文章末尾处附加Apriori算法源程序。二、关联规则挖掘的基本概念关联...
  • 数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的...
  • [数据挖掘]关联规则挖掘

    千次阅读 2013-05-03 21:26:13
    关联规则(association rule)是数据中所蕴含的一类重要规律。关联规则挖掘的目标是在数据项目中找出所有的并发关系(cooccurrence relationships),这种关系也称为关联(association)。关联规则挖掘的经典应用是...
  • 这篇文章主要介绍三个知识点,也是我《数据挖掘与分析》课程讲课的内容。 1.关联规则挖掘概念及实现过程;...关联规则数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。
  • 认识什么是关联规则,并了解Apriori算法的实现步骤。
  • 关联规则是当前数据挖掘研究的主要方法之一,主要用于确定数据中不同领域之间的联系,找出满足给定支持度和可信度阀值的多个域之间的依赖关系。在时空分析中,除了经典因子之间的关联(简单关联、时序关联和因果关联...
  • 浅谈数据挖掘中的关联规则挖掘

    千次阅读 2017-09-07 10:11:00
    数据挖掘是指以某种方式分析数据源,从中发现一些潜在的有用的信息,所以数据挖掘又称作知识发现,而关联规则挖掘则是数据挖掘中的一个很重要的课题,顾名思义,它是从数据背后发现事物之间可能存在的关联或者联系。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 318,072
精华内容 127,228
关键字:

关联规则数据