论文部分内容阅读
支持向量机(Support Vector Machine, SVM)是Vapnik等人提出的一种基于统计学理论的机器学习算法。该算法在建立在统计学习理论的VC维理论和最小化结构风险原理的基础上,在解决小样本、非线性以及高维模式识别问题中都表现出了良好的性能。因此,这种新型的机器学习方法越来越受到各个领域的专家和学者们的青睐,日益成为数据挖掘技术中解决分类和回归问题的一个强有力的工具。然而,随着数据集规模的逐渐增大,SVM算法在训练过程中寻找全局最优支持向量的过程变的十分缓慢,并且占用大量的计算机软硬件资源,甚至无法在有效的时间和实际环境允许的条件下得到训练模型。云计算的提出为海量数据挖掘技术的发展带来了曙光。凭借云平台分布式文件系统强大的存储能力,同时将传统的数据挖掘算法进行分布式并行化处理,给海量数据挖掘技术的发展提供了良好的契机。本文从Hadoop云平台的分布式文件系统(HadoopDistributed File System,HDFS)和分布式编程框架MapReduce两个方面对当前最流行的开源云计算平台Hadoop进行了阐述,同时,对MapReduce计算框架的内部运行机制进行了深入剖析,并在Linux环境下基于Hadoop-1.0.0版本搭建了完全分布式的Hadoop云平台。Hadoop云平台依靠HDFS实现了对大规模数据集的分块存储。本文通过读取hdfs-site.xml配置文件中的dfs.block.size属性,将数据集按照容量大小进行了划分,然后,对分配在datanode节点上的每个block采用基于MapReduce编程框架的并行SVM算法进行并行化训练。传统的支持向量机算法在训练过程中的参数设置主要依赖于经验值的选取。本文在并行SVM算法训练过程中,采用了遗传算法对支持向量机的核函数类型、惩罚因子以及核函数参数进行了组合优化。实验结果分析表明,与依赖于经验值进行参数设置的传统SVM算法相比,采用遗传算法进行参数组合优化的SVM算法的预测精度得到了比较显著的提高。在UCI标准数据集上从训练时间、预测精度等方面对本文所提出的算法的可行性以及表现性能进行了的一系列实验分析,结果表明,并行化的SVM算法与传统的SVM算法相比,在不显著降低预测精度的前提下,训练时间复杂度得到了比较明显的降低。同时,本文使用加速比分析了并行算法所需的训练时间与Hadoop集群中计算节点数目之间的关系。实验结果分析表明,随着集群中计算节点数目的不断增加,加速比呈现出较快的上升趋势。