论文部分内容阅读
随着互联网技术的不断发展,各行各业都产生了海量的数据,如何从这些数据中获取有意义的信息成为一个亟待解决的问题。对于大规模数据集,原始的数据挖掘算法处理能力有限。支持向量机(Support Vector Machine,SVM)很少过度拟合。并且,对于线性不可分数据集或特征向量维数很高的数据集,支持向量机算法的分类正确率相对比较高,适合于文本数据集。但是对于数据规模比较大的情况,支持向量机算法的计算复杂度高、运行时间比较长。因此本文结合目前热门的云计算平台Hadoop,提出一种基于Hadoop MapReduce的并行层叠支持向量机方法(Parallel Cascade Support Vector Machine,PCSVM)。该算法采用类似级联的方法,基于MapReduce模型将数据分成多个子训练集,并分层级联,对每个子数据集进行并行训练,得到支持向量集,从而得出分类模型。在并行训练过程中,为了减少训练样本的分布差异过大而对分类产生的潜在影响,该算法还采用了反馈的方法对得到的分类器进行优化。实验结果表明,基于Hadoop的并行层叠支持向量机算法在确保较高正确率的条件下,能够有效减少训练时间,提高分类速度。Spark是轻量级的快速云计算平台,它不需要多次读写Hadoop分布式文件系统,更适合迭代运算比较多的情况。因此,本文又提出了基于Spark的并行支持向量机方法,该方法采用一种基于预设的微型批量并行梯度下降算法(Budgeted Mini-Batch Parallel Gradient Descent, BMBPGD)。BMBPGD算法采用去除预设的维护方法来保持支持向量的数量,它具有恒定的空间和时间复杂度。实验结果表明,在Spark环境下,BMBPGD算法比Spark自带的机器学习库MLlib中的SVMWithSGD算法精度高,并且比经典算法LibSVM花费时间短。本文还介绍了实验室开发的大云并行数据挖掘(Big Cloud Parallel Data Mining,BC-PDM)系统,将并行支持向量机算法集成到该系统中。本文会详细说明并行支持向量机算法的集成过程,以及对文本数据使用BC-PDM系统中并行支持向量机模块进行分类的详细过程。