如何在Mahout K-means聚类中维护数据输入ID

Bre*_*nen 5 apache hadoop k-means mahout

我正在使用mahout来运行k-means聚类,我在集群时遇到了识别数据条目的问题,例如我有100个数据条目

id      data
0       0.1 0.2 0.3 0.4
1       0.2 0.3 0.4 0.5
...     ...
100     0.2 0.4 0.4 0.5
Run Code Online (Sandbox Code Playgroud)

在集群之后,我需要从集群结果中获取id以查看哪个点属于哪个集群,但似乎没有方法来维护id.

在聚合合成控制数据的官方mahout示例中,只有数据被输入到没有id的mahout

28.7812 34.4632 31.3381 31.2834 28.9207 ...
...
24.8923 25.741  27.5532 32.8217 27.8789 ...
Run Code Online (Sandbox Code Playgroud)

并且集群结果只有cluster-id和point值:

VL-539{n=38 c=[29.950, 30.459, ...
   Weight:  Point:
   1.0: [28.974, 29.026, 31.404, 27.894, 35.985...
   2.0: [24.214, 33.150, 31.521, 31.986, 29.064
Run Code Online (Sandbox Code Playgroud)

但是没有point-id存在,那么,任何人都可以知道如何在进行mahout聚类时添加维持一个point-id?非常感谢你!

mon*_*noo 0

您的请求经常被那些本身不是从业者的程序员所忽视......不幸的是。我不知道如何做到 Mahout(到目前为止),但我从 Apache-commons-math 开始,它包括具有相同缺陷的 K-means。我对其进行了调整,以满足您的要求。您可以在这里找到它: http: //code.google.com/p/noolabsimplecluster/ 此外,不要忘记将数据标准化(线性)到区间 [0..1],否则任何聚类算法都会产生垃圾!