1

以下を使用して K-Means を実行します。

KMeansDriver.run(new Path("./bd.seq.file"), new Path(clustersLoc), new Path("output"),
            new EuclideanDistanceMeasure(), 0.001, 10, true, 0.5, false);

私の目的は、元のベクトルがそれぞれどのクラスターに属しているかを知ることです。私の理解では、これは output/clusteredPoints/part-m-00000 にあるはずですが、このファイルは空の (120 バイト) シーケンス ファイルのように見えます。

何を与える?

4

1 に答える 1

1

OK、やっと手に入れました(少なくとも部分的に)。KMeansDriver.run()8番目のパラメータに関係しています。値が「0」の場合、Mahout 0.5 と同じように動作します。パラメータの名前は「clusterClassificationThreshold」で、その javadoc には次のように記載されています。

クラスタリングの厳密性/外れ値除去パラメーターです。値は 0 から 1 の間である必要があります。pdf がこの値を下回るベクトルはクラスター化されません。

私のような Mahout の初心者にとって、pdf は「確率密度関数」の頭字語です。このパラメーターが実際に何であるかはわかりません (グーグルはここでは役に立ちませんでした。javadocs だけが得られるでしょう)。しかし、Mahout 開発者が選択した元のベクトルをフィルター処理するメカニズムの一部であるためだと思います。 「0」でない場合は、クラスタリング ポイントを無効にします。

于 2013-01-27T12:53:42.887 に答える