一种大数据分类方法及系统的制作方法

文档序号:6525618阅读:208来源:国知局
一种大数据分类方法及系统的制作方法
【专利摘要】本发明公开了一种大数据分类方法及系统,方法包括:训练步骤,将输入数据划分成输入数据块,将该输入数据块生成模式字符串的分类规则{模式字符串=>类标},并将该分类规则写入Hbase数据库规则表;测试步骤,读取该输入数据块,并构造待分类模式字符串,在该Hbase数据库规则表中查找与该待分类模式字符串匹配的分类规则,并输出分类结果。由此,提供一种基于超曲面的大数据分类方法及系统,通过采用基于超曲面的覆盖算法,能在Hadoop映射/化简编程框架和Hbase分布式非关系型数据库基础上实现,且能以较低的计算代价,构建易于解释的规则模型,快速高效处理海量数据,以应对现实世界中呈爆炸式增长的数据的分类需求。
【专利说明】一种大数据分类方法及系统
【技术领域】
[0001]本发明涉及大数据分析领域,特别涉及一种基于超曲面的大数据分类方法及系统。
【背景技术】
[0002]分类是一种重要的数据分析形式,用于提取刻画重要数据类的模型。这种模型称为分类器,用于预测分类的类标号。数据分类是一个两阶段的过程,包括学习阶段和分类阶段,学习阶段即构建分类模型阶段,分类阶段即使用模型来预测给定数据的类标号。例如,我们可以建立一个分类模型,把银行贷款申请划分为安全或危险。这种分析可以帮助我们更好的全面理解数据。许多分类和预测方法来自于机器学习、模式识别和统计学。大部分算法是内存驻留的算法,通常假定数据量很小。分类有大量应用,包括欺诈检测、目标营销、性能预测、制造和医疗诊断。
[0003]现有的解决分类问题的方法有很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、k-近邻、支持向量机和基于关联规则的分类等;另外还有用于组合单一分类方法的集成学习算法,如装袋和提升/推进等。
[0004]( I)决策树
[0005]决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。
[0006]主要的决策树算法有ID3、C4.5 (C5.0),CART,PUBLIC,SLIQ 和 SPRINT 算法等。它们在选择测试属性采用的技术、生成的决策树的结构、剪枝的方法以及时刻,能否处理大数据集等方面都有各自的不同之处。
[0007](2)贝叶斯
[0008]贝叶斯分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯算法。这些算法主要利用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算法,如TAN算法,它是在贝叶斯网络结构的基础上增加属性对之间的关联来实现的。
[0009](3)人工神经网络
[0010]人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这种模型中,大量的节点(或称“神经元”,或“单元”)之间相互联接构成网络,即“神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。训练改变了网络节点的连接权的值使其具有分类的功能,经过训练的网络就可用于对象的识别。
[0011]目前,神经网络已有上百种不同的模型,常见的有反向传播网络、径向基函数网络、霍普菲尔德网络、随机神经网络、竞争神经网络等。但是当前的神经网络仍普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。
[0012](4)k_ 近邻
[0013]k_近邻算法是一种基于实例的分类方法。该方法就是找出与未知样本X距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把X归为那一类。k-近邻方法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。
[0014](5)支持向量机
[0015]支持向量机是万普尼克根据统计学习理论提出的一种新的学习方法,它的最大特点是根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力,较好地解决了非线性、高维数、局部极小点等问题。对于分类问题,支持向量机算法根据区域中的样本计算该区域的决策曲面,由此确定该区域中未知样本的类别。
[0016](6)基于关联规则的分类
[0017]关联规则挖掘是数据挖掘中一个重要的研究领域。近年来,对于如何将关联规则挖掘用于分类问题,学者们进行了广泛的研究。关联分类方法挖掘形如condset — C的规贝U,其中condset是项(或属性-值对)的集合,而C是类标号,这种形式的规则称为类关联规则。关联分类方法一般由两步组成:第一步用关联规则挖掘算法从训练数据集中挖掘出所有满足指定支持度和置信度的类关联规则;第二步使用启发式方法从挖掘出的类关联规则中挑选出一组高质量的规则用于分类。
[0018](7)集成学习
[0019]实际应用的复杂性和数据的多样性往往使得单一的分类方法不够有效。因此,学者们对多种分类方法的融合即集成学习进行了广泛的研究。集成学习已成为国际机器学习界的研究热点,并被称为当前机器学习四个主要研究方向之一。
[0020]集成学习是一种机器学习范式,它试图通过连续调用单个的学习算法,获得不同的基学习器,然后根据规则组合这些学习器来解决同一个问题,可以显著的提高学习系统的泛化能力。组合多个基学习器主要采用(加权)投票的方法,常见的算法有装袋,提升/推进等。
[0021]集成学习由于采用了投票平均的方法组合多个分类器,所以有可能减少单个分类器的误差,获得对问题空间模型更加准确的表示,从而提高分类器的分类准确度。
[0022]用来比较和评估分类方法的标准主要有:(1)预测的准确率。模型正确地预测新样本的类标号的能力;(2)计算速度。包括构造模型以及使用模型进行分类的时间;(3)强壮性。模型对噪声数据或空缺值数据正确预测的能力;(4)可伸缩性。对于数据量很大的数据集,有效构造模型的能力;(5)模型描述的简洁性和可解释性。模型描述愈简洁、愈容易理解,则愈受欢迎。
[0023]从这几个指标来判断,目前流行的分类算法存在以下问题。决策树算法应用十分广泛,思路简单,实现比较容易。但由于决策树固有的树的数据结构,导致机器内存成为算法瓶颈,无法处理大规模数据。而决策树的构造前剪枝和构造后剪枝也面临着标准难以确定,算法复杂度高的问题。贝叶斯分类也是常用的分类算法,但是贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,这会严重影响分类准确性。人工神经网络训练过程非常复杂,普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。K-近邻算法是一种懒惰学习算法,它存放样本直到需要分类时才进行分类,不用刻意区分训练和识别过程,但如果样本集比较复杂,会导致很大的计算开销,无法处理大量数据。支持向量机以最大化分类间隔构造最优分类超曲面,能解决非线性较高维数数据分类,但也存在着求解分类超曲面困难,算法复杂度高,难以适应大量实时数据的问题。基于关联规则的分类和集成学习的方法目前相对应用较少,还处于探索阶段,但也普遍面临着算法复杂度高,难以收敛,分类效果不可预测的问题。

【发明内容】

[0024]为了解决上述问题,本发明的目的在于,提供一种基于超曲面的大数据分类方法及系统,解决上述现有技术的预测准确率不稳定、计算代价大、速度慢、模型复杂度高、难以解释、无法处理海量数据的问题。该方法采用基于超曲面的覆盖算法,能在Hadoop映射/化简编程框架和Hbase分布式非关系型数据库基础上实现,且能以较低的计算代价,构建易于解释的规则模型,快速高效处理海量数据,以应对现实世界中呈爆炸式增长的数据的分类需求。
[0025]为实现上述目的,本发明所提出的大数据分类方法,其特征在于,该方法包括以下步骤:
[0026]训练步骤,包括多次循环的第一映射/化简步骤,用于将输入数据划分成输入数据块,将该输入数据块生成模式字符串的分类规则{模式字符串=> 类标},并将该分类规则写入Hbase数据库规则表;
[0027]测试步骤,包括一个第二映射/化简步骤,用于读取该输入数据块,并构造待分类模式字符串,在该Hbase数据库规则表中查找与该待分类模式字符串匹配的分类规则,并输出分类结果。
[0028]本发明的大数据分类方法,其特征在于,该第一映射/化简步骤具体为:
[0029]包括一个或多个第一映射步骤和一个化简步骤,其中,该第一映射步骤用于将该输入数据分成固定大小的输入数据块,逐行读取该输入数据块并按照每一维依次取前I位的方式构造模式字符串,并将该输入数据块生成键值对〈模式字符串,类标〉,其中I为当前循环次数;该化简步骤用于将该键值对合并成项目〈模式字符串,list<类标 >>,并判断该项目是否纯净,若纯净,则向该Hbase数据库规则表中写入该规则,否则转该第一映射步骤,其中该纯净指list〈类标〉中包含某一个类标次数的百分比达到用户设定的阈值。
[0030]本发明的大数据分类方法,其特征在于,向该Hbase数据库规则表中存入该规则的具体方法为:
[0031]判断该Hbase数据库规则表中是否存在该分类规则,若不存在,则将该分类规则存入该Hbase数据库规则表,若存在,则采取覆盖的方式将该分类规则存入该Hbase数据库规则表。
[0032]本发明的大数据分类方法,其特征在于,该Hbase数据库规则表采取列的方式进行该分类规则的存储。[0033]本发明的大数据分类方法,其特征在于,该第二映射/化简步骤具体为:
[0034]包括一个或多个第二映射步骤,用于对该输入数据块逐行读取,按照每一维依次取前m位数字的方式构造待分类模式字符串,其中m为正整数,并在Hbase数据库规则表中查找是否存在与该待分类模式字符串匹配的分类规则,直到满足终止条件,输出分类结果,其中该终止条件为找到匹配的分类规则、取数字的位数达到输入数据最大精度、取数字位数达到用户输入阈值中任一条件之一。
[0035]本发明还提出一种大数据分类系统,其特征在于,该系统包括以下模块:
[0036]训练模块,包括多次循环的第一映射/化简模块,用于将输入数据划分成输入数据块,将该输入数据块生成模式字符串的分类规则{模式字符串=> 类标},并将该分类规则写入Hbase数据库规则表;
[0037]测试模块,包括一个第二映射/化简模块,用于读取该输入数据块,并构造待分类模式字符串,在该Hbase数据库规则表中查找与该待分类模式字符串匹配的分类规则,并输出分类结果。
[0038]本发明的大数据分类系统,其特征在于,其特征在于,该第一映射/化简模块具体为:
[0039]包括一个或多个第一映射模块和一个化简模块,其中,该第一映射模块用于将该输入数据分成固定大小的输入数据块,逐行读取该输入数据块并按照每一维依次取前I位的方式构造模式字符串,并将该输入数据块生成键值对〈模式字符串,类标〉,其中I为当前循环次数;该化简模块用于将该键值对合并成项目〈模式字符串,list<类标 >>,并判断该项目是否纯净,若纯净,则向该Hbase数据库规则表中写入该规则,否则转该第一映射模块,其中该纯净指list〈类标〉中包含某一个类标次数的百分比达到用户设定的阈值。
[0040]本发明的大数据分类系统,其特征在于,向该Hbase数据库规则表中存入该规则的具体方法为:
[0041]判断该Hbase数据库规则表中是否存在该分类规则,若不存在,则将该分类规则存入该Hbase数据库规则表,若存在,则采取覆盖的方式将该分类规则存入该Hbase数据库规则表。
[0042]本发明的大数据分类系统,其特征在于,该Hbase数据库规则表采取列的方式进行该分类规则的存储。
[0043]本发明的大数据分类系统,其特征在于,该第二映射/化简模块具体为:
[0044]包括一个或多个第二映射模块,用于对该输入数据块逐行读取,按照每一维依次取前m位数字的方式构造待分类模式字符串,其中m为正整数,并在Hbase数据库规则表中查找是否存在与该待分类模式字符串匹配的分类规则,直到满足终止条件,输出分类结果,其中该终止条件为找到匹配的分类规则、取数字的位数达到输入数据最大精度、取数字位数达到用户输入阈值中任一条件之一。
[0045]本发明具有以下优点:
[0046](I)本发明实现的基于超曲面的分类算法,其数学基础在于拓扑学的若当定理:平面上一条连续的不与自身相交曲线就叫做若尔当曲线。平面上一条闭合(首尾相接)的若尔当曲线,把平面分成2个区域,并且如果在这两个区域内分别取一点,再用一条曲线将其相连,则这条连线必定和原来的闭合若尔当曲线相交。推论为:以空间中任何一点为起点做射线,如果射线与该闭合若尔当曲线的交点为奇数个,则称该点在曲线围成的闭合空间内,若交点为偶数个,则称该点在闭合空间外。高维数据同样如此。由该理论可知,本发明的空间划分合并对分类准确率不会产生负面影响;
[0047](2)本发明采用“分治”的思想,将输入数据的每一个维度逐数据位取值,作为表征空间划分的模式串。采取十分的思想,将空间按照划分成IOn个区域(η为输入数据的维度)。判断每一个区域数据点的类别是否足够“纯净”(均为同一类或为同一类的比例达到用户设定阈值)。如果足够“纯净”,则该区域标记为该区域数量最多的数据类标,否则将该区域进一步细分为IOn个子区域,取每个维度下一个数据位,继续进行此项工作,直至满足所有细分区域均“纯净”、遍历完所有数据位或者循环次数达到用户设定阈值这三个终止条件中的任何一种。最终输出每个区域的表征字符串和所标类别,形成规则表用于分类。这种分治的思想易于理解,便于实现。同时,采用十分的方式,使得绝大多数分类数据(一般采用十进制)可以不经过进制转换直接进入算法处理流程,大大减少计算复杂度。采用Hbase规则表的方式来存储规则,扩展性好,实时性强,是工业级数据库应用的最佳选择。
[0048](3)本发明实现了基于Hadoop的超曲面分类算法,利用映射/化简机制,将大数据分割成小块数据,在多个映射端并行对每条数据产生对应当前层次的表征空间区域位置的模式字符串,利用映射/化简的大量数据外存排序机制,在化简端并行判断空间每个子区域的数据纯度,产生规则或者进入下一层运算。这种设计极大减轻了单机的内存压力和计算压力,使处理数据规模可以随着Hadoop集群机器数量的增加而线性增加,达到了海量数据分布式计算的技术效果;
[0049](4)本发明使用了分布式非关系型数据库Hbase存储产生的规则表。Hbase作为列存储的数据库,具有高可靠性、高性能、可伸缩的特点,容忍数据冗余,对海量数据上的查询需求能高效快速响应。本发明设计了基于Hbase的可扩展的规则表,可根据新增数据不断丰富规则表,能适应不同来源的大量数据并行的插入和查询操作。使本发明能够应用于实际行业数据的分类需求。
[0050]本发明的积极效果在于,本发明能够实现基于Hadoop映射/化简框架和Hbase分布式非关系型数据库的基于超曲面的分类算法。与现有技术相比,本发明提出的新方法和系统可以处理TB级数据,并且计算能力随着Hadoop集群机器的增加而接近线性上升,真正实现分布式计算,大大提高性能和效率。另外,本发明没有使用复杂的运算,区别于一般分类算法的高计算复杂度,能降低系统开销。采用Hbase数据库特有的列存储表结构,使规则表在数据量几何增长的情况下查询速度线性上升,高效快速响应分类需求。满足系统在大数据环境下的实时处理要求。
【专利附图】

【附图说明】
[0051]图1是本发明实施例的超曲面分类器并行训练部分流程图
[0052]图2是本发明实施例的超曲面分类器并行测试部分流程图
[0053]图3是本发明实施例的输入数据格式
[0054]图4是本发明实施例的JobTracker上系统训练和识别运行过程
[0055]图5是本发明实施例的Hbase数据库规则表部分规则数据
[0056]图6是本发明实施例的测试过程部分识别结果[0057]图7是本发明实施例的UCLA数据集测试识别准确度【具体实施方式】
[0058]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的大数据分类方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0059]本发明基于分布式开源软件平台Hadoop和非关系型分布式数据库Hbase数据库,利用Hadoop机制并行处理输入数据,缩短系统运行时间,利用Hbase列存储和高冗余容忍机制,使得知识库数据呈几何级别增长时,查询时间只有线性增长,适用于实际增量大数据的处理。具体方案如下。
[0060]本发明的大数据分类方法主要分为两个步骤,训练步骤和测试步骤,训练步骤包含多次循环的第一映射/化简步骤,测试步骤包括一个第二映射/化简步骤。此处需要说明的是:第一映射/化简步骤包括一个或多个第一映射步骤,一个化简步骤。第二映射/化简步骤包括一个第二映射步骤,其中,第一映射步骤起到将大量输入数据进行分块,分成固定大小(一般是64MB)的输入 数据块之后再进行处理;化简步骤对将第一映射步骤生成的数据块进行处理,并生成最终输出结果。对分布式数据库Hbase的数据插入和查询操作穿插在训练步骤和测试步骤的映射/化简程序实现中,训练步骤将产生的分类规则写入Hbase数据库规则表中,测试步骤则从Hbase数据库规则表中查找该分类规则,并用于测试数据的分类类别识别。本发明能够处理增量大数据,对一段时间产生的一批训练数据处理后提取出分类规则,写入Hbase数据库规则,而下一段时间产生的下一批数据处理后得到的分类规则继续写入Hbase数据库规则,使分类规则库得到扩充,分类能力增强。
[0061]实施例
[0062]下面我们以经典的26个英文字母图片对应像素组成的训练样本为例,对本发明的大数据分类方法进行说明。
[0063]在本发明中,输入数据的形式如下,训练数据包含类标,测试数据不含类标(根据具体的需求可对各种数据进行预处理,使之符合本发明的输入格式):
[0064]
02 08 03 05 01 08 13 00 06 06 10 08 00 08 00 08 T
02 08 03 05 01 08 13 00 06 06 10 08 00 08 00 01 B
02 08 03 05 01 08 13 00 06 06 10 08 00 08 00 01 B
05 12 03 07 02 10 05 05 04 13 03 09 02 08 04 10 I
04 11 06 08 06 IO 06 02 06 IO 03 07 03 07 03 09 D
07 11 06 06 03 05 09 04 06 04 04 10 06 10 02 08 N
02 01 03 01 01 08 06 06 06 06 05 09 01 07 05 10 G
04 11 05 08 03 08 08 06 09 05 06 06 00 08 09 07 S
[0065]......[0066]训练步骤包含多次循环的第一映射/化简步骤(此处表示为η,η为正整数),每个第一映射/化简步骤由第一映射步骤和化简步骤组成。输入训练数据进入映射端,被划分成多个固定大小(一般是64MB)的输入数据块,再并行对每个输入数据块逐行读取进行处理。输入数据块的每条数据形如 “02080305010813000606100800080008T”,“02080305010813000606100800080008”表示字母“T”图片的256位(二进制)像素值,也就是这条输入数据块的数据的模式。通过这种方式,将图像信息转换成了规整的文本信息,可以进行分类处理。设定当前为第1次循环(I为正整数),取输入数据每一维的前I位数字组成模式字符串,比如当1=1时,取每一维的第一位数字组成模式字符串“0000001000100000”,将该模式字符串作为映射输出的键K,类别标志“T”作为映射输出的值V,映射输出形如键值对 <0000001000100000, T>O 设此次产生了三个键值对 <0000001000100000, τ>,〈0000001000100000,B〉,〈0000001000100000,B〉。之后进入化简阶段,化简采用映射输出〈0000001000100000,Τ>, 〈0000001000100000,B〉, 〈0000001000100000,B〉等作为输入,并且将键值K相同的键值对合并成〈K,list<V>>形式的项目,如<0000001000100000, <T, B, B?,在化简中对这样的项目进行遍历分析,如果对于某一个模式字符串如“0000001000100000”,类标值的集合包含某一个类标次数的百分比达到用户设定的纯净度阈值,该纯净度阈值是指用户设定的一个范围在[0,1]的百分比,大于该值则说明训练部分化简I中的〈模式字符串,list〈类标》可以产生分类规则,否则进入下一轮循环。譬如90%,则称为该项目“纯净”,提取出规则,否则将原始数据标记为“未处理”,进入下一轮循环。此处对于模式字符串“0000001000100000”,包含的类标序列〈T,B, B〉,出现次数最多的“B”占到66%的比例,小于设定的90%阈值,所以标记为“未处理”,进入第二轮循环。第二轮循环的映射取每一维的前二位数字组成模式字符串作为键K,类标作为值V,生成〈00000010001000002835183066080808,T>, <00000010001000002835183066080801, B〉,<00000010001000002835183066080801, B〉三条数据,进入化简步骤按照相同键K值组装成统一序列的方式,产生〈00000010001000002835183066080808,<Τ?, <00000010001000002835183066080801,〈B,B?两个项目,显然对这两个项目分别分析,其某一类标占比均超过90%,称为“纯净”。所以化简产生两条分类规则,{00000010001000002835183066080808=>Τ}
,{00000010001000002835183066080801=>Β},将这两条规则写入Hbase数据库的规则表当中。如果仍有不够“纯净”的键值对,则按照上述方式进入下一轮循环,直至到达最大循环次数,该最大循环次数是指人为设定的系统训练部分循环最大值,为一个正整数。如不设置则默认为输入数据精度。训练过程完毕。
[0067]此处对Hbase数据库规则表结构进行说明。Hbase采取列的方式进行数据存储,Hbase的表结构由行、列族表示,一个列族包含一个或多个列标签,该规则表的每一行的键即为分类规则模式字符串,如上例中产生的“00000010001000002835183066080808”,每一行包含一个列族“fam”, 该列族包含一个列标签,该列标签存储模式字符串对应的类标,该处对应类标为“T”。当有增量数据处理后产生新的分类规则,如果该分类规则的模式识别字符串尚未在表中存在,则新插入该规则,若已经存在,则采取覆盖的方式。比如新产生一条分类规则“00000010001000002835183066080808=>M”,该规则已经在规则表中存在,原类标为T,则用M覆盖掉原类标T。如此完成分类规则的增长和更新。
[0068]测试步骤包含一次第二映射/化简步骤。该过程包含一个第二映射步骤。在映射中逐行读取每个数据块的数据,对每一行取出前m维数字组成待识别模式字符串(m为正整数),首先取第一维数字,此处以“07100505020608060811071102080509”为例,该模式字符串为“010000001010000”,查询 Hbase 数据库规则表,搜索是否有{010000001010000=〉?} (?为某一类标)规则完成匹配。若有譬如{010000001010000=>Z}规则匹配,则标记该模式字符串类标为Z ;否则取第二维数字组成模式字符串“0100000010100007055268681712859”,继续进行查询。直到满足以下某一个条件终止:1,找到匹配的分类规则;2,取数字的位数达到输入数据最大精度,比如上例只能取到第二位;3,取数字位数达到用户输入阈值,比如只能取到第3位。按照这三个条件程序终止后,如果有匹配的分类规则,则输出模式字符串和类标,如“07100505020608060811071102080509Z”,否则输出 “07100505020608060811071102080509NF”(NF表示NotFound,无法找到)。测试过程结束。
[0069]图1给出了算法训练阶段的并行结构图。映射I对输入数据块逐行读取,并构造<模式字符串,类标 > 键值对。化简I分析〈模式字符串,list〈类标 >> 项目纯度,判断是否“纯净”,若纯净输出{模式字符串=> 类标}分类规则,插入Hbase数据库规则表,否则输出原数据,进入下一轮循环。
[0070]图2给出了算法测试阶段的并行结构图。映射I对输入数据块逐行读取,按照每一维依次取前m位数字(m为正整数)方式构造待识别模式字符串,据此在Hbase数据库规则表中进行类标查询。输出最终识别结果。
[0071]按照前述结构,以下分训练和测试两个部分展示实例。为了更好保证真实性,尽量以截图形式展现在服务器上的运行过程。训练数据和测试数据均采用UCLA标准字母识别数据集,共包含数据20000条,使用十折交叉验证方法。如图3所示。
[0072]在Hadoop平台上运行该系统的训练和测试过程,JobtrackeKHadoop记录任务运行的Web网页查看工具)记录了整个过程,如图4所示,每一个job (工作流)代表在Hadoop平台上运行的一次作业。训练过程包括jobO、jobl、job2、After job, jobO是预处理作业,对输入数据格式做预处理,使之符合系统要求,jobl和job2则是生成规则的两次循环作业,After job是后期处理作业,统一将生成的分类规则插入Hbase数据库规则表。测试部分包括jobO和test job, jobO是预处`理作业,做输入格式预处理,test job是识别作业,进行识别和计算准确度。图中每一行代表含义如下,以第一行“job_201310230921_0021N0RMALhadoop job0100.00%”为例,“ job_201310230921_0021”表示作业提交时间是 2013 年 10 月23日9点21分,0021是当日作业提交的编号,“NORMAL”表示作业执行状态正常,“hadoop”是执行作业的用户名,“100.00%”表示作业执行进度为百分之百,即执行完毕。
[0073]训练部分运行过程中产生的分类规则插入Hbase规则表,图5是Hbase中部分类标为“J”的分类规则。每一行数据依次为模式字符串,列名,时间戳,类标。仍然以第一行数据“00000000010000002735296261481616column=fam:coltimestamp=1385007184062value=J” 为例,注意此处 “296261481616” 是因为命令行显示自动换行的缘故,它与前面的“00000000010000002735”是一个字符串的先后部分。“00000000010000002735296261481616”表示模式字符串,“column=fam: col ”表示该行有一个列族“fam”,包含一个列标签“col”,“timestamp=1385007184062”表示这一行数据插入时间为“1385007184062”(计算机内置微秒时间),“value=J”表示这一行在“col”列标签下面的值为“ J”。总的来说,就是模式字符串“ 00000000010000002735296261481616 ”代表了该输入字符串的分类为“J”。[0074]测试部分运行对输入数据进行识别,采用十折交叉验证,在原数据后面标出根据规则数据库识别出的类标。如图6所示。
[0075]图7展示了在UCLA字母识别标准数据集上,采用十折交叉验证,测试部分识别准确率为92%,表现优异。图中截取的是命令行下的运行结果显示,前面部分是Hadoop工程运行打印的内部机制信息,表示物理内存容量、化简过程输出记录数量,虚拟内存容量,映射过程输出记录数量等,重要的是最后一句“algorithm precision is0.92”表示算法验证后的准确度是0.92,也就是92%。
【权利要求】
1.一种大数据分类方法,其特征在于,该方法包括以下步骤: 训练步骤,包括多次循环的第一映射/化简步骤,用于将输入数据划分成输入数据块,将该输入数据块生成模式字符串的分类规则{模式字符串=> 类标},并将该分类规则写入Hbase数据库规则表; 测试步骤,包括一个第二映射/化简步骤,用于读取该输入数据块,并构造待分类模式字符串,在该Hbase数据库规则表中查找与该待分类模式字符串匹配的分类规则,并输出分类结果。
2.如权利要求1所述的大数据分类方法,其特征在于,该第一映射/化简步骤具体为: 包括一个或多个第一映射步骤和一个化简步骤,其中,该第一映射步骤用于将该输入数据分成固定大小的输入数据块,逐行读取该输入数据块并按照每一维依次取前I位的方式构造模式字符串,并将该输入数据块生成键值对〈模式字符串,类标〉,其中I为当前循环次数;该化简步骤用于将该键值合并成项目〈模式字符串,list<类标 >>,并判断该项目是否纯净,若纯净,则向该Hbase数据库规则表中写入该规则,否则转该第一映射步骤,其中该纯净指list〈类标 > 中包含某一个类标次数的百分比达到用户设定的阈值。
3.如权利要求2所述的大数据分类方法,其特征在于,向该Hbase数据库规则表中存入该规则的具体方法 为: 判断该Hbase数据库规则表中是否存在该分类规则,若不存在,则将该分类规则存入该Hbase数据库规则表,若存在,则采取覆盖的方式将该分类规则存入该Hbase数据库规则表。
4.如权利要求1或3所述的大数据分类方法,其特征在于,该Hbase数据库规则表采取列的方式进行该分类规则的存储。
5.如权利要求1所述的大数据分类方法,其特征在于,该第二映射/化简步骤具体为: 包括一个或多个第二映射步骤,用于对该输入数据块逐行读取,按照每一维依次取前m位数字的方式构造待分类模式字符串,其中m为正整数,并在Hbase数据库规则表中查找是否存在与该待分类模式字符串匹配的分类规则,直到满足终止条件,输出分类结果,其中该终止条件为找到匹配的分类规则、取数字的位数达到输入数据最大精度、取数字位数达到用户输入阈值中任一条件之一。
6.一种大数据分类系统,其特征在于,该系统包括以下模块: 训练模块,包括多次循环的第一映射/化简模块,用于将输入数据划分成输入数据块,将该输入数据块生成模式字符串的分类规则{模式字符串=> 类标},并将该分类规则写入Hbase数据库规则表; 测试模块,包括一个第二映射/化简模块,用于读取该输入数据块,并构造待分类模式字符串,在该Hbase数据库规则表中查找与该待分类模式字符串匹配的分类规则,并输出分类结果。
7.如权利要求6所述的大数据分类系统,其特征在于,其特征在于,该第一映射/化简模块具体为: 包括一个或多个第一映射模块和一个化简模块,其中,该第一映射模块用于将该输入数据分成固定大小的输入数据块,逐行读取该输入数据块并按照每一维依次取前I位的方式构造模式字符串,并将该输入数据块生成键值对〈模式字符串,类标〉,其中I为当前循环次数;该化简模块用于将该键值合并成项目〈模式字符串,list<类标 >>,并判断该项目是否纯净,若纯净,则向该Hbase数据库规则表中写入该规则,否则转该第一映射模块,其中该纯净指list〈类标 > 中包含某一个类标次数的百分比达到用户设定的阈值。
8.如权利要求6所述的大数据分类系统,其特征在于,向该Hbase数据库规则表中存入该规则的具体方法为: 判断该Hbase数据库规则表中是否存在该分类规则,若不存在,则将该分类规则存入该Hbase数据库规则表,若存在,则采取覆盖的方式将该分类规则存入该Hbase数据库规则表。
9.如权利要求6或8所述的大数据分类系统,其特征在于,该Hbase数据库规则表采取列的方式进行该分类规则的存储。
10.如权利要求6所述的大数据分类系统,其特征在于,该第二映射/化简模块具体为: 包括一个或多个第二映射模块,用于对该输入数据块逐行读取,按照每一维依次取前m位数字的方式构造待分类模式字符串,其中m为正整数,并在Hbase数据库规则表中查找是否存在与该待分类模式字符串匹配的分类规则,直到满足终止条件,输出分类结果,其中该终止条件为找到匹配的分类规则、取数字的位数达到输入数据最大精度、取数字位数达到用户输入阈值中任一条件之一。`
【文档编号】G06F17/30GK103729428SQ201310727192
【公开日】2014年4月16日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】何清, 吴新宇, 庄福振, 敖翔 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1