论文部分内容阅读
随着网络技术的迅猛发展,网络产生的数据量增速惊人,数据结构的复杂程度也越来越加剧,那么如何从海量复杂数据中挖掘出有用信息成为目前众多学者研究的热点问题。支持向量机(Support Vector Machine)是一种非常著名的有监督的数据分类方法,具有预测准确率高、很少出现过拟合现象以及较少参数调优等优点,成为解决分类问题的首选方法。但是当数据集规模很大甚至远超过单节点计算机的存储和处理能力时,传统的单机SVM由于占用内存大、训练时间长等限制了其在大数据领域的应用。经研究发现,基于集群方式的分布式处理能够有效缩短训练时间,解决内存占用大的问题。因此,研究分布式并行计算的SVM算法尤为重要。目前,预测准确率相对较高的分布式并行SVM算法大都采用多层迭代全反馈的机制实现。多层迭代即逐层剔除非支持向量保留支持向量的过程,那么最终保留下来的支持向量就是原始训练集的全局最优解。这些算法都采用随机划分(RP)的方法生成并行训练的子样本集。经实验测试发现,使用随机划分生成子样本集的方法存在两点不足:(i)生成的子数据集的分布情况与原始数据集的分布情况很可能存在偏差;(ii)在并行环境下,每次训练使用的子样本集可能均不相同。因此得到的整体训练模型并不可靠,最终训练预测的准确率较低且多次训练结果存在明显的抖动现象。为此,本文提出一种基于k-means聚簇生成子数据集的并行SVM优化算法,使用无监督的k-means聚类算法导向性的划分数据集,从而有效避免随机划分存在的问题。将并行SVM优化算法部署到目前流行的分布式计算平台-Hadoop平台上,完成实验数据集的测试。实验数据结果表明,本文提出的优化算法既能有效减轻随机划分方式划分数目增多时,子数据集的分布情况与原始数据集的分布情况存在的偏差,又能减少整体训练模型的抖动。因此,该算法具有较强的鲁棒性和较好的泛化学习能力。