K表示使用mahout进行聚类

时间:2014-12-08 02:10:21

标签: cluster-analysis mahout k-means

我正在尝试使用数据执行kmeans算法。运行时必须传递的选项需要初始集群的路径。任何人都可以告诉我,即使在启动算法之前我们如何才能拥有初始集群?

bin/mahout kmeans \
    -i <input vectors directory> \
    -c <input clusters directory> \
    -o <output working directory> \
    -k <optional number of initial clusters to sample from input vectors> \
    -dm <DistanceMeasure> \
    -x <maximum number of iterations> \
    -cd <optional convergence delta. Default is 0.5> \
    -ow <overwrite output directory if present>
    -cl <run input vector clustering after computing Canopies>
    -xm <execution method: sequential or mapreduce>

1 个答案:

答案 0 :(得分:0)

A)Mahout是 slooooow 。如果您的数据适合主存储器,请使用其他工具,如ELKI。到目前为止,他们的表现超过了Mahout。如果您的数据不适合主内存:您确定k-means对您的数据有任何意义吗?进行无法解决问题的计算是没有意义的。从样本开始首先检查它是否有效,然后按比例放大。 Mahout是最后的选择:如果您绝对需要计算所有数据,并且其他一切都失败了,那么请使用Mahout。

B)阅读所有文档...... Mahout k-means文档中的下一行说:

  

注意:如果提供了-k参数,则-c目录中的任何集群都将被覆盖,并且将从输入向量中采样-k个随机点,以成为初始集群中心

换句话说:如果您知道初始群集中心,请通过-c提供,并设置-k。否则一个空的-c文件夹就可以了,如果你提供-k ,那就是要采样的集群中心的数量。