2014-02-07 27 views
0

我想群集以下示例设置坐标:亨利马乌使用命令行来创建集群 - 问题

(1,1) , (2,1) , (1,2), (2,2), (3,3), (8,8), (8,9), (9,8), (9,9) 

这些座标形成两个集群:

(1,1) , (2,1) , (1,2), (2,2), (3,3) 

(8,8), (8,9), (9,8), (9,9) 

这就是我如何进行:

步骤 1:在Hadoop存储在此作为在文件中的制表符分隔的数据为:

1 1 

2 1 

1 2 

2 2 

3 3 

8 8 

8 9 

9 8 

9 9 

步骤 2:此文件转换成序列文件为:

$mahout seqdirectory --input my.data --output kdraft -c UTF-8

步骤 3:创建一个稀疏数据文件为:

$mahout seq2sparse -i kdraft -o kfinal -wt tf

步骤 4: 然冠层alogrithm生成集群为:

$mahout canopy -i kfinal/tf-vectors --clustering -o xz -t1 5 -t2 2 -ow

步骤 4:甩输出

​​

输出出现在C。 txt为:

C-0 {n = 1 c = [4.000,2000,4000,4000,4000] r = []}重量:[道具 - 可选]:点: 1.0:[4.000,2000,4000,4000,4000 ]

我想知道哪个坐标在哪个簇?我没有得到它。

回答

0

聚类分配信息应该在XZ/clusteredPoints

尝试: 亨利马乌seqdumper -i XZ/clusteredPoints /部分-M-00000

它应该给输出每一行是的分配一个数据点指向一个集群。当我为我的工作进行处理时,簇号首先出现,然后显示一个表示可能性的值,一个数据点的文件标识符,然后最终坐标信息

对不起,我不能更具体,我无法得到该示例运行并重现您粘贴的输出。

有一个在这个例子中,clusteredPoints目录提到: https://cwiki.apache.org/confluence/display/MAHOUT/Quick+tour+of+text+analysis+using+the+Mahout+command+line

好运!

-1

您的方法不正确!通过这样做,你只会得到一个向量!所以,你应该先写一个hadoop程序,将每行作为一个值和一个唯一的键。你的hadoop程序的输出格式必须是顺序输出格式。然后,使用Seqsparse将您的结果(顺序文件)转换为mahout向量。最后应用Kmeans或任何你的mahout聚类算法。