-
随着信息技术的高速发展,每天产生的数据正以前所未有的速度增长和累积,如何更加高效地处理大数据成为当前研究的热点[1-2].大数据是指包括异构格式的海量数据增长,它的庞大性导致传统的数据处理软件在大数据应用的情况下不再有效[3-4].大数据分析检查来自不同来源的海量而多样的数据集以发现包括隐藏模式、未知相关性和其他影响业务决策的信息[5-7],它需要可伸缩的体系结构来存储和处理任何大小的数据,而不消耗大量的资源.
预测性大数据分析(Predictive big data analytics,PBA)是一种数据驱动技术,它可以分析大规模数据以发现模式和机会并预测结果[8-9],PBA使用机器学习算法分析现在和以前的数据来预测未来的事件. Hadoop预测用于在分布式群集数据管理系统中存储和处理大型异构数据集,Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是提供对应用程序数据高性能访问的主要数据存储系统[10],Hadoop MapReduce为预测分析提供基于纱线的海量数据并行处理,但不能有效地处理迭代和交互式分析任务.为了高效地支持迭代任务,Apache Spark引入弹性分布式数据集(Resilient Distributed Datasets,RDD),用于跨一组节点缓存Spark作业的中间数据,Spark由于其众多的优点而成为高级分析系统中的一块基石[11].
在降低数据集维度和维护数据完整性之间保持平衡是大数据预测分析需要解决的关键问题.文献[12]提出基于Apache Spark平台的大数据并行随机森林算法,该算法基于数据并行和任务并行优化相结合的混合方法进行优化,以解决高维数据问题,但是在进行降维时,PCA和IG方法会影响PBA系统的预测性能.文献[13]提出一种改进的随机子集特征选择算法来处理高维大数据,该算法使用标准的k最近邻分类器进行分类,基于随机森林算法通过选择有用的新特征来降低数据集的维数,改善了现有算法的降维性能,并增加了稳定性.文献[14]提出一种使用最优功能基于可伸缩随机森林(Scalable Random Forest,SRF)的大数据分类方法,该方法使用改进的蜻蜓算法从数据库中选择最优属性以获得更好的分类效果,利用SRF分类器结合最优特征对电子健康数据进行分类.
为了进一步提高分类准确性和稳定性,本文提出基于增强可伸缩随机森林(Enhancing Scalable Random Forest,ESRF)的高维大数据预测分析系统,用于处理高维的海量数据.本文将SRF中的超参数优化与降维相结合,显著提高系统的预测性能.该系统使用贪婪方法寻找SRF的最优超参数组合,从高维大数据中预测趋势和行为模式,使用PCA和IG技术来减少数据集的不相关特征变量,以避免模型开发阶段的处理时间开销.实验结果表明,本文的PBA系统可以提供出色的预测能力,而且在整个实验数据集中以最少的处理时间提供有效的性能.
全文HTML
-
本文系统通过执行超参数优化来增强SRF,通过对数据降维来改善预测分析的性能.为实现预测分析平台,将HDFS用于分布式存储,将Apache Spark用于并行计算.
-
本文系统由数据存储、数据处理和数据分析组成.
数据存储检索大量的数值数据,并连接到支持快速处理的计算服务器节点. HDFS用于提供具有容错方式的可扩展存储,当HDFS接收大量数据时,它将信息分解为单独的块,并将它们分发到集群中的不同计算节点,旨在为大数据提供可扩展且经济高效的存储.此外,它是专为高度容错率而开发的,支持复制数据和将副本分发到不同的服务器上,因此可以在集群内的其他位置找到节点上的粉碎数据,确保在恢复数据的同时可以继续处理.
数据处理是本文系统获得先进计算基础设施最重要的部分之一,可以及时有效地挖掘和分析大规模数据. Apache Spark处理引擎用于为大规模数据处理提供快速可靠的引擎,具有高级的有向无环图(Directed Acyclic Graph,DAG)执行引擎,支持无环数据流和内存计算,可以连接到几种类型的Yarn集群管理器,这些管理器在整个应用程序中分配资源. Spark Context是将任务发送到执行程序以运行的主要组件,Spark提供将数据缓存在内存中的功能,以便直接从内存中对相同的数据执行计算和迭代,因此节省了大量的磁盘I/O操作时间.
数据分析是本文系统获得高度预测准确性的重要组成部分,包括数据预处理和系统预测模型开发两个阶段.现实世界中的大数据通常可能包含不一致和冗余的数据,执行数据清理步骤通过应用平滑技术来减少噪声,消除异常值.使用标准归一化技术执行数据转换和还原步骤,有助于提供更容易理解的预测模式,执行相关性分析以检测对预测任务没有贡献的冗余属性.在预测模型开发阶段,SRF为本文系统提供准确的决策,是著名的PBA系统预测因子.
SRF是树预测器与随机特征子空间和袋装法相结合的集成,它从学习样本中创建引导集,并学习相应的随机树.在预测期间,森林中的单元树为预测投单独的票,然后使用聚合方法将这些票合并,以计算最终的整体预测.由于SRF由多路复用和相互关联的计算组成,在计算大数据时会引起麻烦.当学习技术没有优化和安排时,每个学习过程的中间和输出结果可能成为所有分布式设置的瓶颈.本文系统使用来自Spark MLlib的随机森林(Random Forest,RF)模型构造,该算法在给定超参数训练RF模型的阶段将默认参数与标准参数一起使用,但对于高速、复杂和可变的数据,默认值无法获得最佳的预测精度.此外,一个数据库不能够满足所有数据性质,在SRF中进行超参数优化以提高PBA系统的性能.
-
SRF需要超参数的最优值来高效地处理大数据.尽管默认值可用于某些预测,但它对所有数据集都是次优的,为了进行这一假设,通过执行超参数优化来增强SRF.超级参数是SRF的参数设置,可以在训练前调整以优化性能. SRF降低了学习模型的复杂性,并将过拟合风险降至最低.
-
数据集维度指的是数据集中呈现的特征数量,为了在分布式环境下进行有效的分析,降低数据维度已经成为一项重要的任务.为了验证降维技术的有效性,本文评估了两种流行的特征降维技术:主成分分析(Principal Component Analysis,PCA)和信息增益(Information Gain,IG).
-
PCA是一种通过将大数据投影到一个捕获大部分变化的子空间中来降低大数据高维性的特殊技术,主要目标是通过用一组称为主成分的新变量来找到k维.数据中的大部分变化很大程度上是由第一个新的主成分捕获的,这意味着第一个分量是最重要的主轴,它具有最大的数据点方差.当数据的变量彼此共线时,PCA可以提供最佳结果,重要的是设置正确的主成分(Principal Component,PC)的最佳k个数.
为了找到PCA,首先计算矩阵X的特征值分解.设数据集为(n×d)矩阵X,Si是给定(n×d)矩阵X的数据子集,将目标维数设置为k,并计算(n×k)矩阵A,其中n是实例数,d是原始维数,X的列是矩阵X的主分量.数据点的协方差矩阵Xc是由Mc的平均中心矩阵及其转置相乘得到,通过从X的每一行中减去矩阵X所有列均值的向量来计算Mc,然后计算特征向量和相应的特征值.特征向量根据它们的特征值按降序排列,最高主成分是具有最高特征值的特征向量,选择前k个特征向量作为新k维的形式.因此,PCA将矩阵X的原始n维空间转换为新的k维.
-
特征选择技术IG通过发现原始数据的特征重要性来降低实验数据集的维数,该方法的基本思想是通过计算每个特征变量的增益比值来对属性进行排序,最上面的特征变量是主变量,然后从剩余的变量中选择其他变量.使用IG可以很容易地选择最大值,为了避免过度拟合问题,采用增益比值取最大值的特征变量.
使用IG对特征进行降维应标准化训练子集Si和计算目标特征变量的熵.对训练数据集S中的每个变量yij,计算每个变量的熵、分裂节点信息、信息增益值、增益比数值和特征重要性.特征向量根据它们的特征值按降序排列,最高主成分是具有最高特征值的特征向量,选择前k个特征向量作为新k维的形式.数据集子集的信息熵定义为
式(1)中:Si是数据集S的子集,d是Si中不同类的数量,qc是Si中属于类c的概率案例的数量.子集Si的每个变量yij的信息熵定义为
式(2)中:yij是子集数据集Si的第j个输入特征变量,v(yij)是每个输入变量的所有可能值的集合,S(v,i)是数据集Si的样本子集.每个输入变量的分裂信息定义为
式(3)中:m是yij不同类别的数目,qc,j是属于类c的yij概率案例的数目.每个特征变量的信息增益值定义为
通过减少不影响预测能力的特征来最小化SRF的训练时间,IG降维用于减少训练样本,这会降低预测器的性能.使用特征的熵来计算变量的增益比,并测量特征重要性.因此,在SRF中考虑特征重要性对于高维大数据非常有效.
-
将输入数据集分为用于建立预测模型的训练集和用于验证生成的模型测试集,在训练数据集上进行SRF的超参数优化以进行有效的模型开发,然后对预处理后的数据进行降维,最后基于最优参数建立ESRF预测模型.
ESRF建模过程输入具有大小为N和M要素的数据集S、随机森林中树的数量Pnt和每棵树的最大深度Pmd.它首先预处理来自S的数据,创建空字符串数组Fi,将预处理数据分为训练数据集Str和测试数据集Stest,从Str中减少不相关的特征和创建引导样本{Str(1),Str(2),…Str(nt)}.然后,定义一组超参数集{nt=1,2,…ntmax;md=1,2,…mdmax},结合每一组超参数(nt,md)生成RF模型.在Stest上拟合模型,基于M特征预测结果,预测回归评估值,将误差值设为Fi{0,1,2,…,|ntmax|×|mdmax|},按升序对Fi的误差值进行排序得到模型集{M1,M2,…,Mnt}.
评估预测模型的性能,并为相应的数据集挑选精度最高的最佳预测模型,在执行模型选择后,使用测试数据集对所选模型进行验证,以正确预测大规模数据.
1.1. 本文系统的体系结构
1.2. 超参数优化
1.3. 降维
1.3.1. 使用PCA进行降维
1.3.2. 使用IG进行降维
1.4. ESRF模型构建
-
所有实验均在分布式大数据分析平台上进行,该平台由1个主节点和3个工作节点实现,单个节点在具有Intel(R)Core(TM)i7-6500U处理器和8.00 GB内存的Linux Ubuntu-16.04系统中执行,软件组件是Apache Hadoop发行版2.7.1、Spark 2.2.0和Scala 2.11.8.为了评估本文PBA系统的性能,在实验中使用来自并行工作负载档案(Parallel Workload Archives,PWA)和加州大学尔湾分校(University of California Irvine,UCI)提出的用于机器学习的数据库的4个实际数据集.
为了衡量系统的预测准确性,使用平均绝对误差(MAE)和均方根误差(RMSE)作为评估指标,其定义如式(5)和式(6)所示.
其中,yi是数据集Si输入特征变量的预测值,yi′是数据集Si输入特征变量的实际值,n为数Si输入特征变量的数量.
在回归问题中测量模型评估的异常值是有用的,MAE对异常值的存在具有鲁棒性,而RMSE则没有. MAE和RMSE的范围从0~+∞.误差值越低模型越好.
表 1给出了不同数据集下SRF中默认参数和优化超参数的MAE比较结果.超参数优化与这些数据性质中的MAE值密切相关.密切关注特定参数,可以看出执行超参数优化可以提供比默认参数设置更好的精度.
表 2给出ESRF、使用PCA降维的ESRF (ESRF-PCA)和使用IG降维的ESRF (ESRF-IG),在不同数据集下的MAE和RMSE比较结果.
当使用PCA降维减少具有低方差的强相关性变量时,ESRF的错误率变高,PCA无法有效处理这些数据特征,因为它捕获了具有较大方差特征的信息作为重要维度,但数据集一些有价值的信息具有较低的方差,它的预测结果变得很差.使用IG降维的ESRF对所有实验数据集具有更有利的预测能力.为了实现有效的PBA系统,本文系统的性能需要以最少的计算时间提供最佳的预测.如果特征具有独立性和隔离性,则使用IG降维的ESRF可以为PBA系统提供更好的预测结果.
表 3给出了各数据集下,Spark MLlib在分布式环境下使用类似的计算平台实现SRF[14]和ESRF的性能评估.从表 3可以看出,基于ESRF的PBA系统具有高效的性能,能够处理高维大数据,这是因为ESRF通过超参数优化和降维技术增强SRF.本文的PBA系统使用ESRF算法通过将大量不同的数据转化为及时的见解来加快决策速度.根据实验结果,本文的PBA系统可以在整个实验数据集上以最少的处理时间提供有效的性能.
-
为了对高维大数据进行预测分析,本文提出了基于增强可伸缩随机森林(ESRF)的高效大数据预测分析系统(PBA).本文系统通过执行超参数优化来增强SRF,基于PCA和IG通过对数据进行降维来改善预测分析的性能,将HDFS和Apache Spark分别用于分布式存储和并行计算以实现预测分析平台.实验结果表明,本文的PBA系统可以提供出色的预测能力,而且可以在整个实验数据集中以最少的处理时间提供有效的性能.未来的工作是重点研究针对高维大数据的实时PBA系统,以解决云分布式环境下大数据的实时跟踪和分析问题.