Javaでk-meansアルゴリズムをプログラムしようとしています。いくつかの配列を計算しました。各配列にはいくつかの係数が含まれています。このすべてのデータをグループ化するには、k-meansアルゴリズムを使用する必要があります。このアルゴリズムの実装を知っていますか?
ありがとう
Javaでk-meansアルゴリズムをプログラムしようとしています。いくつかの配列を計算しました。各配列にはいくつかの係数が含まれています。このすべてのデータをグループ化するには、k-meansアルゴリズムを使用する必要があります。このアルゴリズムの実装を知っていますか?
ありがとう
私は自分でコードを調べたことはありませんが、この JavaWorld の記事にあるマルチスレッドの K-means 実装があり、かなり参考になります。
OpenCV は、私がこれまでに使用しなければならなかったライブラリの中で最も恐ろしく書かれたライブラリの 1 つです。一方、Matlab は非常にきれいに処理します。
自分でコーディングする必要がある場合、アルゴリズムは非常に単純であり、効率的です。
"Programming Collective Intelligence"に、K-means クラスタリングの非常に優れた Python 実装があります。強くお勧めします。
Java に変換する必要があることは承知していますが、それほど難しくはないようです。
本当に、KMeans は本当に簡単なアルゴリズムです。自分でコーディングしない正当な理由はありますか? 私はQtでそれを行い、コードをプレーンな古いSTLに移植しましたが、それほど問題はありませんでした.
私は Joel のアイデアのファンになり始めました: 外部依存関係がないので、あなたが制御していない大きなソフトウェアの良いところを教えてください.ソフトウェア/
話は安っぽい、本物の男が自分たちのコードを世界に公開する: http://github.com/elcuco/data_mining_demo
より一般的になるようにコードを少しきれいにする必要があり、現在のバージョンは STL に移植されていませんが、それはスタートです!
非常に古い質問ですが、 K-Meansの実装があり、その使用法に関するドキュメントが含まれているJava Machine Learning Libraryについて言及されていないことに気付きました。
プロジェクトはあまり活発ではありませんが、最後のバージョンは比較的最近 (2012 年 7 月) です。
投稿したすべての人が、事実上の画像処理ライブラリである OpenCV http://sourceforge.net/projects/opencvlibrary/について言及するのを忘れていたようです。KMeans を機能させるには、C OpenCV コードの周りに JNI ラッパーを作成する必要がありますが、追加の利点は次のとおりです。
主な欠点は、JNI ラッパーを作成する必要があることです。私は以前、テンプレート マッチング ルーチンが必要で、多くの代替案に直面していましたが、JNI ラッパーを作成することを余儀なくされたにもかかわらず、OpenCV が群を抜いて優れていることがわかりました。