2014-12-08 108 views
0

我正在尝试在数据使用上执行kmeans算法。运行时必须传递的选项需要一个到初始集群的路径。任何人都可以告诉我,即使在启动算法之前,我们如何拥有初始簇?使用mahout进行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> 
+0

[这里](http://unmeshasreeveni.blogspot.in/2014/11/how-to-run-k-means-clustering-in-mahout.html)是运行综合控制数据的一个例子。 – 2014-12-08 03:38:20

回答

0

A)亨利马乌是slooooow。如果您的数据适合主内存,请使用其他工具,如ELKI。他们远远超过了Mahout。如果你的数据不适合主存:你确定k-means对你的数据有什么意义吗?做一个不能解决问题的计算是没有意义的。从样本开始,首先检查它是否可用,然后放大。 Mahout是最后的选择:如果你绝对需要在所有数据上计算这个数据,并且其他所有数据都失败了,那么使用Mahout。

B)阅读所有的文档......亨利马乌k均值的文档中的下一行说:

注:如果-k提供参数,在-c目录中的任何集群将被覆盖, -k随机点将从输入向量中采样成为初始聚类中心。

换句话说:如果你知道初始聚类中心,通过-c提供给他们做设置-k。否则一个空的-c文件夹是好的,如果您提供-k,要采样的聚类中心的数量。