2

この質問で説明されているようにベクターを作成mahout kmeansし、データを実行しました。

Mahout 0.7を使用しているためclusterdump、Mahout in Actionで説明されているようにコマンドが機能しませんでしたが、次のように機能するようになりました。

export HADOOP_CLASSPATH=/path/to/mahout-distribution-0.7/core/target/mahout-core-0.7-job.jar:/path/to/mahout-distribution-0.7/integration/target/mahout-integration-0.7.jar
hadoop jar core/target/mahout-core-0.7-job.jar org.apache.mahout.utils.clustering.ClusterDumper -i /clustering/out/clusters-20-final -o textout -of TEXT

そして私はこのような行を取得しています:

VL-1383471{n=192 c=[0.180, -0.087, 0.281, 0.512, 0.678, 1.833, 2.613, 0.313, 0.226, 1.023, 0.229, -0.104, -0.461, -0.553, -0.318, 0.315, 0.658, 0.245, 0.635, 0.220, 0.660, 0.193, 0.277, -0.182, 0.497, 0.346, 0.658, 0.660, 0.191, 0.660, 0.636, 0.018, 0.519, 0.335, 0.535, 0.008, -0.028, 0.461, 0.229, 0.287, 0.619, 0.509, 0.566, 0.389, -0.075, -0.180, -0.461, 0.381, -0.108, 0.126, -0.728] r=[0.983, 0.890, 0.384, 0.823, 0.702, 0.000, 0.000, 1.132, 0.605, 0.979, 0.897, 0.862, 0.438, 0.546, 0.390, 0.171, 0.257, 0.234, 0.251, 0.106, 0.257, 0.093, 0.929, 0.077, 0.204, 0.218, 0.257, 0.257, 0.258, 0.257, 0.249, 0.112, 0.217, 0.157, 0.284, 0.197, 0.228, 0.229, 0.323, 0.401, 0.248, 0.217, 0.269, 1.002, 0.819, 0.706, 0.412, 0.964, 0.787, 0.872, 0.172]}

各クラスターのベクトルの名前が必要なため、これはまだ役に立ちません。テキストドキュメントの場合、辞書ファイルが作成されるのを見ました。データの辞書を作成するにはどうすればよいですか?

また、を使用-of CSVすると空のファイルが表示されますが、何か問題がありますか?

私が行ったもう1つの試みは、Mahout in Actionのリスト7.2でcluster-20-final/part-m-00000行ったように、ファイルに直接アクセスすることでした。が含まれていないことが判明しましたが、そこからインスタンスを取得できますが、実際に含まれているものはありません。WeightedVectorWritableClusterWritableClusterVector

4

2 に答える 2

0

(本当に遅い答えですが、これを理解するのに1日を費やしたので、共有したいと思いました)

あなたが欠けているのは、そのインデックスへのベクトル次元名の辞書です。このディクショナリは、ベクトル内のさまざまな次元の名前を提供するために、clusterdump によって使用されます。

clusterdump を実行する場合、次の 2 つの追加フラグを指定できます。

  • d: 辞書ファイル
  • dt: 辞書ファイルのタイプ (text|sequencefile)

呼び出しの例を次に示します。

mahout clusterdump -i clusteringExperiment/exp1/initialCentroids/clusters-0-final -d clusteringExperiment/dictionary/vectorDimensions -dt sequencefile

出力は次のようになります。

VL-0{n=185 c=[A:0.006, G:0.550, M:0.011, O:0.026, S:0.000, T:0.072, U:0.096, V:0.010] r=[A:0.029, G:0.176, M:0.043, O:0.054, S:0.001, T:0.098, U:0.113, V:0.035]}

ディクショナリは単純なキー値ファイルであり、キーはカテゴリ名 (文字列) であり、値は数値インデックスであることに注意してください。

于 2015-04-01T23:50:02.880 に答える