项目6 关联规则挖掘_第1页
项目6 关联规则挖掘_第2页
项目6 关联规则挖掘_第3页
项目6 关联规则挖掘_第4页
项目6 关联规则挖掘_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据挖掘技术与应用案例教程数据挖掘基础数据探索与预处理分类回归分析聚类关联规则挖掘人工神经网络与深度学习综合案例——北京二手房数据挖掘项目六关联规则挖掘项目导读在大数据时代,找到并理解事物之间的关联性至关重要。例如,超市将相关联的商品摆放在一起,能够有效促进销售;在线购物平台根据用户行为模式和消费偏好之间的关联,可以为顾客提供更加个性化的购物体验。关联规则挖掘如同一双隐形的眼睛,致力于从大量的数据中发现数据间的关联性和频繁出现的组合,以揭示隐藏在数据背后的规律和趋势。本项目就来学习关联规则的相关知识,以及构建关联规则挖掘模型的常用方法。知识目标熟悉关联规则挖掘的基本概念和过程。理解Apriori算法挖掘关联规则的过程并掌握其实现方法。理解FP增长算法挖掘关联规则的过程并掌握其实现方法。项目目标技能目标能够使用Apriori算法或FP增长算法对目标数据进行关联规则挖掘。素养目标提高发现潜在规律的能力,学会透过现象看本质。全班学生以3~5人为一组进行分组,各组选出组长。组长组织组员扫码观看“关联规则挖掘的应用”视频,讨论并回答下列问题。问题1:日常生活中,哪些情况可以使用关联规则来解释?问题2:关联规则挖掘的典型应用领域有哪些?项目准备关联规则挖掘的应用项目导航6.3FP增长算法6.1关联规则挖掘概述6.2Apriori算法6.1关联规则挖掘概述6.1.1关联规则挖掘的基本概念

关联规则挖掘有一个经典的“啤酒与尿布”案例:在分析超市顾客购买的商品中发现,购买尿布的顾客往往也会购买啤酒,原来是年轻的父亲在购买尿布时也会为自己购买啤酒,而超市管理员发现这一规律后,将两个商品放置在相近的位置,发现销售额明显增加了。在这个案例中可以看出,看似没有任何联系的两件商品却隐藏着某种特殊的关联,这种关联不总是事先可以知道的,需要通过从大量的数据中挖掘。关联规则挖掘正是这样一种能够帮助人们在海量数据中探寻出隐藏关联模式的有效手段和方法。在介绍关联规则挖掘算法之前,先来熟悉与关联规则挖掘相关的基本概念。6.1.1关联规则挖掘的基本概念

是关联规则挖掘的数据对象。通常数据集中的一条记录称为一个事务。例如,表中包含了4个事务。商品购买数据订单号商品名称001面包,牛奶002面包,牛奶,果酱,鸡蛋003牛奶,鸡蛋,橙汁004面包,牛奶,果酱事务中具有独立含义和可区分性的元素称为项。例如,表中的面包、牛奶、果酱、鸡蛋等都是项。一个或多个项的集合称为项集,包含k个项的集合称为k项集。例如,表中的{面包,牛奶}是一个2项集,{面包,牛奶,果酱,鸡蛋}是一个4项集。1.事务2.项集6.1.1关联规则挖掘的基本概念

定义:项集在所有事务中出现的频率,即项集出现的次数占总事务数的百分比。可用来衡量一个项集的频繁程度。计算公式:(6-1)例如,在100条商品购买数据中,有20条数据出现了同时购买面包和牛奶的情况,那么2项集{面包,牛奶}的支持度为3.支持度(support)包含项集X的所有事务数,也称支持度计数;总事务数。6.1.1关联规则挖掘的基本概念

在关联规则挖掘任务中,通常会设置一个用于衡量项集支持度的阈值,此阈值称为最小支持度,它表示项集的最低重要性。当项集的支持度大于或等于最小支持度时,则将该项集定义为频繁项集。4.频繁项集关联规则是形如X→Y的蕴含式,它反映的是当X中的项出现时,Y中的项也会出现的规律。其中,X和Y为两个不相交的项集,项集X称为规则的前提,项集Y称为规则的结果。例如,现有“{面包}→{牛奶}”的关联规则成立,则表示购买了面包的顾客往往也会购买牛奶。5.关联规则6.1.1关联规则挖掘的基本概念

定义:在包含项集X的事务中,同时包含项集X和项集Y的事务所占的比例。置信度用来度量当给定X时,Y发生的概率,其计算公式:(6-2)6.置信度同时包含项集X和项集Y的所有事务数;包含项集X的所有事务数。6.1.1关联规则挖掘的基本概念

例如,在100条商品购买数据中,有50条数据中出现了购买面包的情况,而在这50条数据中,有20条数据出现了同时购买面包和牛奶的情况,那么关联规则“{面包}→{牛奶}”的置信度为6.置信度在关联规则挖掘任务中,通常会设置一个用于衡量关联规则置信度的阈值,此阈值称为最小置信度,它表示关联规则的最低可靠性。当关联规则同时满足最小支持度和最小置信度要求时,将该关联规则称为强关联规则。6.1.1关联规则挖掘的基本概念

7.提升度

客观情况下,通过最小支持度和最小置信度可以排除大部分“无趣”的关联规则,但在实际关联规则挖掘任务中,仍然会出现一些主观上被认为“无趣”的关联规则。因此,为了确保挖掘出的关联规则“有趣”,在支持度和置信度的基础上,增加了提升度要求。定义:项集X对项集Y的出现概率的影响程度,即关联规则的置信度与项集Y的支持度之比,计算公式:(6-3)7.提升度若提升度为1,则表示X与Y之间相互独立,即X对Y没有影响;若提升度大于1,则表示X与Y呈正相关,即当X出现时,Y同时出现的概率高于Y单独出现的概率;若提升度小于1,则表示X与Y呈负相关,即当X出现时,Y同时出现的概率低于Y单独出现的概率。在关联规则挖掘任务中,需要挖掘的是提升度大于1的强关联规则。6.1.2关联规则挖掘的过程

通常情况下,关联规则挖掘可以分为以下两个步骤。(1)产生频繁项集,也就是找出所有满足最小支持度的项集。(2)产生强关联规则,也就是利用(1)产生的频繁项集找出满足最小置信度的强关联规则。课堂检测

1、(单选题)在关联规则挖掘中,以下哪个指标用于衡量项集在所有事务中出现的频繁程度?()A.置信度B.提升度C.支持度D.相关性2、(简答题)简要分析关联规则挖掘的过程。C课堂小结

关联规则挖掘概述关联规则挖掘的基本概念关联规则挖掘的过程6.2Apriori算法6.2Apriori算法

最常用也是最经典的关联规则挖掘算法,它通过迭代的方式逐步产生频繁项集,然后通过逐层搜索频繁项集来产生关联规则。6.2.1频繁项集的产生

Apriori算法原理:基于“先验原理”的重要性质——频繁项集的所有非空子集也一定是频繁项集。目标:找到最大的频繁项集。连接剪枝产生最大频繁项集的过程6.2.1频繁项集的产生

1.连接

候选项集是指可能频繁出现的项集。这些项集还未经过验证,因此称为“候选”,还需要进一步确定其是否真正满足最小支持度要求。定义:利用两个频繁的k项集生成候选的k+1项集。假设所有k项集中的项都已经根据同一规律排序(如字典顺序),将其集合记作Lk,若Lk中的项集l1和项集l2的前k-1项的内容完全相同,且第k项的内容不同,则它们是可以连接的,并生成候选的k+1项集Ck+1。6.2.1频繁项集的产生

1.连接

(4)最终生成候选的3项集{1,2,3}。假设现有一组频繁项集的集合,其产生候选项集的过程如下。(1)对于L2中的2项集{1,2}和{1,3},其前1项的内容都为“1”,因此可以连接生成3项集{1,2,3}。(3)对于L2中的2项集{1,3}和{2,4},其前1项的内容不同,因此也无法连接生成3项集。(2)对于L2中的2项集{1,2}和{2,4},其前1项的内容不同,因此无法连接生成3项集。6.2.1频繁项集的产生

2.剪枝

由先验原理的性质可以推导出,如果一个项集X不是频繁项集,那么在其中添加项Y产生的新项集XUY(称为X的超集)也一定不是频繁项集。由此便可对非频繁项集进行剪枝,以缩小搜索空间,提高搜索效率。基于先验原理的剪枝例如,在图中,若发现{A,B}为非频繁项集,那么{A,B}的超集{A,B,C}、{A,B,D}、{A,B,C,D}也一定是非频繁项集,因此可直接删除。定义:通过检查候选项集中各项集是否是频繁项集,来进行非频繁项集的删除。6.2.1频繁项集的产生

3.产生最大频繁项集的步骤

Apriori算法产生最大频繁项集的步骤如下。(1)扫描所有事务,生成候选的1项集,并计算每个1项集的支持度。(6)重复(3)~(5),通过连接和剪枝操作生成更高项的频繁项集,直至无法找到频繁k+1项集为止,对应的频繁k

项集即为最大频繁项集。(5)删除支持度小于最小支持度的2项集,生成频繁2项集。(4)再次扫描所有事务,并计算每个2项集的支持度。(3)将频繁1项集与自身连接,生成候选的2项集。(2)删除支持度小于最小支持度的1项集,生成频繁1项集。6.2.1频繁项集的产生

3.产生最大频繁项集的步骤

【例6-1】以表中的商品购买数据为基础,在最小支持度为0.5的条件下(即,可判定为频繁项集),产生最大频繁项集。商品购买数据订单号商品名称001面包,牛奶002面包,牛奶,果酱,鸡蛋003牛奶,鸡蛋,橙汁004面包,牛奶,果酱6.2.1频繁项集的产生

3.产生最大频繁项集的步骤

基于Apriori算法的最大频繁项集产生过程(1)扫描所有事务,生成候选的1项集C1,并计算每个项集的支持度计数()。例如,{面包}出现过三次,则。(2)根据最小支持度,删除支持度计数小于2的1项集,生成频繁1项集的集合L1。(3)L1与自身连接,即{面包}分别与{牛奶}、{果酱}和{鸡蛋}连接;{牛奶}分别与{果酱}和{鸡蛋}连接;{果酱}和{鸡蛋}连接,得到候选的2项集C2。(4)第二次扫描所有事务,计算每个候选的2项集支持度计数。6.2.1频繁项集的产生

3.产生最大频繁项集的步骤

(5)根据最小支持度,删除支持度计数小于2的2项集,生成频繁2项集的集合L2。(6)L2与自身连接,即{面包,牛奶}和{面包,果酱}连接;{牛奶,果酱}和{牛奶,鸡蛋}连接,得到候选的3项集C3。(7)第三次扫描所有事务,计算每个候选的3项集支持度计数。(8)根据最小支持度,删除支持度计数小于2的3项集,生成频繁3项集的集合。(9)此时,无法再进行连接产生4项集。因此,最大频繁项集为3项集{面包,牛奶,果酱}。基于Apriori算法的最大频繁项集产生过程6.2.1频繁项集的产生

3.产生最大频繁项集的步骤

Apriori算法的目标是找到最大的频繁项集,但不仅仅局限于找到的最大频繁项集。在寻找最大频繁项集过程中,也会记录其他频繁项集。例如,在例6-1中,频繁项集的集合L1、L2、L3为商品购买数据产生的所有频繁项集。6.2.2关联规则的产生

1.关联规则的产生过程

【例6-2】在例6-1的基础上,设置最小置信度为70%,产生强关联规则。(1)例6-1最终产生的频繁项集有{面包}、{牛奶}、{果酱}、{鸡蛋}、{面包,牛奶}、{面包,果酱}、{牛奶,果酱}、{牛奶,鸡蛋}和{面包,牛奶,果酱}。找到所有频繁项集后,需要由频繁项集产生关联规则,步骤如下。(1)将频繁项集分为两个不相交的非空子集X和Y,生成候选的关联规则X→Y。(2)计算关联规则的置信度,并判断是否满足最小置信度的要求,若满足则该关联规则是一个强关联规则。6.2.2关联规则的产生

1.关联规则的产生过程

confidence({面包,牛奶}→{果酱})confidence({面包,果酱}→{牛奶})confidence({牛奶,果酱}→{面包})confidence({面包}→{牛奶,果酱})confidence({牛奶}→{面包,果酱})confidence({果酱}→{面包,牛奶})(2)以{面包,牛奶,果酱}为例,其非空子集有{面包,牛奶}、{面包,果酱}、{牛奶,果酱}、{面包}、{牛奶}和{果酱}。因此,{面包,牛奶,果酱}产生的候选关联规则置信度计算如下。6.2.2关联规则的产生

1.关联规则的产生过程

(3)由于最小置信度为70%,所以{面包,果酱}→{牛奶}、{牛奶,果酱}→{面包}、{果酱}→{面包,牛奶}三个关联规则为强关联规则。(4)同理,计算其他候选关联规则的置信度。最终产生的强关联规则为{面包}→{牛奶}、{牛奶}→{面包}、{果酱}→{面包}、{果酱}→{牛奶}、{鸡蛋}→{牛奶}、{面包,果酱}→{牛奶}、{牛奶,果酱}→{面包}、{果酱}→{面包,牛奶}。6.2.2关联规则的产生

2.关联规则的重要结论

(1)若X→Y不满足最小置信度要求,即不属于强关联规则,那么X-S→Y+S也不满足最小置信度要求,即不属于强关联规则。对于一个频繁的k项集,理论上可以产生2k-2个候选关联规则。若每个候选关联规则都计算其置信度,将会是非常庞大的计算量。基于此考量,在关联规则产生过程中,有如下重要结论。S指X的非空子集,且与Y无交集例如,例6-2中,通过计算已知{面包,牛奶}→{果酱}不满足最小置信度要求,那么{面包}→{牛奶,果酱}也一定不满足最小置信度要求。因此,可以利用已知非强关联规则有效避免一些肯定不是强关联规则的计算。6.2.2关联规则的产生

2.关联规则的重要结论

(2)若X→Y满足最小置信度要求,即属于强关联规则,那么X→Y1也满足最小置信度要求,即属于强关联规则。Y的非空子集例如,例6-2中,通过计算已知{果酱}→{面包,牛奶}满足最小置信度要求,那么{果酱}→{面包}和{果酱}→{牛奶}也一定满足最小置信度要求。因此,可以利用已知强关联规则有效避免一些肯定是强关联规则的计算。6.2.3Apriori算法实现

1.产生频繁项集

mlxtend的frequent_patterns模块提供了apriori()函数用于产生频繁项集,其一般使用格式如下。apriori(df,min_support=0.5,use_colnames=False,max_len=None)输入的事务数据集,通常需要转换为布尔值矩阵的形式,以确保算法能够处理。mlxtend的preprocessing模块提供了TransactionEncoder类用于转换数据形式。指定频繁项集的最小支持度,其取值在0和1之间,默认取值为0.5。指定是否在输出的频繁项集中包含列名作为前缀。如果取值为True,结果中会包含列名;如果取值为False(默认),则不包含列名。指定频繁项集的最大长度。默认取值为None,表示没有限制。6.2.3Apriori算法实现

1.产生频繁项集

mlxtend是一个Python库,它提供了一些常用的机器学习工具和数据预处理工具,特别是为关联规则挖掘提供了便利。

TransactionEncoder类的主要功能是将原始数据转换为布尔值矩阵,其主要包含fit()和transform()两个方法。这两个方法共同作用于数据转换过程,使得原始数据能够转换为适用于频繁项集挖掘和关联规则分析的格式。mlxtend是什么?TransactionEncoder类的主要功能是什么?高手点拨6.2.3Apriori算法实现

2.产生关联规则

mlxtend的frequent_patterns模块提供了association_rules()函数用于产生满足最小置信度要求的强关联规则,其一般使用格式如下。association_rules(df,metric='confidence',min_threshold=0.8)该参数通常接收apriori()函数的输出结果,包含“support”(支持度)和“itemsets”(频繁项集)两列

。用于衡量关联规则质量的度量标准,可取值为“support”(支持度)、“confidence”(置信度)、“lift”(提升度)等,默认取值为“confidence”。指定最小置信度,其取值在0和1之间,默认取值为0.8。课堂检测

1、(单选题)在Apriori算法中,用于产生最大频繁项集的两个关键操作是:()。A.扫描和计数B.连接和剪枝C.递归和合并D.排序和过滤2、(简答题)简要分析Apriori算法产生最大频繁项集的步骤。B课堂小结

Apriori算法频繁项集的产生关联规则的产生Apriori算法实现项目分析本项目采用的数据集是“超市购物篮”数据集,该数据集中包含500000条用户的购买记录,每条记录中包括订单编号(order_id)、用户编号(user_id)、商品类别(department)和商品名称(product_name)等信息。项目分析读取“超市购物篮”数据集,获取订单编号(order_id)和商品名称(product_name)属性。新建“关联规则挖掘”项目,并提前安装本项目用到的Python库,包括Pandas和mlxtend。步骤1:新建项目并安装Python库步骤2:获取数据本项目对“超市购物篮”数据集进行关联规则挖掘,过程可分为以下四个步骤。项目分析为方便后续寻找频繁项集及挖掘强关联规则,需要先对数据进行合理的预处理。本项目根据数据特点将其合理分组。将分组后的数据变换为适合关联规则挖掘的格式,然后根据案例需求选择Apriori算法产生频繁项集,最后从频繁项集中产生强关联规则,并对强关联规则加以解释。步骤3:数据预处理步骤4:构建模型并知识表示案例实施1——使用Apriori算法进行超市购物篮分析

使用Apriori算法进行超市购物篮分析1.新建项目并安装Python库2.获取数据3.数据预处理4.构建模型并知识表示6.3FP增长算法6.3FP增长算法

虽然Apriori算法利用先验原理的性质对非频繁项集进行了剪枝操作,但在使用Apriori算法进行关联规则挖掘时,其过程中会产生大量的候选项集,并需要重复扫描并计算候选项集的支持度等,因此会极大地增加算法复杂度,影响关联规则挖掘效率。为解决上述问题,FP增长(frequentpatterngrowth,频繁模式增长)算法通过构建FP树,然后遍历FP树产生关联规则。在这一过程中无须产生候选项集,也只需要扫描所有事务两次,可以有效地减少计算量和内存使用,使得对大型数据集的关联规则挖掘变得可行且效率更高。FP树的构建FP树的挖掘FP增长算法步骤6.3.1FP树的构建

构建FP树只需要扫描两次事务数据集,过程如下。(1)第一次扫描事务数据集,清洗并排序项集首先,扫描整个事务数据集,统计每个1项集的支持度,并删除低于最小支持度的项集。然后,将得到的频繁项集按支持度由大到小进行排序。最后,将每个事务中的非频繁项集删除后,对剩余的项根据其支持度由大到小进行排序6.3.1FP树的构建

【例6-3】以表中的商品购买数据为基础,在最小支持度为0.5的条件下(即,可判定为频繁项集),清洗并排序项集。清洗并排序项集的过程商品购买数据订单号商品名称001面包,牛奶002面包,牛奶,果酱,鸡蛋003牛奶,鸡蛋,橙汁004面包,牛奶,果酱6.3.1FP树的构建

(2)第二次扫描事务数据集,构建FP树首先,创建一个空节点,即FP树的根节点。然后,利用频繁1项集及其支持度计数创建一个项头表,并为每个频繁1项集初始化一个链表头指针,用于链接FP树中该项的所有节点。最后,扫描排序后的事务数据集,依次读入每个事务中的每个项,具体方法如下①扫描事务第一项,若不是根节点下的节点,则在根节点下创建新节点并标记其支持度计数为1,同时将节点链接到项头表中该项的指针上;若是根节点下的子节点,则该节点支持度计数增加1。6.3.1FP树的构建

②扫描事务第二项,若不是第一项节点下的节点,则在第一项节点下创建新节点并标记其支持度计数为1,同时将节点链接到项头表中该项的指针上;若是第一项节点下的子节点,则该节点支持度计数增加1。③重复上述操作,扫描事务的其他项,直至所有事务的项都插入FP树中。6.3.1FP树的构建

FP树构建过程【例6-4】在例6-3的基础上,构建FP树。①创建一个空的根节点和项头表。②扫描事务数据集,由于第一个事务的第一项“牛奶”不是根节点下的节点,所以需要在根节点下创建“牛奶”节点,并将其支持度计数记为1,同时将该节点链接到项头表中该项的指针上。③扫描第一个事务的第二项“面包”,由于它不是第一项节点下的节点,所以需要在“牛奶”节点下创建“面包”节点,并将其支持度计数记为1,同时将该节点链接到项头表中该项的指针上。这样就将第一个事务{牛奶,面包}插入了FP树。6.3.1FP树的构建

④扫描第二个事务的第一项“牛奶”,由于它是根节点下的子节点,所以直接将已有的“牛奶”节点的支持度计数增加1。⑤扫描第二个事务的第二项“面包”,由于它是第一项节点下的节点,所以直接将已有的“面包”节点的支持度计数增加1。⑥扫描第二个事务的第三项“果酱”,由于它不是第二项节点下的节点,所以在“面包”节点下创建“果酱”节点,并将其支持度计数记为1,同时将该节点链接到项头表中该项的指针上。FP树构建过程6.3.1FP树的构建

⑦扫描第二个事务的第四项“鸡蛋”,由于它不是第三项节点下的节点,所以在“果酱”节点下创建“鸡蛋”节点,并将其支持度计数记为1,同时将该节点链接到项头表中该项的指针上。这样就将第二个事务{牛奶,面包,果酱,鸡蛋}插入了FP树。⑧重复上述操作将第三个事务和第四个事务插入FP树。FP树构建过程6.3.2FP树的挖掘

FP增长算法通过自底向上挖掘FP树来产生频繁项集。(2)构建条件FP树条件FP树是基于条件模式基构建的一棵树。条件FP树的构建过程类似于FP树,首先将同一频繁1项集的条件模式基合并,并删除小于最小支持度的1项集,直至条件FP树只有一条路径或为空,此时可直接求得以该频繁1项集为后缀的频繁项集。挖掘FP树过程(1)生成条件模式基条件模式基定义:以某个频繁1项集为后缀的前缀路径的集合。生成条件模式基首先需要从FP树的项头表中获取该频繁1项集的所有出现位置,然后从每个出现位置开始,沿着父节点向上遍历,收集路径上的所有频繁1项集(不包含本身),形成关于该频繁1项集的条件模式基。对于FP树中的每个节点,都会生成一个条件模式基,其最后一项是一个数字,用来记录这条路径出现的次数。6.3.2FP树的挖掘

【例6-5】

在例6-4构建的FP树的基础上,挖掘FP树。挖掘FP树的过程如下。(1)从叶子节点开始挖掘,即从{鸡蛋}开始向上遍历,共有两条路径,也就是有两个条件模式基,分别是{牛奶,面包,果酱:1}和{牛奶:1},合并两个条件模式基,并删除支持度计数小于2的1项集,最终可得到{鸡蛋}的条件FP树,其构建过程如图所示。由此可知,以{鸡蛋}为后缀的频繁项集为{牛奶,鸡蛋}。{鸡蛋}的条件FP树构建过程6.3.2FP树的挖掘

(2)从{果酱}开始向上遍历,共有一条路径,也就是有一个条件式基{牛奶,面包:2},其中没有支持度计数小于2的1项集。因此,{果酱}的条件FP树如图所示。由此可知,以{果酱}为后缀的频繁项集为{牛奶,果酱}、{面包,果酱}、{牛奶,面包,果酱}。{果酱}的条件FP树(3)从{面包}开始向上遍历,共有一条路径,也就是有一个条件模式基{牛奶:3},其中没有支持度计数小于2的1项集。因此,{面包}的条件FP树如图所示由此可知,以{面包}为后缀的频繁项集为{牛奶,面包}。{面包}的条件FP树6.3.2FP树的挖掘

(4)从{牛奶}开始向上遍历,其条件模式基为空,也就是其条件FP树为空,即没有以{牛奶}为后缀的频繁项集。通过对FP树的挖掘,除频繁1项集外,可以找到所有的频繁项集:{牛奶,鸡蛋}、{牛奶,果酱}、{面包,果酱}、{牛奶,面包}和{牛奶,面包,果酱}。利用FP树挖掘出所有的频繁项集后,即可根据6.2.2节中的方法产生关联规则,此处不再赘述。6.3.3FP增长算法实现

与Apriori算法类似,Python并没有给出FP增长算法的实现函数,需要借助mlxtend库。mlxtend的frequent_patterns模块提供了fpgrowth()函数用于产生频繁项集,其一般使用格式如下。fpgrowth(df,min_support=0.5,use_colnames=False,max_len=None)FP增长算法产生关联规则的实现方法与Apriori算法相同,即使用mlxtend的frequent_patterns模块提供的association_rules()函数实现,此处不再赘述。其参数及参数含义与apriori()函数相同,此处不再赘述。1.产生频繁项集2.产生关联规则课堂检测

1、FP增长算法通过自底向上挖掘FP树来产生频繁项集,其挖掘过程主要包括哪两个步骤。2、简述FP增长算法实现如何实现?课堂小结

FP增长算法FP树的构建FP树的挖掘FP增长算法实现项目分析本项目采用的数据集是“超市购物篮”数据集,该数据集中包含500000条用户的购买记录,每条记录中包括订单编号(order_id)、用户编号(user_id)、商品类别(department)和商品名称(product_name)等信息。项目分析为方便后续寻找频繁项集及挖掘强关联规则,需要先对数据进行合理的预处理。本项目根据数据特点将其合理分组。读取“超市购物篮”数据集,获取订单编号(order_id)和商品名称(product_name)属性。步骤1:获取数据本项目对“超市购物篮”数据集进行关联规则挖掘,过程可分为以下个步骤。步骤2:数据预处理将分组后的数据变换为适合关联规则挖掘的格式,然后根据案例需求选择FP增长算法产生频繁项集,最后从频繁项集中产生强关联规则,并对强关联规则加以解释。步骤3:构建模型并知识表示案例实施2——使用FP增长算法进行超市购物篮分析

使用FP增长算法进行超市购物篮分析1.获取数据2.数据预处理3.构建模型并知识表示项目实训

1.实训目的练习使用Apriori算法进行关联规则挖掘。项目实训

本实训基于“症状检测”数据集(见图),使用Apriori算法进行症状分析。2.实训内容(1)在“关联规则挖掘”项目下,新建名称为“使用Apriori算法进行症状分析”的Python文件。(2)导入所需的库、类和函数,然后读取本书配套素材“素材与实例”/“项目6”文件夹中的“症状检测.xlsx”文件中的数据。需要注意的是,读取“症状检测.xlsx”数据集需要提前安装openpyxl。(3)根据数据集特点,将“病人症状”属性数据进行拆分。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论