杨小琴,朱玉全
(1. 南京工业大学浦江学院,江苏 南京 211134;2. 江苏大学,江苏 镇江 212013)
智能分类技术是一种非常重要的大数据管理技术,目前已经成功的使用到了各个领域,但传统大数据分类时会出现的方法占用率较高、分类效率低的问题还是很难解决,针对上述现象,国内外学者提出了以下解决方法。
文献[1]首先分析用户的反馈数据文本,再对大数据使用半自动建造的语义映射进行几率计算,从而形成有效的属性类别,并把该方法运用到云计算中,可以更针对性的分类大数据属性类别。但该方法在进行映射时会出现大量的冗余数据,导致在分类完成后,冗余数据会占据云计算空间。文献[2]分析大数据的各项指标说明,依据指标分析数据的特性,然后对其进行检索,将检索获取的结果进行特征提取,遵照其特点利用模糊分类对大数据进行智能分类,但是该方法在对数据检索时,需要进行的步骤较为复杂,导致其后续的智能分类,需要花费大量的时间计算,分类结果的精准性较低。文献[3]首先使用冲突数据检测方法判定数据的分类是否存在冲突。如果存在冲突,就将其变换为约束满足问题,经过分析分类问题的约束变量,确准分类其中含有处理冲突的内容,构建海量数据分类中冲突判别表现形式,从而实现大数据智能分类的目的。但该方法只能针对冲突数据进行有效分类,而存储在云空间内的大数据种类复杂繁多,该方法存在较大的局限性,实用性差,难以应对现实需求。
为解决上述问题,本文提出了一种云计算下低占用率大数据智能分类方法,通过朴素贝叶斯智能分类器,计算过程简单、效率快,能够有效解决后续分类较慢问题,并且适用于各类系统,同时训练模型还能够使智能分类后的大数据不会出现冗余噪声,大幅度降低云空间占用率。
大数据预处理的重点就是为朴素贝叶斯分类做准备,其具体工作要依据实际情况选择特征属性,再对所有特征属性进行分类,使连续的特征属性变成离散化状态,从而取得人类需要的数据。比如某种特征属性的取值就是离散化的,那就不用在对其进行离散化处理。该阶段的输入为每一种包括连续的特征属性大数据测试集和大数据训练,输出如果是离散化的属性值。那么在分类过程中其质量会起到非常重要的作用,并且特征属性的分割、训练样本与为特征属性决定分类器质量的关键。所以需要对大数据样本属性并行计算最优质分割区域,实现将连续属性进行离散化,预处理阶段能够实现Ma-pReduce并行化。
通常情况下利用NBS算法对大数据进行智能分类里,使用初始数据作为特征,但对大数据的样本而言,数据之间所表示的权重都各不相同,即,不同的源数据[4]中的区分程度也各不相同,本文在特征选取方面进行了一些改进,改进后的结果如式(1)所示
(1)
式中tfik代表样本xi第k中元数据的频率,fik代表元数据在样本中出现的次数。
(2)
式中,N代表样本点的总数,nk表示源数据样本的出现次数。最后的权重计算如式(3)所示
(3)
因大多数频率都含有非零权值,因此本文将初始数据设置为1。
在云计算中大多使用VSM模型[5]来标引大数据,就是大数据名称能够直接使用词条T表示。但大数据名称中存在大量的特征点,然而其中的部分高维特征对智能分类未必都是有用的,并且高维特征会使云计算空间被大量占用。因此本文首先对大数据的特征进行降维操作,剔除部分冗余向量。
在特征降维中,特征选择是较为重要的,就是把大数据中不重要的数据和数据量较小的特征从云计算中消除,从而减少特征的数量,它是大数据智能分类的关键步骤。
特征选择方法大多都是通过对特征中含有的信息进行估算,获得可以映射特征信息含量的数值,或是特征区分实例的能力值。为了便于描述,本文简要写出特征选择的经典过程。拟定T={t1,t2,t3,…,tn}是对大数据做分词后获得的特征全集,使用M代表权重集合{1,2,3,…,m}。其特征选择是确定从T到M的一种投影,即
F-Selection:T→M
(4)
这种投影函数[6]是特征权值计算的函数,随后取一种N值,认为T中某些权值大于N的特征是选取的特征,记作Ts,在随后智能分类过程中,就是以Ts为基本参照标准特征对大数据进行VSM模型表示。根据某种算法来较比待测实例向量与特征样本向量中的关联度,取关联度最高的样本为待测实例的类别。
因为大数据所在的空间是以云计算为基础存在的,其属于一种文本表达方式,所以能够借助文本分类算法进行智能分类。
目前较为流行的文本分类算法有很多,其中含有K进邻算法、NB算法、支持向量机算法、潜在语义索引、神经算法[7]与决策树算法。下面就集中常见的分类算法分析:
1)K近邻算法:是一种传统基于统计的分类方法,它是从样本特征空间中找到K个长度最近的样本,再通过多数样本的类型进行分类预测的一种方式。比如:对一个待测实例x,分类器在特征集中找到和该实例长度最近的k种样本,如果这k种样本多数为cj类,那么待测实例x为类别cj的可能性就较大。计算公式如下
(5)
式中,x表示为待测实例的向量表示:d代表数据集中样本的向量表示,y(x,cj)是关联度计算公式,也是待测实例和数据集样本之间的长度,依据关联度结果,从数据集中取出和待测实例最为关联的k中样本。利用其关联度对数据进行压缩,以减少数据所占内存,提高空间使用率,其数据压缩计算公式如下
(6)
2)决策树算法:决策树是一种近似于流程图的树形结构,其中所有的内部节点都分别代表一种属性测试,所有分支都分别代表一种输出,而所有的树叶节点都分别代表属性的种类。
决策树算法使用贪心思想,经过对训练数据的学习,制作出一般化规则,再使用该规则解决问题。它是训练集以上至下方式为预先设定的所有属性种类建造的一颗决策树,然后将获得的待测实例属性在决策树上进行测试。路径是分解节点到叶节上,最后获得该实例所属的种类。
3)支持向量机:SVM首先经过非线性转换将输入数据融入到一个高维空间,再新空间中计算最优质线性分类面,而这个非线性转换的前提是经过适当的内积函数实现的。
SVM以构建风险最小化为基础,经过选择合适的函数子集和该子集的辨别函数使学习机的实际风险到达最小化,确保经过有限训练的样本得到的分类器对单独测试集的测试误差达到最小化,但SVM需要对实例进行大量实验,导致需要太长的训练时间[8]。
4)贝叶斯定理:概率论中贝叶斯定理是一种较为重要的公式理论,通过新样本数据中获取新知识[9-11]。本文依据其融合统计原理和大数据样本归类到某种类别的先验知识,来完成云计算下大数据智能分类。
经过上述过程,完成大数据的获取及预处理,为实现数据的特征分类,本文将引入NBC处理方法进行分类。
本文将贝叶斯定理融合到大数据的分类模型中,从而生成贝叶斯智能分类算法,该算法利用概率统计知识对大数据样本进行分类,其同样看可作为一种统计学智能分类算法[12]。拟定训练样本集与它每一种分类构成的结合是T,设一个类别c∈C,样本数据中包含n种属性A1,A2,A3,…,An,测试样本x=(a1,a2,…,an)∈X,根据设定含有多种属性的样本集,开始计算p(x|c)的运算量较为广泛。为了可以对p(x|c)的有效计算,贝叶斯智能分类器大多会拟定所有属性间都为互相独立的状态。针对某种特定的类别,并且该类别的属性都是互相独立的,就会产生
(7)
融合贝叶斯公式,可得
(8)
式(8)对每一种类别p(x)是相同的。所以NBC分类器能够使用下列公式表示
(9)
式(9)代表NBC模型,该模型是一种比较简单、有效的智能分类模型,其分类性能相比神经网络、决策树等智能分类器效果要更好。
经过式(9)可以得出,在通过将大数据的集中样本分割到某一种类的过程中,只要求出N(c)与N(c,ak)就可以了,很大程度的简化了求出后验几率所需要的计算过程。已知测试大数据集中某条样本数据A的所有维属性Ai。
for(测试大数据中某种记录A);
for(类别cj);
for(样本A的属性Ai)catePro*=N(cj,ai);
catePro/=N(c)n-1。
最后,本文对输出的N种几率值进行排序,最大几率值所相应的类别就是该测试的所属类别。
NBC的分类原理:经过对大数据样本的数量统计,并计算出样本的先验几率,再通过贝叶斯公式得出样本要统一到那种类别的后验几率,然后在选择出后验几率值较大的一个,当做大数据样本的类别。通过上述能够得出,朴素贝叶斯智能分类器为一个能够很大程度节省分类时间,且容错率较小的分类器,拟定源组被分割为m种类别:c1,c2,…,cj,…,cm相对于要把测试数据划分到m种类别的问题,能够经过构建下列分类模型计算。有式(10)推理可得
(10)
式中,N代表样本总数,是可以忽略的常数。N(c)是c类的样本总数,N(c,ak)是c类中属性为ak出现的数量。经过上述完成基于NBC的大数据特征分类模型的建立,为检验本文方法的有效性,需进行仿真。
仿真环境为Intel Celeron Tulatin1GHz CPU和384MB SD内存的硬件环境和MATLAB6.1的软件环境。仿真系统中包含数据干扰模块、资源调度模块以及任务产生模块,基于上述部分的组成,以MS-COCO数据集作为数据获取来源,并在该数据集中任意采取1000个任务数据,同时将任务数据拟存于仿真系统中,数据字节控制在[256~568kb]之间,实验终止条件设置为300次,将本文方法分别与文献[1]以及文献[2]进行对比。本文仿真算法参数如表1所示。
表1 仿真算法参数
为实现低占用率大数据的智能分类,需建立智能分类模型,训练任务数据。训练的工作就是将样本数据进行训练,并获取静态值,其目的就是为了获取测试样本数据的某种类别几率做准备。通过NBS算法能够看出,把训练样本分配到Map任务节点上,会干扰最后结果,所以该阶段能够实现Ma-pReduce并行化,使其在分类过后,并不会占用太多的云计算空间。
Map函数输入的是Ma-pReduce的输入模式。key代表样本数据对于大数据起始初始位置的偏移量,value的形式是x=(c,a1,a2,a3,…,ai,…,an)的样本数据。通过Map函数处理后生成中间结果建值对,其中key1含有两个类型:attrIndex,attrVal-ue,category和category。前者代表统计特定类别时每种属性值出现的数量,后者用在统计各类别的样本数量。Valuel都是统计其个数。
将value中取得训练样本数据:Value起始为1。
取得样本数据x的类标签categort当做key1,建造字符串,含有其样本的属性值、样本类标签categort和样本的序列号。
当做key1,输出(key1,valel),把Map输出的不相同的key1经过上述投影到状况不同的Reduce任务节点上。通过对应的处理,key1不变,对同种key1值的balue1进行叠加,所以能够获取每一种类别的样本总数与特征类别中不同列的每一种属性数量。
通过对大数据样本进行某种类别的归属测试和对模型训练,从而获取大数据的静态值。然而对大数据样本进行测试的时候,在算法计算之前,要获取模型在训练后的结果和其中含有的路径,就需要将该结果与HashMap、Array-List进行融合,这样就测试阶段的结果获取就变得非常简单。
在最终测试中,Map函数的输入值与模型的训练阶段是一样的。所以在不同的样本中测试可以完整并独立的获取训练完成后的完整静态数据,使测试样本阶段拥有并行性。首先将大数据样本的测试集在特征类别的状态下每一种取值都概率累乘,在算出最终的概率catePm。对每一种大数据样本的测试,都需要将所有种类c进行计算,并获取属于特征种类c的概率。
从value中算出大数据样本测试数据x;
原始化变量lvalue,将在记录c的所有变量属性值;
原始化变量catePro,记录属于某种特定类c的几率。原始值是1,0,对某种特征类c;
lvalue=lvalue.nextTokems
从训练阶段取得的静态数据中提取出该类别c中属性列中取值是lvalue的数量num:
把特定类c当做key1;
把所求的几率catePro当做valuel;
输出(key1,valel)。
通过上述完成分类模型数值的训练,并输出k值。
3.3.1 分类时长开销
为了证明本文方法的分类性能,首先给出本文方法和传统方法,在云计算下不同的数据量的智能分类时间比较。
如图1所示能够看出本文方法从时间的消耗上远远优于传统方法,能够得出本文所提出的朴素贝叶斯模型能够有效减少了方法的计算量,从而简化了方法的分类效率。
图1 不同方法的智能分类时间对比
3.3.2 分类数据的压缩处理效率
以上述处理结果为基础,进行分类数据的压缩处理效率分析。效率分析过程为:将本文算法输入至仿真系统中,同时,将获取的1000条数据发送到MATLAB6.1系统中,检测本文方法的压缩处理效率,处理结果如图2所示。
图2 数据分类的处理效率
通过分析图2可知本文方法的处理效率能力高,对于大小为2GB的分类数据进行压缩时仅需3分零9秒,具有高效的压缩能力。
3.3.3 分类精准度
经过拟定不同的k值进行实验,对比传统方法和本文方法在不同k值下的分类精准度,如图2所示。
图3 不同方法的准确度和占用率对比
通过上述实验能够看出,在云计算下的大数据智能分类上,本文方法较比传统方法,有着分类效率高、数据分类精准高的优点。
本文针对云计算下大数据智能分类效率低和占用空间较大的问题,提出了一种云计算下低占用率大数据智能分类。本文主要内容及过程为:
1)通过构建智能分类模型,对大数据进行进行特征选择;
2)将构建的朴素贝叶斯智能分类模型进行训练,并对选择出的特征进行智能分类;
3)进行仿真,证明本文方法在云计算下大数据智能分类方面,有着分类效率高和占用率低的优点。