我试图对以下坐标示例集进行聚类:
(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: Ran生成集群,如:
$mahout canopy -i kfinal/tf-vectors --clustering -o xz -t1 5 -t2 2 -ow
步骤4:转储输出
$mahout clusterdump --input xz/clusters-0-final --pointsDir xz/clusteredPoints/ --output /home/ashokharnal/data/c.txt
输出在c.txt中显示为:
C-0{n=1 c=4.000,2.000,4.000,4.000,4.000 r=[]}重量:道具-可选点: 1.0: 4.000,2.000,4.000,4.000,4.000
我想知道哪个坐标在哪个星系团中?我不会明白的。
发布于 2014-02-08 06:18:21
聚类分配信息应该在xz/clusteredPoint中。
试一试: mahout -i xz/clusteredPoint/part-m-00000
它应该给出每一行都是将数据点分配给集群的输出。当我处理我的工作时,首先显示集群号,然后是表示可能性的值,数据点的文件标识符,最后是坐标信息。
对不起,我不能说得更具体,我无法让示例运行并复制您粘贴的输出。
本例中提到了clusteredPoints目录:https://cwiki.apache.org/confluence/display/MAHOUT/Quick+tour+of+text+analysis+using+the+Mahout+command+line
祝好运!
发布于 2014-07-16 12:56:07
你的方法不对!这样做,你只得到一个向量!因此,您首先应该编写一个hadoop程序,它将每一行作为一个值和任何唯一的键。hadoop程序的输出格式必须是顺序输出格式。然后,使用Seq稀疏将结果(顺序文件)转换为mahout向量。最后,应用Kmeans或任何您的mahout聚类算法。
https://stackoverflow.com/questions/21624585
复制相似问题