我尝试在 Mahout 0.5 中运行 kmeans 示例,但失败了!我在 kmeans.props 中发现它需要一个奇怪的参数,-c
,这意味着path_to_initial_clusters
.
这是什么东西?我该如何准备呢?
kmeans.props:
The following parameters must be specified
i|input = /path/to/input
c|clusters = /path/to/initial/clusters
我尝试在 Mahout 0.5 中运行 kmeans 示例,但失败了!我在 kmeans.props 中发现它需要一个奇怪的参数,-c
,这意味着path_to_initial_clusters
.
这是什么东西?我该如何准备呢?
kmeans.props:
The following parameters must be specified
i|input = /path/to/input
c|clusters = /path/to/initial/clusters
所以 mahout 不需要特定格式的输入来执行其聚类算法。所以看看 seq2sparse: : Sparse Vector generation from Text sequence files seqdirectory: : Generate sequence files (of Text) from a directory
以路透社 21587 数据集为例。
以下是步骤:
1.mahout seqdirectory -c UTF-8 -i examples/reuters-extracted/ -o reuters-seqfiles
2.mahout seq2sparse -i reuters-seqfiles/ -o reuters-vectors -ow
3.mahout kmeans -i reuters-vectors/tfidf-vectors/ \ -c reuters-initial-clusters \ -o reuters-kmeans-clusters \ -dm org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure \ -cd 1.0 -k 20 -x 20 -cl
希望能帮助到你
K-means 需要初始集群以迭代更新质心(即集群的中心)直到它收敛。
-c, path_to_initial_clusters 要求您只为 mahout 提供一个目录来存储其初始集群。
您可以为 mahout 指定任何路径来存储初始集群,并且 mahout 将计算初始集群并存储在目录中。或者您可以通过树冠聚类或其他方法计算初始聚类,并告诉 mahout 您计算的初始聚类的目录以初始化 K-means 聚类。