我正在尝试聚集以下示例坐标集:
(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:运行冠层血液以生成簇为:
$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 = []}重量:[props -optional]:点:点: 1.0:[4.000,2.000,4.000,4.000,4.000]
我想知道哪些坐标是哪个群集?我没有得到。
群集分配信息应在xz/clusteredpoints
中尝试以下操作:mahout seqdumper -i xz/clusteredpoints/part-m-00000
它应该给出输出,而每行是数据点为群集的分配。当我处理工作时,群集号首先出现,然后一个值表示可能性,数据点的文件标识符,然后最终协调信息
对不起,我不能更具体,我无法获得示例运行并复制您粘贴的输出。
在此示例中提到了clusteredpoints目录:https://cwiki.apache.org/confluence/display/mahout/quick tour fers text text analysis using the mahout command command line
祝你好运!
您的方法不正确!这样,您只会得到一个矢量!因此,您应该首先编写一个Hadoop程序,该程序将每行作为一个值和任何独特的键。您的Hadoop程序的输出格式必须是顺序输出格式。然后,使用seqsparse将结果(顺序文件)转换为Mahout向量。最后,应用Kmeans或任何您的Mahout聚类算法。