一种基于位串的分布式频繁项集在商品关联中应用方法技术

技术编号:37123461 阅读:22 留言:0更新日期:2023-04-01 05:19
本发明专利技术涉及一种基于位串的分布式频繁项集在商品关联中应用方法,属于数据挖掘技术领域。本发明专利技术借助传统的FP

【技术实现步骤摘要】
一种基于位串的分布式频繁项集在商品关联中应用方法


[0001]本专利技术涉及一种基于位串的分布式频繁项集在商品关联中应用方法,属于数据挖掘


技术介绍

[0002]为了在商品购物清单中挖掘用户购买商品组合中潜在的商品组合关系,需要用到相关的数据挖掘技术,其中关联规则领域中的频繁项集挖掘是处理这类问题比较好的一种方法。传统的频繁项集有Apriori和FPGrowth,但是Apriori存在数据迭代性过大并且FPGrowth中的FPTree可能会使得内存占用过大等问题。因此,本专利技术通过引用了类似BitTable的数据存储格式,将每条事务转换为相关的位串,通过BitewiseOperate方法进行快速的模式生成。其次,并对其进行了分布式的改进,通过拆分成多个类似于FPTree的数据结构树,将其分布到各个分区中进行项集的寻找,得到全部的频繁项集,满足了快速挖掘商品项集的要求。

技术实现思路

[0003]本专利技术要解决的技术问题是提供了一种基于位串的分布式频繁项集在商品关联中应用方法,以用于解决传统的FPGrowth中生成FPTree时占用的内存空间过大,并对传统的FPTree中进行分区的频繁项集挖掘的方法,最后应用到商品的关联应用。
[0004]本专利技术的技术方案是:一种基于位串的分布式频繁项集在商品关联中应用方法,具体步骤为:
[0005]Step1:从分布式数据库中的将全部商品的购物清单中读取到内存中,并设置最小支持度阈值。
[0006]Step2:根据最小支持度阈值得到绝对最小支持度,聚合商品购物清单中的不同的项,剔除小于最小支持度的商品项从而得到全部的频繁出现的商品1项集,并按支持度大小进行降序排列后对商品项进行从大到小编号。
[0007]Step3:再次遍历商品购物清单中的每条购物清单并与Step2中的频繁出现的商品1项集全集进行取交集,将取交集的结果按Step2中的商品项顺序排列。
[0008]Step4:将Step3中的保留的商品项从前往后递归生成n

1项商品事务项,并依据事务的尾项进行Hash分区,将每条生成的商品前缀事务项分到对应的分区中。
[0009]Step5:将每个分区分配的商品事务项按不同的尾部项进行分区,每个分区按不同的事务项生成多颗sub

FPTree。
[0010]Step6:每个分区中依次遍历每颗sub

FPTree中的每条分支,依据每颗sub

FPTree的商品全集进行映射,得到每条分支所属的位串,对位串采用BitwiseOperate操作进行快速的模式,最终得到全部的商品事务子项,每个分区中的每颗sub

FPTree都进行上述操作后输出即得到了全部的频繁出现的商品项。
[0011]所述Step1具体为:
[0012]Step1.1:创建一个SparkConf对象,设置该对象中的分区数,设置内存运行大小,节点运行个数,运行的主节点等其它必要的参数。
[0013]Step1.2:依据SparkConf对象生成SparkContext对象,该对象为应用程序于Spark集群之间通信的接口。
[0014]Step1.3:通过SparkContext将原始的商品购物清单从HDFS中读取到内存中,并指定了并行读取时的分区数量。
[0015]Step1.4:设置最小支持度阈值min_sup,并且满足0<=|min_sup|<=1。
[0016]所述Step2具体为:
[0017]Step2.1:依次读取每条商品清单事务,对每条商品事务中的商品项按分隔位进行拆分,聚合相同的商品项,并按照项出现次数的大小进行从大到小的降序排列。
[0018]Step2.2:计算绝对最小支持度min_count,通过将商品清单中的总数db_count和最小支持度阈值min_sup相乘得到。
[0019]Step2.3:将排序后的项进行过滤,对小于min_count的商品项进行剔除,得到了全部的频繁商品1项集。
[0020]Step2.3:对全部的频繁商品1项集进行编号。
[0021]所述Step3具体为:
[0022]Step3.1:读取原始商品购物清单事务集中的每条商品购物事务,对每条商品购物事务与排序后的频繁1项的商品事务项取交集。
[0023]Step3.2:将取交集后的结果按照频繁1项的商品事务集的顺序重新排列。
[0024]所述Step4具体为:
[0025]Step4.1:将取交集后并排列的事务从后往前递归地生成n

1项商品前缀事务集。
[0026]Step4.2:依次扫描每条商品事务中生成地前缀商品事务集,按商品事务集尾部项集中的项号进行Hash分区,将所有的前缀商品事务分到各个分区中。
[0027]所述Step5具体为:
[0028]Step5.1:对每个分区中的商品前缀事务进行进一步整理,将尾部相同的项进行聚合。
[0029]Step5.2:将所有尾部相同的商品事务项转化为树的分支,依次添加到每颗树中。
[0030]Step5.3:如果添加到分支时遇到的项一环境存在则对支持度相加,遇到的分支的项不存在则对其进行直接添加,知道所有尾部项的相同的前缀商品事务项都抽取完成则停止,得到多颗sub

FPTree。
[0031]所述Step6具体为:
[0032]Step6.1:得到每颗sub

FPTree的商品全项集列表,每项由<商品项,支持度>表示。
[0033]Step6.2:剔除局部商品全集的列表中支持度小于绝对最小支持度的项。
[0034]Step6.3:抽取每条分支并于局部商品全集列表取交集,存在则取1,不存在则为0,将每条分支转化为多条位串。
[0035]Step6.4:对每条位串作BitwiseOperate操作,得到多条基于商品事务的子串。
[0036]Step6.5:将子串进行聚合,子串所对应的支持度相加,过滤掉小于最小支持度的位子串,将剩余的子串和局部的商品全集进行映射,得到当前的sub

FPTree中的全集。
[0037]Step6.6:依次对所有的sub

FPTree进行操作,得到全部的频繁商品项集。
[0038]本专利技术的有益效果是:本专利技术通过将位操作的方法加入FPTree中对FPGrowth进行了算法的改进,并且,最终通过拆分。本专利技术与FP

Growth相比,主要解决了存储FPTree需要占用过多内存,并且在分布式中不适合分区的问题,通过位串的引入,将原来的不同项的类型需要存储过大的问题,并且在不同的分区中进行了树的操作,适合并行,这样可以更快得找到商品之间得组本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于位串的分布式频繁项集在商品关联中应用方法,其特征在于:Step1:从分布式数据库中的将全部商品的购物清单中读取到内存中,并设置最小支持度阈值;Step2:根据最小支持度阈值得到绝对最小支持度,聚合商品购物清单中的不同的项,剔除小于最小支持度的商品项从而得到全部的频繁出现的商品1项集,并按支持度大小进行降序排列后对商品项进行从大到小编号;Step3:再次遍历商品购物清单中的每条购物清单并与Step2中的频繁出现的商品1项集全集进行取交集,将取交集的结果按Step2中的商品项顺序排列;Step4:将Step3中的保留的商品项从前往后递归生成n

1项商品事务项,并依据事务的尾项进行Hash分区,将每条生成的商品前缀事务项分到对应的分区中;Step5:将每个分区分配的商品事务项按不同的尾部项进行分区,每个分区按不同的事务项生成多颗sub

FPTree;Step6:每个分区中依次遍历每颗sub

FPTree中的每条分支,依据每颗sub

FPTree的商品全集进行映射,得到每条分支所属的位串,对位串采用BitwiseOperate操作进行快速的模式,最终得到全部的商品事务子项,每个分区中的每颗sub

FPTree都进行上述操作后输出即得到了全部的频繁出现的商品项。2.根据权利要求1所述的基于位串的分布式频繁项集在商品关联中应用方法,其特征在于,所述Step1具体为:Step1.1:创建一个SparkConf对象,设置该对象中的分区数,设置内存运行大小,节点运行个数,运行的主节点;Step1.2:依据SparkConf对象生成SparkContext对象,该对象为应用程序于Spark集群之间通信的接口;Step1.3:通过SparkContext将原始的商品购物清单从HDFS中读取到内存中,并指定了并行读取时的分区数量;Step1.4:设置最小支持度阈值min_sup,并且满足0<=|min_sup|<=1。3.根据权利要求1所述的基于位串的分布式频繁项集在商品关联中应用方法,其特征在于,所述Step2具体为:Step2.1:依次读取每条商品清单事务,对每条商品事务中的商品项按分隔位进行拆分,聚合相同的商品项,并按照项出现次数的大小进行从大到小的降序排列;Step2.2:计算绝对最小支持度min_count,通过将商品清单中的总数db_count和最小支持度阈值...

【专利技术属性】
技术研发人员:丁家满肖力贾连印付晓东姜瑛
申请(专利权)人:昆明理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1