一种支持分布式计算的关联规则挖掘算法实现方法及装置的利记博彩app

文档序号:6376624阅读:1138来源:国知局
专利名称:一种支持分布式计算的关联规则挖掘算法实现方法及装置的利记博彩app
技术领域
本发明涉及计算机技术领域,尤其涉及一种支持分布式计算的关联规则挖掘算法实现方法及装置。
背景技术
随着“大数据”时代的到来,企业业务数据量激增,数据分析师都在尝试各种数据分析方法以及数据挖掘方法,旨在希望能够从海量数据中发掘潜在的、具有业务价值的用户行为模式。数据挖掘通过分析每个数据,从大量数据中寻找其规律的技术。另外,本发明中提到的大数据、海量数据、数据集的含义相同。关联规则挖掘是数据挖掘方法中一种被广泛采用的且具有影响力的方法,它能够用在各种推荐系统中为用户推荐感兴趣的物品。目前能够使用的各种版本的关联规则挖掘算法都是单机形式,面对大数据量情况都显得无能为力,很多场景下也只是采样部分业务数据进行关联规则的查找。1993年,R. Agrawal等人首次提出了挖掘顾客交易数据中项目集间的关联规则问题,其核心是基于两阶段频繁集思想的递推算法。第一步通过迭代,检索出事务数据库中的所有频繁项集,频繁项集即支持度不低于用户设定的阈值的项集;第二步利用频繁项集构造出满足用户最小信任度的规则。其中,挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。频繁项集项的集合称为项集。项集的出现频率(支持计数)是项集的事务数,简称为项集的频率,支持率计数或者计数。如果项集的相对出现频率大于等于预定义的最小支持度阈值,则是频繁项集。2001年Tobias从贝叶斯统计角度提出了基于预测精度的关联规则模型,并给出了相应的关联规则挖掘算法PredictiveApriori,简称PA算法。PA算法只需要设定输出最好的η个规则,就可以挖掘出η个预测精度最大的规则。PA算法主要通过不断增大规则前项支持度和观察置信度来逐步逼近获得最大预测精度Ε,从而返回η个最好的关联规则。通过前项支持度和规则的置信度来量化期望预测精度Ε,同时支持度可以修正规则的置信度。这样综合考虑了支持度和置信度对关联规则的预测精度的影响。数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。关联规则挖掘过程主要包含两个阶段第一阶段必须先从数据集合中找出所有的频繁项集,第二阶段再由这些频繁项集中产生关联规则。Hadoop不仅仅是一个用于存储的分布式文件系统,而且还是一个分布式系统基础框架,用户可以在不了解分布式底模块细节的情况下,开发分布式程序。Hadoop充分利用集群的威力进行高速运算和存储,实现了一个分布式文件系统(Hadoop Distributed FileSystem),简称HDFS。HDFS存储hadoop集群中所有存储节点上的文件。HDFS有着高容错性的特点,并且能够设计部署在低廉的硬件上,它以流式数据访问模式来存储超大文件。而且Hadoop提供高传输率来访问应用程序的数据。因此,Hadoop适合那些有着超大数据集的应用程序。Hadoop由许多元素构成,其最底模块部是分布式文件系统,该分布式文件系统存储Hadoop集群中所有存储节点上的文件。该分布式文件系统的上一层是编程模型MapReduce。编程模型MapReduce的优势在于处理大规模数据,用于对大规模数据集(大于
ITB)的并行运算。编程模型MapReduce的设计目标是方便编程人员在不熟悉分布式并行编程的情况下,将自己的程序运行在分布式系统上。编程模型MapReduce实现了 map函数和reduce函数的功能。map函数把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集。而reduce函数是把从两个或更多个map函数中通过多个线程、进程或者独立系统并行执行处理的结果集进行分类和归纳。map函数和reduce函数可能会并行运行,即使不是在同一个系统的同一时刻也可能会并行运行。在关联规则挖掘方面,现有技术方案都是基于单机形式设计。基于单机形式实现 的关联规则挖掘算法PA在针对小数据量的情况(比如十万级)能够比较好的进行规则挖掘。但是,现有技术仅用于实验室,很难应用到企业级业务,特别是互联网、移动互联网行业,业务数据量每天动辄千万级甚至亿级,这些现有技术工具已经显得无能为力。在大数据量情况下,单机版的关联规则挖掘算法PA需要花费大量时间计算规则的前项,甚至有时根本计算不出来。中国专利公开号CNlO 1042698,
公开日是2007年09月26日,名称为“一种关联规则及元规则的综合挖掘方法”的方案中公开了一种关联规则及元规则的综合挖掘方法,包括如下步骤,将时序数据库按照时间片断划分成若干部分;依次对各个部分分别扫描,并在各个部分分别形成频繁项集;再次分别扫描各部分,形成频繁项集超结构;采用递归分解法形成完全超结构;挖掘超结构形成关联规则及元规则。不足之处是,这种关联规则及元规则的综合挖掘方法是基于单机形式设计来实现的关联规则挖掘算法PA,该方法很难应用到业务数据量每天动辄千万级甚至亿级的企业级业务。

发明内容
本发明是为了针对现有技术无法处理海量数据挖掘,计算效率非常慢以及规则挖掘结果不够全面的这些不足,结合PA关联算法和Hadoop分布式计算框架,提供一种能够处理海量数据挖掘,计算效率非常快,能够较为全面的快速高效的从海量业务数据中挖掘出用于业务支撑的关联规则结果的一种支持分布式计算的关联规则挖掘算法实现方法及装置。为了实现上述目的,本发明提供一种支持分布式计算的关联规则挖掘算法实现方法,该方法利用分布式文件系统Hadoop的编程模型MapReduce对关联规则挖掘算法PA进行map函数阶段和reduce函数阶段的两阶段分解,其分解步骤为
步骤一配置作业调度器Recomjob ;
步骤二 用先验概率映射模块PriorMap读取数据集,并通过map函数将数据集的数据行转换为键值对;
步骤三用先验概率约简模块PriorReduce读取步骤二处理的键值对,并通过reduce函数随机生成包含i项集的排序规则ΤορΝ,同时计算置信度的先验概率分布值;
步骤四再用规则映射模块ParMap读取同一个数据集,并再次通过map函数将数据集的数据行转换为键值对;
步骤五再用规则约简模块ParReduce读取步骤四处理的键值对和步骤三的先验概率分布值,并通过reduce函数计算出排序规则TopN的预测精度值。本方案借助Hadoop分布式文件系统框架来对大数据进行处理,通过编程模型MapReduce,对关联规则挖掘算法PA进行map函数阶段和reduce函数阶段的两阶段分解,大数据被分散到计算集群的多台机器,计算过程分解成大量小的作业任务,实现关联规则挖掘算法PA快速高效的分布式并行计算。从而能够处理海量数据挖掘,计算效率非常快,能够较为全面的快速高效的从海量业务数据中挖掘出用于业务支撑的关联规则结果。相应地,本发明提供一种支持分布式计算的关联规则挖掘算法实现装置,包括
业务单元,用于根据业务需要,读取存储单元中的数据和算法单元中的预测精度值,并
把数据和预测精度值展示在业务中;
存储单元,用于存储HDFS分布式文件系统;
模型单元,用于根据业务特点建立应用模型;
算法单元,用于对PA关联规则挖掘算法进行map函数阶段和reduce函数阶段的两阶段分解,从而实现关联规则挖掘算法PA计算过程的分布式并行运行。作为优选,所述的模型单元包括应用模型、用户模型和偏好度模型。作为优选,所述的算法单元包括关联规则、协同过滤推荐CF和分类、聚类算法。作为优选,所述的存储单元包括=Hadoop集群、数据库GP集群和数据库Oracle集群。本发明能够达到如下效果
I、本发明基于PA算法提出了 PA算法的分布式解决方法,即基于分布式计算的关联规则挖掘算法PA。分布式解决方案中重点是借助编程模型MapReduce,对关联规则挖掘算法PA进行map函数阶段和reduce函数阶段的两阶段分解,实现计算过程的分布式并行运行。从而能够处理海量数据挖掘,计算效率非常快,能够较为全面的快速高效的从海量业务数据中挖掘出用于业务支撑的关联规则结果。2、本发明的PA关联规则挖掘算法由于是借助基于分布式计算的编程模型MapReduce提出的,用于改进单机版PA算法在海量数据情况下无法高效完成关联规则挖掘问题的一种有效解决方案。此方案能够处理千万甚至亿级的公司业务数据。


图I是本发明的一种PA关联规则挖掘算法分解成编程模型MapReduce并行计算的流程框图。图2是本发明的一种数据集在执行map函数之前先对数据集进行数据片段分片的一种示意框图。图3是本发明的一种装置实施例组成示意框图。图4是本发明中Hadoop存储系统数据分布式存储的一种示意框图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例本实施例的一种支持分布式计算的关联规则挖掘算法实现方法,如图I所示,用分布式文件系统Hadoop的编程模型MapReduce对关联规则挖掘算法PA进行map函数阶段9和reduce函数阶段10的两阶段分解,其分解步骤为
步骤一配置作业调度器Recomjobl ;
步骤二 用先验概率映射模块PriorMap3读取数据集2,并通过map函数将数据集的数据行转换为键值对;
步骤三用先验概率约简模块PriorReduce4读取步骤二处理的键值对,并通过reduce函数随机生成包含i项集的排序规则TopN8,同时计算置信度的先验概率分布值5 ;
步骤四再用规则映射模块ParMape读取同一个数据集,并再次通过map函数将数据集 的数据行转换为键值对;
步骤五再用规则约简模块ParRedUce7读取步骤四处理的键值对和步骤三的先验概率分布值,并通过reduce函数计算出排序规则TopN的预测精度值。编程模型Mapreduce处理流程可如下编程模型MapReduce处理数据集主要分为两个阶段map函数阶段和reduce函数阶段。I)如图2所示,在执行map函数阶段之前,Hadoop的内部机制要先对输入的数据集进行数据片段的分片,例如,把数据集2分成数据块D1、数据块D2、数据块D3、……、数据块Dn这些数据片段的分片,从而把大数据分成若干小数据,便于把数据分布到分布式系统中运行。2)被分配了 map函数任务的节点读取与该节点对应的数据片段,并从读取的数据片段中解析出键值对(key, value),把键值对传递给用户自定义的map函数,最后在本地磁盘生成并输出中间键值对。3) reduce函数任务的节点读取map函数阶段产生的与其对应的键值对。由于可能许多不同的键key会映射到相同的reduce函数任务的节点任务上,reduce函数任务的节点会对键key进行shuffle。reduce函数任务的节点将键key和它相对应的值value的集合传递给用户自定义的reduce函数,reduce函数结束后会写到reduce函数相对应的文件系统。4)当所有的map函数任务和reduce函数任务都完成之后,编程模型MapReduce调用返回,结束程序。相应地,本发明提供一种支持分布式计算的关联规则挖掘算法实现装置,如图3所示,包括
业务单元14,用于根据业务需要,读取存储单元中的数据和算法单元中的预测精度值,并把数据和预测精度值展示在业务中;
存储单元11,用于存储HDFS分布式文件系统;
模型单元13,用于根据业务特点建立应用模型;
算法单元12,用于对PA关联规则挖掘算法进行map函数阶段和reduce函数阶段的两阶段分解,从而实现关联规则挖掘算法PA计算过程的分布式并行运行。工作过程如图I、图3所示。从图3中可以看到,整个实现方案分为模型单元11、存储单元13、算法单元12和业务单元14这四个单元。该实施例以一款冒泡堂为例进行说明。冒泡堂是一款基于安卓系统进行免费应用下载的平台,是针对户习惯和喜好开发的安卓应用商店。PA分布式关联规则挖掘算法用于冒泡堂的APP应用推荐功能“换一换”。当用户下载某个APP应用的同时,系统将为用户推荐可能感兴趣的应用。这些应用正是来自于PA分布式关联规则挖掘算法系统,用户通过点击“换一换”来查看推荐的十款相关应用。存储单元存储单元包括=Hadoop集群131、数据库GP集群132和数据库Oracle集群133。PA算法涉及的数据以应用模型的形式存储在Hadoop集群的N个数据节点上。如图4所示,Hadoop的分布式架构中包含一个主节点6和N个数据节点(数据节点Dl数据节点D2数据节点D3,……,数据节点Dn)。主节点管理文件系统的命名看见,它维护着整个文件系统,数据节点是文件系统的工作节点,它根据需要存储并检索数据块,并定期向主节点发送它们存储的块的列表。在任务的执行过程中,Hadoop主节点充当管理者角色,它会通过管理策略以及系统资源使用情况,将执行任务分发到各个数据节点,数据节点在接到执行任务后,读取本地数据进行相应的逻辑运算,充当任务执行者角色。PA算法充分利
用Hadoop的这种分布式架构,从Hadoop集群中读取数据,进行分布式计算,将计算结果存储在Hadoop集群中。模型单元根据业务的特点,模型单元一般包括应用模型111、用户模型112和偏好度模型113。关联规则挖掘数据模型设计为四个字段,分别是平台、应用一、应用二、日期。它表示了某个日期,某个平台,同时下载了应用一和应用二。该数据模型考虑了推荐过程中,推荐的应用共同点是必须是同一平台下。虽然现在冒泡堂是一款安卓系统Andriod,但是随着业务的发展,可能会涉及IOS, Windows Phone等其他系统的应用,因此,平台这个字段是必须的。由于应用的热门程度不一致,可能某个应用与数万个甚至几十万个应用相关,而某个应用只与几个相关。数据模型建立时考虑到这点,因此,在构建模型时一条记录只包含两个应用。虽然这样也会造成数据冗余性,但是相对于简单的将相关的应用冗余度要小;另外这样构建模型使得算法计算起来更加简单。算法单元算法单元包括关联规则121、协同过滤推荐CF122和分类、聚类算法123。PA算法只需要设定输出最好的η个规则,就可以挖掘出η个预测精度最大的规则。PA算法主要通过不断增大规则前项支持度和观察置信度来逐步逼近获得最大预测精度Ε,从而返回η个最好的关联规则。通过前项支持度和规则的置信度来量化期望预测精度,同时支持度可以修正规则的置信度。这样综合考虑了支持度和置信度对关联规则挖掘算法预测精度的影响。业务单元本实施例的推荐算法是利用推荐算法先算出推荐规则,并存储在数据库中,然后根据业务需要读取数据库中的数据展示在业务中。以冒泡堂的“换一换”为例,当用户下载某个应用,业务服务器会读取到该应用,然后通过该应用到后台的关联规则数据库Hadooop集群中读取与之关联的应用,并推荐给用户。例如当用户在冒泡堂的应用商店中,点击“UC浏览器8. 5”应用,服务器端会获取“UC浏览器8. 5”的应用编号,利用该应用编号到后台的的关联规则数据库Hadooop集群中进行查询,得到与“UC浏览器8. 5”相关的“手机QQ”、“百度搜索”等应用并显示给用户。上面结合附图描述了本发明的实施方式,但实现时不受上述实施例限制,本领域普通技术人员可以在所附权利要求的范围内做出各种变化或修改。
权利要求
1.一种支持分布式计算的关联规则挖掘算法实现方法,其特征在于,用分布式文件系统HDFS的编程模型MapReduce对关联规则挖掘算法PA进行map函数阶段和reduce函数阶段的两阶段分解,其分解步骤为 步骤一配置作业调度器Recomjob ; 步骤二 用先验概率映射模块PriorMap读取数据集,并通过map函数将数据集的数据行转换为键值对; 步骤三用先验概率约简模块PriorReduce读取步骤二处理的键值对,并通过reduce函数随机生成包含i项集的排序规则ΤορΝ,同时计算置信度的先验概率分布值; 步骤四再用规则映射模块ParMap读取同一个数据集,并再次通过map函数将数据集的数据行转换为键值对; 步骤五再用规则约简模块ParReduce读取步骤四处理的键值对和步骤三的先验概率分布值,并通过reduce函数计算出排序规则TopN的预测精度值。
2.一种支持分布式计算的关联规则挖掘算法实现装置,其特征在于,包括 业务单元,用于根据业务需要,读取存储单元中的数据和算法单元中的预测精度值,并把数据和预测精度值展示在业务中; 存储单元,用于存储HDFS分布式文件系统; 模型单元,用于根据业务特点建立应用模型; 算法单元,用于对PA关联规则挖掘算法进行map函数阶段和reduce函数阶段的两阶段分解,从而实现关联规则挖掘算法PA计算过程的分布式并行运行。
3.根据权利要求2所述的一种支持分布式计算的关联规则挖掘算法实现装置,其特征在于,所述的模型单元包括应用模型、用户模型和偏好度模型。
4.根据权利要求2所述的一种支持分布式计算的关联规则挖掘算法实现装置,其特征在于,所述的算法单元包括关联规则、协同过滤推荐CF和分类、聚类算法。
5.根据权利要求2所述的一种支持分布式计算的关联规则挖掘算法实现装置,其特征在于,所述的存储单元包括Hadoop集群、数据库GP集群和数据库Oracle集群。
全文摘要
本发明公开了一种支持分布式计算的关联规则挖掘算法实现方法及装置,用HDFS的编程模型对关联规则挖掘算法PA进行map函数阶段和reduce函数阶段的两阶段分解步骤一配置作业调度器;步骤二用先验概率映射模块读取数据集,并通过map函数将数据集的数据行转换为键值对;步骤三用先验概率约简模块读取步骤二处理的键值对,并通过reduce函数随机生成包含i项集的排序规则TopN,同时计算置信度的先验概率分布值;步骤四再用规则映射模块读取同一个数据集,并再次通过map函数将数据集的数据行转换为键值对;步骤五再用规则约简模块读取步骤四处理的键值对和步骤三的先验概率分布值,并通过reduce函数计算出排序规则TopN的预测精度值。主要用于PA分布式计算技术中。
文档编号G06F17/30GK102945240SQ20121033252
公开日2013年2月27日 申请日期2012年9月11日 优先权日2012年9月11日
发明者杨进, 张金伟 申请人:杭州斯凯网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1