中文

一种新的 K-means 并行化方法

分布式、并行与集群计算 2016-08-30 v2

摘要

K-means 是数据挖掘领域常用的一种聚类方法。为处理大规模数据集,研究者提出了 PKMeans,即 MapReduce 上的并行 k-means。然而,包括 PKMeans 在内的现有 k-means 并行化方法存在诸多局限。PKMeans 无法在一个 MapReduce 作业中完成所有迭代,因此必须在循环中重复级联 MapReduce 作业直至收敛。在最流行的 MapReduce 平台 Hadoop 上,每个 MapReduce 作业都会在作业启动和混洗阶段引入显著的 I/O 开销和额外执行时间。更糟糕的是,已证明在最坏情况下,k-means 需要 2Ω(n)2^{{\Omega}(n)} 个 MapReduce 作业才能收敛,其中 n 是数据实例的数量,这意味着对于大规模数据集而言开销巨大。此外,在 PKMeans 中,每个质心最多只能分配一个 reducer 进行更新,因此 PKMeans 只能利用有限数量的并行 reducer。本文提出了一种改进的 k-means 并行方法 IPKMeans,该方法具有使用 k-d 树的并行预处理阶段,能够在单个 MapReduce 作业中完成 k-means,且并行工作的 reducer 数量远超 PKMeans,I/O 开销更低,并具有一个快速的后处理阶段来生成最终结果。在我们的方法中,k-d 树和新的改进并行 k-means 均使用 MapReduce 实现并在 Hadoop 上进行了测试。实验表明,在相同数据集和初始质心的情况下,我们的方法相比 PKMeans 可降低多达 2/3 的 I/O 开销,并消耗更少的时间来获得非常接近的聚类结果。

关键词

引用

@article{arxiv.1608.06347,
  title  = {A New Parallelization Method for K-means},
  author = {Shikai Jin and Yuxuan Cui and Chunli Yu},
  journal= {arXiv preprint arXiv:1608.06347},
  year   = {2016}
}