mahout中k-means算法運行與查看

1.首先,下載數據集synthetic_control.data,並將其導入到分佈式文件系統上。
運行hadoop 命令建立testdata文件夾:
$HADOOP_HOME/bin/hadoop fs -mkdir testdata
並將該文件放入改文件夾下面

 $HADOOP_HOME/bin/hadoop fs -put  synthetic_control.data testdata
  1. 運行mahout上的kmeans例子
    $HADOOP_HOME/ 爲hadoop 安裝目錄
$HADOOP_HOME/bin/hadoop jar /home/hadoop/mahout-distribution-0.4/mahout-examples-0.4-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
  1. 查看運行結果
    kmeans的運行結果在output 目錄下:
hadoop fs -du -h output
194      582      output/_policy
354.8 K  1.0 M    output/clusteredPoints
11.3 K   33.8 K   output/clusters-0
8.8 K    26.3 K   output/clusters-1
8.8 K    26.3 K   output/clusters-10-final
8.8 K    26.3 K   output/clusters-2
8.8 K    26.3 K   output/clusters-3
8.8 K    26.3 K   output/clusters-4
8.8 K    26.3 K   output/clusters-5
8.8 K    26.3 K   output/clusters-6
8.8 K    26.3 K   output/clusters-7
8.8 K    26.3 K   output/clusters-8
8.8 K    26.3 K   output/clusters-9
327.6 K  982.8 K  output/data
7.6 K    22.8 K   output/random-seeds

clusteredPoints:存放的是最後聚類的結果,將cluster-id和documents-id都展示出來了,用mahout seqdumper讀clusteredPoints結果的key-value類型是(IntWritable,WeightedVectorWritable)

clusters-N:是第N次聚類的結果,其中n爲某類的樣本數目,c爲各類各屬性的中心,r爲各類屬性的半徑。 clusters-N結果類型是(Text,Cluster)

data:存放的是原始數據,這個文件夾下的文件可以用mahout vectordump來讀取,原始數據是向量形式的,其它的都只能用mahout seqdumper來讀取,向量文件也可以用mahout seqdumper來讀取,只是用vectordump讀取出來的是數字結果,沒有對應的key,用seqdumper讀出來的可以看到key,即對應的url,而value讀出來的是一個類描述,而不是數組向量

  1. 將聚類結果寫到文件中
 $HADOOP_HOME/bin/mahout seqdumper -i output/clusteredPoints -o mahout_kmeans.txt

說明: -i 是輸入數據,-o 輸出,將文件輸出到mahout_kmeans.txt ,可直接打開查看
在這裏插入圖片描述key是聚類中心的行數,可查看聚類數據
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章