Streaming-Kmeans と呼ばれる mahout に K-Means の新しい実装があることを確認しました。
https://github.com/dfilimon/mahout/tree/epigrams
その使用法に関する記事はどこにも見つかりません。同じものを使用する方法に関するコード例がいくつかある、その使用法に関する有用なリンクを誰かが指摘できますか。
Streaming-Kmeans と呼ばれる mahout に K-Means の新しい実装があることを確認しました。
https://github.com/dfilimon/mahout/tree/epigrams
その使用法に関する記事はどこにも見つかりません。同じものを使用する方法に関するコード例がいくつかある、その使用法に関する有用なリンクを誰かが指摘できますか。
StreamingKMeans は mahout .8 の新機能です。そのアルゴリズムの詳細については、N. Ailon、R. Jaiswal、C. Monteleoni による「Streaming k-means approximation」 http://books.nips.cc/papers/files/nips22/NIPS2009_1085.pdf 「Fast and M. Shindler、A. Wong、A. Meyerson 著、 http://books.nips.cc/papers/files/nips24/NIPS2011_1271.pdf
ご指摘のとおり、その使用法に関する記事はありません。クラスタリング アルゴリズムの他のバージョンとして、いくつかの設定パラメータを文字列配列として渡すことができ、データをクラスタ化する Driver があります。
String[] args1 = new String[] {"-i","/home/name/workspace/XXXXX-vectors/tfidf-vectors","-o","/home/name/workspace/XXXXX-vectors/tfidf-vectors/SKM-Main-result/","--estimatedNumMapClusters","200","--searchSize","2","-k","12", "--numBallKMeansRuns","3", "--distanceMeasure","org.apache.mahout.common.distance.CosineDistanceMeasure"};
StreamingKMeansDriver.main(args1);
重要なパラメーターの説明を取得するには、最初のパラメーターとして「-iiii」のような間違いをしてください。パラメータ、その説明、およびデフォルト値が表示されます。
ただし、この方法で使用したくない場合は、StreamingKMeansMapper、StreamingKmeansReducer、StreamingKmeansThread を読んでください。これらの 3 つのクラス コードは、アルゴリズムの使用法を理解し、必要に応じてカスタマイズするのに役立ちます。Mapper は StreamingKMeans を使用して、入力データの推定クラスターを生成します。for get k final cluster Reducer は中間点 (前のステップで生成された重心) を取得し、ballKmeans を使用してこれらの中間点を K クラスターにクラスター化します。
ストリーミング k-means を実行する手順は次のとおりです。
mahout streamingkmeans -i "" -o "" --tempDir "" -ow -sc org.apache.mahout.math.neighborhood.FastProjectionSearch -k -km
-k = クラスタの数 -km = (k * log(n)) ここで、k = 数。クラスタ数、n = no。クラスター化するデータポイントの数。これを最も近い整数に丸めます
-sc パラメータに FastProjectionSearch または ProjectionSearch または LocalitySensitiveHashSearch を使用するオプションがあります。