CN107729555A - 一种海量大数据分布式预测方法及系统 - Google Patents
一种海量大数据分布式预测方法及系统 Download PDFInfo
- Publication number
- CN107729555A CN107729555A CN201711084630.1A CN201711084630A CN107729555A CN 107729555 A CN107729555 A CN 107729555A CN 201711084630 A CN201711084630 A CN 201711084630A CN 107729555 A CN107729555 A CN 107729555A
- Authority
- CN
- China
- Prior art keywords
- sample
- data
- decision tree
- single decision
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种海量大数据分布式预测方法及系统。该方法包括:获取输入数据;利用Hadoop分布式文件系统存储所述输入数据;将每个数据集分解为多个文件,每个文件包括多个样本;依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>;确定单决策树的最佳训练样本规模;根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;根据所述规则集集合确定多决策树预测器;利用所述多决策树预测器对待预测数据进行预测。采用本发明的预测方法及系统,在保证预测准确率的情况下,缩短了分类预测器的计算时间,提高了分类预测器的执行效率。
Description
技术领域
本发明涉及海量大数据分析领域,特别是涉及一种海量大数据分布式预测方法及系统。
背景技术
随着互联网时代的到来,网络技术和信息技术水平飞速提升,各行业数据呈现快速增长趋势,现代社会进入信息时代和“大数据”时代,国际数据公司的报告指出,到2020年,全世界产生的数据将达到35.2ZB。
数据的爆炸式增长,使得传统数据分析和处理手段承受巨大冲击,采用传统方法进行数据分析已经远远不能达到日渐增长的数据需求。例如,在医疗领域,医院数据库中存储着大量病人的体检信息,医生需要从中发现和分析某些病因和症状,并据此对病人病情做出诊断。在经济领域中,股票交易每时每刻都在发生,影响着行情变化,分析员需要通过对大量的历史交易信息进行分析以预测股票的未来走势和发展规律。在地质灾害监测中,大量数据随时都在通过传感器、卫星等通信设备传送至有关部门的信息中心,信息中心的相关人员需要对这些数据分析和处理,判断灾害是否发生,得出诱导灾害发生的原因。在互联网中,商家需要在海量信息面前快速发现用户感兴趣的内容,以迅速找到商机。因此,如何从海量大数据中快速对潜在的隐患进行预测和超前预警,是各相关领域近年的研究热点之一。
分类模型技术作为数据挖掘中常用的具有实际应用价值的技术之一,可用于快速挖掘海量大数据中的潜在有用信息。分类方法是通过构造一个分类器模型,将含有不同属性值的数据对应的预测划分为某些具体的类别,因此分类模型可以作为分类预测器使用,以对测试样本进行类别预测。决策树作为一种有效的分类器,是各行业广泛采用的预测模型。但面对海量大数据,由于传统算法的执行时间与样本大小有关,当样本规模增长时,算法执行时间也随之增长,准确率提高达到瓶颈。
发明内容
本发明的目的是提供一种海量大数据分布式预测方法及系统,以降低预测的执行时间,提高准确率。
为实现上述目的,本发明提供了如下方案:
一种海量大数据分布式预测方法,所述方法包括:
获取输入数据,一个数据为一个样本;
利用Hadoop分布式文件系统存储所述输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储;
将每个数据集分解为多个文件,每个文件包括多个所述样本;
依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,其中Num表示所述样本对应的编号,Data表示所述样本的数据;
确定单决策树的最佳训练样本规模;
根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;
根据所述规则集集合确定多决策树预测器;
利用所述多决策树预测器对待预测数据进行预测。
可选的,所述将每个数据集分解为多个文件之前,还包括:
删除所述数据集中重复和格式不正确的数据,得到清洗后的数据集。
可选的,所述依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,具体包括:
利用公式Num=(int)id/S′获得样本对应的编号,其中id为所述输入数据中样本的序号,S′为硬件系统相关的常数;
输出所述样本对应的键值对<Num,Data>。
可选的,所述确定单决策树的最佳训练样本规模,具体包括:
随机抽取样本集合中n%的样本数据作为所述单决策树的第一训练样本,进行单决策树训练,得到第一单决策树预测器;编号相同的样本同属于一个样本集合;
从所述样本集合中剩余1-n%的样本数据中随机抽取n%作为第一测试样本,对所述第一单决策树预测器进行测试,获得第一测试样本的预测分类结果及预测准确率;
随机抽取所述样本集合中2n%的样本数据作为所述单决策树的第二训练样本,进行单决策树训练,得到第二单决策树预测器;
从所述样本集合中剩余的1-2n%的样本数据中随机抽取2n%作为第二测试样本,对所述第二单决策树预测器进行测试,获得第二测试样本的预测分类结果及预测准确率;
获得所述第二测试样本的预测准确率与第一测试样本的预测准确率之间的差值;
判断所述差值是否小于设定阈值,得到所述第一判断结果;
当所述第一判断结果表示所述差值小于设定阈值时,将2n%确定为所述单决策树的最佳训练样本规模;
当所述第一判断结果表示所述差值不小于设定阈值时,随机抽取所述样本中3n%的样本数据作为所述单决策树的第三训练样本,进行单决策树训练。
可选的,所述确定单决策树的最佳训练样本规模时,采用分类回归决策树建立单决策树,同时将奖惩机制融入最佳属性选择过程,最终的属性选择措施为基尼指标乘以奖惩系数。
可选的,所述根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合,具体包括:
根据所述最佳训练样本规模利用b个线程并行地对一个样本集合进行训练,获得b个单决策树对应的规则集;编号相同的样本同属于一个样本集合;
所有样本集合并行地进行训练,得到规则集集合。
可选的,所述依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>之后,还包括:
对所有的键值对进行混合、排序。
一种海量大数据分布式预测系统,所述系统包括:
输入数据获取模块,用于获取输入数据,一个数据为一个样本;
数据存储模块,用于利用Hadoop分布式文件系统存储所述输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储;
数据分解模块,用于将每个数据集分解为多个文件,每个文件包括多个样本;
样本处理模块,用于依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,其中Num表示所述样本对应的编号,Data表示所述样本的数据;
最佳训练规模确定模块,用于确定单决策树的最佳训练样本规模;
样本训练模块,用于根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;
多决策树预测器确定模块,用于根据所述规则集集合确定多决策树预测器,所述多决策树预测器用于对所述输入数据进行预测。
可选的,所述系统还包括:
数据清洗模块,用于将每个数据集分解为多个文件之前,删除所述数据集中重复和格式不正确的数据,得到清洗后的数据集。
可选的,所述最佳训练规模确定模块,具体包括:
第一训练单元,用于随机抽取样本集合中n%的样本数据作为所述单决策树的第一训练样本,进行单决策树训练,得到第一单决策树预测器;编号相同的样本同属于一个样本集合;
第一预测分类结果及预测准确率获取单元,用于从所述样本集合中剩余1-n%的样本数据中随机抽取n%作为第一测试样本,对所述第一单决策树预测器进行测试,获得第一测试样本的预测分类结果及预测准确率;
第二训练单元,用于随机抽取所述样本集合中2n%的样本数据作为所述单决策树的第二训练样本,进行单决策树训练,得到第二单决策树预测器;
第二预测分类结果及预测准确率获取单元,还用于从所述样本集合中剩余的1-2n%的样本数据中随机抽取2n%作为第二测试样本,获得第二测试样本的预测分类结果及预测准确率;
差值获取单元,用于获得所述第二测试样本的预测准确率与第一测试样本的预测准确率之间的差值;
判断单元,用于判断所述差值是否小于设定阈值,得到所述第一判断结果;
最佳训练样本规模确定单元,用于当所述第一判断结果表示所述差值小于设定阈值时,将2n%确定为所述单决策树的最佳训练样本规模;
第三训练单元,用于当所述第一判断结果表示所述差值不小于设定阈值时,随机抽取所述样本集合中3n%的样本数据作为所述单决策树的第三训练样本,进行单决策树训练。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明为粗粒度和线程细粒度相结合的分布式预测方法及系统。采用基于Hadoop的MapReduce编程模型,通过选择最佳规模的训练样本,使得分类器处理海量大数据时,可在不影响算法准确率前提下,将海量大数据训练样本分布式存储于各子节点,进而采用一种粗粒度与细粒度多线程结合的分布式编程模型构建分布式决策树分类预测器,对待测数据进行预测。其粗粒度体现在多决策树预测器构建时在Mapper阶段对数据集进行划分,划分多个文件,在Reduce阶段进行多决策树预测器规则集的训练,并对规则集进行汇总得到最终多决策树预测器的规则集集合,根据规则集集合确定多决策树预测器。测试数据根据最终得到的多决策树预测器可得到预测分类结果。其细粒度体现在将Reduce阶段多决策树预测器的训练过程进一步采用多线程方式使各个单决策树训练过程同时并行进行,且多个Reducer之间也并行进行,以进一步缩短多决策树预测器构建时间。在保证预测准确率的情况下,尽可能的缩短了分类预测器的计算时间,提高了分类预测器的执行效率。实验结果表明,本发明所构建的分类预测器及其预测系统在保证分类预测性能前提下,比普通预测器具有更好的加速比、计算效率和可扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明海量大数据分布式预测方法的流程示意图;
图2为本发明海量大数据分布式预测方法中获得规则集集合的流程示意图;
图3为本发明海量大数据分布式预测方法中Mapper阶段的示意图;
图4为本发明海量大数据分布式预测方法中Reducer阶段的示意图;
图5为本发明海量大数据分布式预测方法中Reducer阶段对样本进行并行训练的示意图;
图6为本发明海量大数据分布式预测系统的结构示意图;
图7为本发明具体实施方式1中确定最佳样本规模时样本大小与准确率关系图;
图8为本发明具体实施方式2中单处理器计算节点和采用粗粒度分布式多决策树分类器时任务执行比较图;
图9为本发明具体实施方式2中500×673以上规模输入样本基于粗粒度分布式多决策树分类器运行结果;
图10为本发明具体实施方式2中100×673以下的样本在粗粒度分布式多决策树分类器架构和粗粒度与细粒度多线程结合的分布式多决策树分类器训练时的加速比性能比较图;
图11为本发明具体实施方式2中粗粒度分布式多决策树分类器架构和粗粒度与细粒度多线程结合的分布式多决策树分类器两种方法的CPU效率性能比较图;
图12为本发明具体实施方式2中两种预测器的执行时间随样本大小增加呈线性增长关系图;
图13为本发明具体实施方式2中两种预测器的预测性能的可扩展性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明海量大数据分布式预测方法的流程示意图。如图1所示,所述方法包括:
步骤100:获取输入数据。输入数据中一个数据即为一个样本,称为样本或样本数据。
步骤200:利用Hadoop分布式文件系统存储输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储。
由于输入数据的规模较大,因其样本尺寸超出传统设备存储能力,无法存储在一台计算机上;而且算法的执行时间与样本大小有关,当样本规模增长时,算法执行时间也随之增长,为了保证算法可以在有限的时间执行完成,高效快速进行决策树预测器的构建,通过增加计算和存储空间,可以有效提高预测模型时间性能,而分布式存储系统作为一种大数据分析计算环境,具有成本低、扩展性好等优点,本发明中采用Hadoop分布式文件系统HDFS(Hadoop Distributed File System,HDFS)。
步骤300:将每个数据集分解为多个文件。将输入数据存入HDFS分布式文件存储系统之后,在InputFormat中进行格式化处理,此处格式化处理主要是将HDFS分布式文件存储系统中保存的64M大小的数据集,进一步分解为多个文件,每个文件包括多个样本。例如,将输入数据划分为m个64M大小的数据集存储在HDFS分布式文件存储系统,将每个数据集分解为n个文件,则经过此步骤之后,输入数据为m*n个文件,每个文件包括多个样本。
步骤400:依次对每个文件的样本进行处理,输出键值对<Num,Data>。对样本进行处理时,以文件为单位,文件中的每个样本对应输出一个键值对<Num,Data>,其中Num表示样本对应的编号,Data表示所述样本的数据。输出键值对时,首先利用公式Num=(int)id/S′获得样本对应的编号,其中id为所述输入数据中样本的序号,输入数据在输入时,会默认有一个序号,每个样本对应唯一一个不同于其他样本的序号;S′为硬件系统相关的常数;然后设置编号Num作为输出的Key键值,每一个样本的数据Data作为输出的Value,即Mapper的输出键值对为<Num,Data>。
步骤300和步骤400为多决策树预测器构建过程中Map阶段,Map阶段主要实现输入数据分解,将数据集分解为多个文件;同时包括数据清洗和整合分配两个过程。
数据清洗:用于删除数据集中重复和格式不正确的数据,以保证训练数据有效性。
整合分配:对数据进行逐条处理,并设置编号Num作为输出的Key键值,每一条数据Data作为输出的Value,即Mapper的输出键值对为<Num,Data>。Num计算方法为Num=(int)id/S',其中id为输入数据集各样本序号,S′为硬件系统相关的常数,S′=a×b×c,其中a,c根据分布式预测系统运行环境确定,b根据输入数据最佳样本规模确定。
步骤500:确定单决策树的最佳训练样本规模。在Mapper阶段输出键值对<Num,Data>,在Reducer阶段输入键值对<Num,Data>,依次对样本集合进行训练,构建单决策树,从而构建多决策树预测器。编号相同的样本同属于一个样本集合,因此,编号相同的样本对应构建一个单决策树。在构建单决策树之前,需要首先确定单决策树的最佳训练规模,从而根据最佳训练规模进行训练构建单决策树。
具体地,确定单决策树的最佳训练规模过程为:
随机抽取样本集合中n%的样本数据作为所述单决策树的第一训练样本,进行单决策树训练,得到第一单决策树预测器;
从所述样本集合中剩余1-n%的样本数据中随机抽取n%作为第一测试样本,对所述第一单决策树预测器进行测试,获得第一测试样本的预测分类结果及预测准确率;
随机抽取所述样本集合中2n%的样本数据作为所述单决策树的第二训练样本,进行单决策树训练,得到第二单决策树预测器;
从所述样本集合中剩余的1-2n%的样本数据中随机抽取2n%作为第二测试样本,对所述第二单决策树预测器进行测试,获得第二测试样本的预测分类结果及预测准确率;
获得所述第二测试样本的预测准确率与第一测试样本的预测准确率之间的差值;
判断所述差值是否小于设定阈值,得到所述第一判断结果;
当所述第一判断结果表示所述差值小于设定阈值时,将2n%确定为所述单决策树的最佳训练样本规模;
当所述第一判断结果表示所述差值不小于设定阈值时,随机抽取所述样本中3n%的样本数据作为所述单决策树的第三训练样本,进行单决策树训练。
n%是指样本集合中的一定比例数据,例如n%可以为10%,也可以为20%,通常n%为10%至90%之间。以10%为例,首先选取10%(n%)作为单决策树预测器一次训练样本,进行单决策树预测器训练;再从剩余90%(1-n%)的数据中随机抽取10%作为一次测试样本,得到测试样本预测分类结果及其预测准确率;选取20%(2n%)作为单决策树预测器二次训练样本,进行单决策树预测器训练;再从剩余80%(1-2n%)的数据中随机抽取20%作为二次测试样本,得到测试样本预测分类结果及其预测准确率;判断两次预测的准确率的差值是否小于设定的阈值。当训练样本数量达到一定比例时,预测准确率基本保持恒定,因此通过判断差值是否小于设定阈值来确定预测准确率是否达到稳定,当预测准确率达到稳定即差值小于设定阈值时,此时的样本规模即为输入文件数据针对该单决策树预测器的最佳样本规模Nbest。
其中预测准确率Acc计算方法如下:
Acc=预测正确样本个数/测试样本总个数*100%。
步骤600:根据最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则。对每个样本集合训练后得到单决策树对应的规则,将所有样本训练完成后,会得到所有的规则集,将其汇总,得到规则集集合。规则集集合即为构建多决策树的规则。
对所有样本并行地进行训练包括两个并行:
(1)根据最佳训练样本规模利用b个线程并行地对一个样本集合进行训练,获得b个单决策树对应的规则集。此处是指一个Reduce进程产生b个线程对一个样本集合进行训练,一个Reduce进程处理一个单决策树对应的一个样本集合,即处理一个编号的样本集合。
(2)所有样本集合并行地进行训练,得到规则集集合。也就是多个Reduce进程并行进行。
对所有样本进行并行训练,在mapred-site.xml文件里设置每个TaskTracker跟踪N1个reduce任务,N1由预测系统包含的CPU核数决定;在主程序控制reducer个数为N2,平均分配到N3个计算节点,N3由预测系统的Datanode节点数(子节点)决定。假设S′=a×b×c为reduce输入样本数,那么将训练集分配至a个reduce任务计算,此时,a=N2;每个reduce处理b×c个样本,在每个reduce进程中产生b个线程各处理c个样本,此处c=Nbest。
步骤700:根据规则集集合确定多决策树预测器。
步骤500-步骤700为Reduce阶段。Reduce阶段主要实现多决策树预测器任务的分布式并行化,在Map阶段产生<Num,Data>输出(步骤300-步骤400),然后采用Shuffle技术处理后作为Reduce的输入,每个Reducer处理一个编号的样本集,完成对该样本集训练,最后输出训练规则集。采用Shuffle技术对所有的键值对<Num,Data>进行混合、排序,从而能够使一个Reducer更方便的处理一个编号Num的样本。单个决策树在构建时,采用分类回归决策树CART(Classification and RegressionTree)进行建树,同时将奖惩机制融入最佳属性选择过程。最终的属性选择措施为Gini指标乘以奖惩系数。该奖惩系数由奖惩机制确定。该步可提高海量大数据用于非平衡数据时少数类预测性能。
步骤800:利用所述多决策树预测器对待预测数据进行预测。
图2为本发明分布式预测方法中获得规则集集合的流程示意图。如图2所示,包括:InputFormat设计、Mapper设计、Reducer设计。
InputFormat设计:
大规模输入样本文件首先被存放于在HDFS中,HDFS将其切分成64M大小的数据块block,并额外产生2个副本。MapReduce计算框架中,输入数据来自于HDFS,默认Map输入是一个与block块大小相同的数据,大约包含(3,000,000条4属性的样本)。如果将这些数据作为多决策树中每个子决策树的输入,将使得算法计算任务过于繁重,同时,准确率提高也不明显。因此,对于样本大小为S的输入数据,InputFormat阶段需要格式化训练样本,其样本数为S′,则对大小为S的样本,将输入样本分为份数据集,作为决策树的输入。
Hadoop默认的InputFormat为TextInputFormat,只能一行一行地读取文件内容,不能满足大小为S′的读取。为此,本发明设计读取样本为S′的InputFormat,每个Map任务对应大小为S1的样本。
2.Mapper设计
MapReduce计算采用<Key-Value>对的形式作为输入输出格式。本发明Map设计中,每个Mapper对应一个S1大小的样本,每个map方法对应一个split分片数据。Map阶段完成数据清洗和整合分配任务。
(1)数据清洗:原始数据一般存在数据丢失、错误或数据重复等问题,导致预测器在分类预测过程中容易发生误判或终止的问题。为此,本发明Map阶段任务包括删除重复和格式不正确的数据,以保证训练数据有效性。
(2)整合分配:S1个样本数据进入Mapper中,map方法对数据进行一条一条处理,并设置编号Num=(int)id/S1作为输出的Key,每一条数据Data作为输出的Value,即Mapper的输出为<Num,Data>,如图3所示,图3为本发明分布式预测方法中Mapper阶段的示意图;
Map实现流程如下:
3.Reducer设计
Reduce阶段主要实现决策树任务的分布式并行化,在Map阶段产生<Num,Data>输出,经过Shuffle后作为Reduce的输入,每个Reducer处理一个编号的样本集,完成对该样本集训练。最后输出训练规则集。实现过程如图4所示,图4为本发明分布式预测方法中Reducer阶段的示意图。
Reduce实现流程如下:
Hadoop分布式计算模式是将任务分发到各个节点执行的,属于粗粒度计算,从任务的角度来说,是均衡的。但是,任务在各个节点上的计算分配会存在不均衡现象,不能充分发挥节点的计算性能。除此之外,随着训练样本的增大,Hadoop会产生大量Map、Reduce计算任务,这些开销也会降低整体任务的执行效率。因此,本发明从线程计算出发,在Hadoop平台中设计细粒度预测器训练过程。
4.多线程设计
Hadoop平台设计中,在文件里设置每个TaskTracker跟踪N1个reduce任务,N1由预测系统包含的CPU核数决定;在主程序控制reducer个数为N2,平均分配到N3个计算节点,N3由预测系统的Datanode节点数决定;每个reducer处理多个决策树预测器训练过程。假设S′=a×b×c为reduce输入样本数,那么本发明多线程分布式多决策树预测器将训练集分配至a个reduce任务计算,因此a=N2;每个reduce处理b×c个样本,在每个reduce进程中产生b个线程各处理c个样本,此处c=Nbest。这种实现方式,减少了Map、Reduce任务数,降低了Hadoop的调度开销。实现思路如图5所示。图5为本发明分布式预测方法中Reducer阶段对样本进行并行训练的示意图;
实现过程如下:
图6为本发明分布式预测系统的结构示意图。如图6所示,所述系统包括:
输入数据获取模块601,用于获取输入数据,一个数据为一个样本;
数据存储模块602,用于利用Hadoop分布式文件系统存储所述输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储;
数据分解模块603,用于将每个数据集分解为多个文件,每个文件包括多个样本;
样本处理模块604,用于依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,其中Num表示所述样本对应的编号,Data表示所述样本的数据;
最佳训练规模确定模块605,用于确定单决策树的最佳训练样本规模;
样本训练模块606,用于根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;
多决策树预测器确定模块607,用于根据所述规则集确定多决策树预测器,所述多决策树预测器用于对所述输入数据进行预测。
本发明硬件环境包括Namenode管理节点及Datanode子节点,基于该硬件环境搭建包括Hadoop架构,其中有HDFS分布式文件存储系统、预测器训练单元、预测器预测分类单元、预测器可视化界面。其中HDFS分布式文件存储系统用于存储输入数据,预测器训练单元用于进行多决策树预测器训练,预测器预测分类单元根据训练得到的多决策树预测器规则集,得到测试集预测分类结果,预测器可视化界面用于可视化显示预测分类结果。
本发明具体实施方式1:
最佳样本规模Nbest确定方法:以UCI数据库中sonar(208个样本,60个属性)、blood(748个样本,4个属性)、poker-8_vs_6(1477个样本,10个属性)数据集为例,研究样本大小与准确率的关系。研究时,在属性不变的前提下选取样本中0.1倍至1倍不同比例样本数作为训练数据,共10份样本,10折交叉验证得到训练样本大小与准确率关系。图7给出了这三种数据,训练样本规模与准确率的关系。其中横轴为训练样本规模,其大小反映了训练样本规模占原数据集中样本大小的比例。纵轴为预测准确率,准确率为1对应100%预测准确率,说明全部测试样本预测准确;0.9对应90%预测准确率,说明100个测试样本中90个预测准确;其他依次类推。可以看出,在样本规模从0.1倍逐渐开始增长时,算法准确率随着样本数增加而提高。在样本规模较小时提升较快,当样本数足够多时,准确率随样本数增加提升较小。二者近似呈对数关系。可以看出,对sonar数据来说,在样本规模达到0.6倍时,准确率基本不变,而对blood和poker-8_vs_6数据,样本规模在0.9和0.8倍时,准确率基本不变。因此三个数据集每个样本规模就依次选为sonar:0.6*208*60;blood:0.9*748*4;poker-8_vs_6:0.8*1477*10。
本发明具体实施方式2:
选用blood数据源4属性数据,根据单决策树最佳样本规模确定方法,确定输入样本规模为748*0.9≈673,共分成16组数据大小不同的训练样本,大小分别为10×673、20×673、30×673、40×673、50×673、60×673、70×673、80×673、90×673、100×673、1000×673、1500×673、2000×673、2500×673和3000×673个。
图8为10~100(×673)个训练样本在单处理器计算节点和采用粗粒度分布式多决策树分类器时任务执行比较。表1为具体实验结果数据。从图8中可以看出,对传统单节点决策树预测器来说,随着样本大小的增长,任务执行时间将大幅增长,而粗粒度分布式多决策树分类器计算时间较短,且增长速度缓慢。从表中可以看出,样本大小为(10、20、30)×673时,粗粒度分布式多决策树分类器加速比和效率较低,原因是粗粒度分布式多决策树分类器平台任务调度和通信开销造成的,粗粒度分布式多决策树分类器不适合处理小量数据。当数据逐渐增大时,加速比和效率都有明显提高,在样本规模从10×673增大为100×673时,扩大10倍情况下,任务执行时间仅从20s增加为43s。
图9为500×673以上规模输入样本基于粗粒度分布式多决策树分类器运行结果,此时,样本过大导致单处理器计算节点上的决策树训练模型无法完成训练,导致模型失效。可以看出,当训练样本规模较大时,粗粒度分布式多决策树分类器训练任务均衡分布在各个节点执行,随着数据的增长,执行时间近似呈线性增长关系。
表1样本大小为10~100(×673)时基于单节点时普通多决策树分类器和粗粒度分布式多决策树分类器训练时间实验结果对比
图10比较了100×673以下的样本在粗粒度分布式多决策树分类器架构和粗粒度与细粒度多线程结合的分布式多决策树分类器训练时的加速比性能,两种预测分类器随着样本的增加,加速比都有提升,其中,分布式多决策树预测器训练时提升更快。图10中Hadoop表示粗粒度分布式多决策树分类器,Hadoop+Threads表示粗粒度与细粒度多线程结合的分布式多决策树分类器。图11比较了两种方法的CPU效率性能,当样本数大于30×673时,加速比及CPU效率都提高明显,且粗粒度与细粒度多线程结合的分布式多决策树预测器更能发挥CPU性能。从表中执行时间来看,粗粒度与细粒度多线程结合的分布式多决策树预测器在100×以下样本时,受平台开销的限制,预测器执行时间为20s,而在样本规模为500×以上时,单节点多决策树预测器受计算机CPU和内存限制不能完成计算任务。从图12可以看出,两种预测器的执行时间随样本大小增加呈线性增长关系,但粗粒度多决策树预测器训练时的执行时间一直处于较低状态且增长速度较低,说明了本发明提出的粗粒度与细粒度多线程结合的分布式预测器较普通分布式多决策树分类器计算性能有了大幅提升。
表2(Hadoop)与(Hadoop+Threads)详细实验结果对比
其中:Hadoop代表粗粒度分布式多决策树分类器;Hadoop+Threads代表粗粒度与细粒度多线程结合的分布式多决策树分类器。
为了验证预测器预测性能的可扩展性,实验选取1000×673大小的样本数据,分别在节点数为2、3、4的Hadoop平台测试。实验结果如图13所示。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种海量大数据分布式预测方法,其特征在于,所述方法包括:
获取输入数据,一个数据为一个样本;
利用Hadoop分布式文件系统存储所述输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储;
将每个数据集分解为多个文件,每个文件包括多个所述样本;
依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,其中Num表示所述样本对应的编号,Data表示所述样本的数据;
确定单决策树的最佳训练样本规模;
根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;
根据所述规则集集合确定多决策树预测器;
利用所述多决策树预测器对待预测数据进行预测。
2.根据权利要求1所述的方法,其特征在于,所述将每个数据集分解为多个文件之前,还包括:
删除所述数据集中重复和格式不正确的数据,得到清洗后的数据集。
3.根据权利要求1所述的方法,其特征在于,所述依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,具体包括:
利用公式Num=(int)id/S′获得样本对应的编号,其中id为所述输入数据中样本的序号,S′为硬件系统相关的常数;
输出所述样本对应的键值对<Num,Data>。
4.根据权利要求1所述的方法,其特征在于,所述确定单决策树的最佳训练样本规模,具体包括:
随机抽取样本集合中n%的样本数据作为所述单决策树的第一训练样本,进行单决策树训练,得到第一单决策树预测器;编号相同的样本同属于一个样本集合;
从所述样本集合中剩余1-n%的样本数据中随机抽取n%作为第一测试样本,对所述第一单决策树预测器进行测试,获得第一测试样本的预测分类结果及预测准确率;
随机抽取所述样本集合中2n%的样本数据作为所述单决策树的第二训练样本,进行单决策树训练,得到第二单决策树预测器;
从所述样本集合中剩余的1-2n%的样本数据中随机抽取2n%作为第二测试样本,对所述第二单决策树预测器进行测试,获得第二测试样本的预测分类结果及预测准确率;
获得所述第二测试样本的预测准确率与第一测试样本的预测准确率之间的差值;
判断所述差值是否小于设定阈值,得到所述第一判断结果;
当所述第一判断结果表示所述差值小于设定阈值时,将2n%确定为所述单决策树的最佳训练样本规模;
当所述第一判断结果表示所述差值不小于设定阈值时,随机抽取所述样本中3n%的样本数据作为所述单决策树的第三训练样本,进行单决策树训练。
5.根据权利要求4所述的方法,其特征在于,所述确定单决策树的最佳训练样本规模时,采用分类回归决策树建立单决策树,同时将奖惩机制融入最佳属性选择过程,最终的属性选择措施为基尼指标乘以奖惩系数。
6.根据权利要求1所述的方法,其特征在于,所述根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合,具体包括:
根据所述最佳训练样本规模利用b个线程并行地对一个样本集合进行训练,获得b个单决策树对应的规则集;编号相同的样本同属于一个样本集合;
所有样本集合并行地进行训练,得到规则集集合。
7.根据权利要求1所述的方法,其特征在于,所述依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>之后,还包括:
对所有的键值对进行混合、排序。
8.一种海量大数据分布式预测系统,其特征在于,所述系统包括:
输入数据获取模块,用于获取输入数据,一个数据为一个样本;
数据存储模块,用于利用Hadoop分布式文件系统存储所述输入数据;所述Hadoop分布式文件系统将所述输入数据划分为多个64M大小的数据集进行存储;
数据分解模块,用于将每个数据集分解为多个文件,每个文件包括多个样本;
样本处理模块,用于依次对每个文件的样本进行处理,每一个样本对应输出键值对<Num,Data>,其中Num表示所述样本对应的编号,Data表示所述样本的数据;
最佳训练规模确定模块,用于确定单决策树的最佳训练样本规模;
样本训练模块,用于根据所述最佳训练样本规模对所有样本并行地进行训练,得到规则集集合;所述规则集集合包括多个规则集,每个规则集包括多个单决策树对应的规则;
多决策树预测器确定模块,用于根据所述规则集集合确定多决策树预测器,所述多决策树预测器用于对所述输入数据进行预测。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括:
数据清洗模块,用于将每个数据集分解为多个文件之前,删除所述数据集中重复和格式不正确的数据,得到清洗后的数据集。
10.根据权利要求8所述的系统,其特征在于,所述最佳训练规模确定模块,具体包括:
第一训练单元,用于随机抽取样本集合中n%的样本数据作为所述单决策树的第一训练样本,进行单决策树训练,得到第一单决策树预测器;编号相同的样本同属于一个样本集合;
第一预测分类结果及预测准确率获取单元,用于从所述样本集合中剩余1-n%的样本数据中随机抽取n%作为第一测试样本,对所述第一单决策树预测器进行测试,获得第一测试样本的预测分类结果及预测准确率;
第二训练单元,用于随机抽取所述样本集合中2n%的样本数据作为所述单决策树的第二训练样本,进行单决策树训练,得到第二单决策树预测器;
第二预测分类结果及预测准确率获取单元,还用于从所述样本集合中剩余的1-2n%的样本数据中随机抽取2n%作为第二测试样本,获得第二测试样本的预测分类结果及预测准确率;
差值获取单元,用于获得所述第二测试样本的预测准确率与第一测试样本的预测准确率之间的差值;
判断单元,用于判断所述差值是否小于设定阈值,得到所述第一判断结果;
最佳训练样本规模确定单元,用于当所述第一判断结果表示所述差值小于设定阈值时,将2n%确定为所述单决策树的最佳训练样本规模;
第三训练单元,用于当所述第一判断结果表示所述差值不小于设定阈值时,随机抽取所述样本集合中3n%的样本数据作为所述单决策树的第三训练样本,进行单决策树训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711084630.1A CN107729555B (zh) | 2017-11-07 | 2017-11-07 | 一种海量大数据分布式预测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711084630.1A CN107729555B (zh) | 2017-11-07 | 2017-11-07 | 一种海量大数据分布式预测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729555A true CN107729555A (zh) | 2018-02-23 |
CN107729555B CN107729555B (zh) | 2020-10-09 |
Family
ID=61222708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711084630.1A Active CN107729555B (zh) | 2017-11-07 | 2017-11-07 | 一种海量大数据分布式预测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729555B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846695A (zh) * | 2018-06-07 | 2018-11-20 | 中国联合网络通信集团有限公司 | 终端更换周期的预测方法及装置 |
CN109976916A (zh) * | 2019-04-04 | 2019-07-05 | 中国联合网络通信集团有限公司 | 一种云资源需求判定方法及系统 |
CN110633795A (zh) * | 2018-06-22 | 2019-12-31 | 国际商业机器公司 | 利用脉冲神经网络管理认知存储系统的数据集 |
CN111309852A (zh) * | 2020-03-16 | 2020-06-19 | 青岛百洋智能科技股份有限公司 | 生成可视化决策树(集)模型的方法、系统、装置及存储介质 |
CN111930476A (zh) * | 2019-05-13 | 2020-11-13 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN113742472A (zh) * | 2021-09-15 | 2021-12-03 | 达而观科技(北京)有限公司 | 一种基于客服营销场景下的数据挖掘方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094800A1 (en) * | 2008-10-09 | 2010-04-15 | Microsoft Corporation | Evaluating Decision Trees on a GPU |
CN102214213A (zh) * | 2011-05-31 | 2011-10-12 | 中国科学院计算技术研究所 | 一种采用决策树的数据分类方法和系统 |
CN104679911A (zh) * | 2015-03-25 | 2015-06-03 | 武汉理工大学 | 一种基于离散弱相关的云平台决策森林分类方法 |
CN105447525A (zh) * | 2015-12-15 | 2016-03-30 | 中国科学院软件研究所 | 一种数据预测分类方法及装置 |
CN107194468A (zh) * | 2017-04-19 | 2017-09-22 | 哈尔滨工程大学 | 面向情报大数据的决策树增量学习方法 |
-
2017
- 2017-11-07 CN CN201711084630.1A patent/CN107729555B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094800A1 (en) * | 2008-10-09 | 2010-04-15 | Microsoft Corporation | Evaluating Decision Trees on a GPU |
CN102214213A (zh) * | 2011-05-31 | 2011-10-12 | 中国科学院计算技术研究所 | 一种采用决策树的数据分类方法和系统 |
CN104679911A (zh) * | 2015-03-25 | 2015-06-03 | 武汉理工大学 | 一种基于离散弱相关的云平台决策森林分类方法 |
CN105447525A (zh) * | 2015-12-15 | 2016-03-30 | 中国科学院软件研究所 | 一种数据预测分类方法及装置 |
CN107194468A (zh) * | 2017-04-19 | 2017-09-22 | 哈尔滨工程大学 | 面向情报大数据的决策树增量学习方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846695A (zh) * | 2018-06-07 | 2018-11-20 | 中国联合网络通信集团有限公司 | 终端更换周期的预测方法及装置 |
CN110633795A (zh) * | 2018-06-22 | 2019-12-31 | 国际商业机器公司 | 利用脉冲神经网络管理认知存储系统的数据集 |
US11823038B2 (en) | 2018-06-22 | 2023-11-21 | International Business Machines Corporation | Managing datasets of a cognitive storage system with a spiking neural network |
CN109976916A (zh) * | 2019-04-04 | 2019-07-05 | 中国联合网络通信集团有限公司 | 一种云资源需求判定方法及系统 |
CN111930476A (zh) * | 2019-05-13 | 2020-11-13 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN111930476B (zh) * | 2019-05-13 | 2024-02-27 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN111309852A (zh) * | 2020-03-16 | 2020-06-19 | 青岛百洋智能科技股份有限公司 | 生成可视化决策树(集)模型的方法、系统、装置及存储介质 |
CN111309852B (zh) * | 2020-03-16 | 2021-09-03 | 青岛百洋智能科技股份有限公司 | 生成可视化决策树集模型的方法、系统、装置及存储介质 |
CN113742472A (zh) * | 2021-09-15 | 2021-12-03 | 达而观科技(北京)有限公司 | 一种基于客服营销场景下的数据挖掘方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107729555B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729555A (zh) | 一种海量大数据分布式预测方法及系统 | |
Leydesdorff et al. | Scientometrics | |
Hauke et al. | Recent development of social simulation as reflected in JASSS between 2008 and 2014: A citation and co-citation analysis | |
CN104798043B (zh) | 一种数据处理方法和计算机系统 | |
Shao et al. | An alternative method for analyzing dimensional interactions of urban carrying capacity: Case study of Guangdong-Hong Kong-Macao Greater Bay Area | |
CN116108758B (zh) | 滑坡易发性评价方法 | |
Yang et al. | The cloud model based stochastic multi-criteria decision making technology for river health assessment under multiple uncertainties | |
CN109117380A (zh) | 一种软件质量评价方法、装置、设备及可读存储介质 | |
CN107203467A (zh) | 一种分布式环境下监督学习算法的基准测试方法和装置 | |
Chen et al. | Identification of λ-fuzzy measures using sampling design and genetic algorithms | |
Raimbault et al. | Space matters: Extending sensitivity analysis to initial spatial conditions in geosimulation models | |
CN114330812A (zh) | 基于机器学习的滑坡灾害风险评估方法 | |
Samadi Alinia et al. | Tehran’s seismic vulnerability classification using granular computing approach | |
CN110232119B (zh) | 基于元分析的通用智能度量模型构建方法和系统 | |
CN105243503A (zh) | 基于空间变量和logistic回归的海岸带生态安全评估方法 | |
CN113158084B (zh) | 移动轨迹数据处理的方法、装置、计算机设备及存储介质 | |
CN117408167A (zh) | 基于深度神经网络的泥石流灾害易发性预测方法 | |
CN112070129B (zh) | 地面沉降风险识别方法、装置以及系统 | |
CN110750572A (zh) | 一种科技成果启发式评价的自适应方法和装置 | |
WO2020259391A1 (zh) | 一种数据库脚本性能测试的方法及装置 | |
Wang et al. | A multi-tier inspection queueing system with finite capacity for differentiated border control measures | |
CN104102716A (zh) | 基于聚类分层抽样补偿逻辑回归的失衡数据预测方法 | |
Elwakil | Knowledge discovery based simulation system in construction | |
CN115906669A (zh) | 一种顾及负样本选取策略的密集残差网络滑坡易发性评价方法 | |
CN107463528A (zh) | 基于ks检验的高斯混合模型分裂与合并算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220622 Address after: 1704, floor 17, building 1, yard 8, Longyu North Street, Changping District, Beijing 100096 Patentee after: Beijing Hongya Huayu Technology Co.,Ltd. Address before: 030000 Yingze West Street, Taiyuan, Taiyuan, Shanxi Patentee before: Taiyuan University of Technology |
|
TR01 | Transfer of patent right |