论文部分内容阅读
随着互联网技术及移动互联网的飞速发展,网络上的数据呈指数型增长,而如何很好的利用这些数据,成为大家关注的焦点,从而促进了数据挖掘的快速发展。而在数据挖掘的领域,支持向量机(Support Vector Machine)是一种比较高效可信的数据分类算法,因其拥有较少的过度拟合、对于特征向量维数灾难影响不明显等优点而被广泛应用。但是传统的SVM本身并不适用于海量数据的处理,当处理海量数据时,其算法的空间和时间复杂度都比较高,导致训练特别慢,提升了训练得到训练模型的代价。为解决这些问题,对传统的SVM算法进行分布式并行化处理是一种有效的方法。本文对SVM算法的分布式并行化进行探讨。经过分析,CascadeSVM作为一种分布式SVM算法,在保证准确率的情况下,能够有效的减少训练时间。但是,本文发现CascadeSVM算法中存在改进的空间,每次迭代的训练层级固定,不能灵活的适应分布式环境。于是在CascadeSVM的基础上提出了一种新型分布式SVM算法。考虑到Hadoop平台是目前最流行的分布式并行计算平台,我们将CascadeSVM和新型分布式SVM算法的思想与Hadoop平台技术相结合,得到基于Hadoop平台的算法实现。为了验证分布式SVM算法能否达到优化的目的,我们搭建了小型的分布式集群,使用标准的covtype.binary数据集作为实验数据集,对传统的单机SVM算法、CascadeSVM及新型分布式SVM算法,主要从训练时间及预测准确率上进行比较。结果表明对于大规模数据,在保证一定的预测准确率的前提下,分布式SVM算法训练效率要明显优于单机SVM,而在分布式算法中,新型分布式SVM算法要略优于CascadeSVM。