Java で軽量のクラスタリング ライブラリを探しています。そのライブラリに何百ものクラスタリング アルゴは必要ありません。5 ~ 7 個のアルゴで十分です。
きっと、「どのような種類のアルゴリズムが必要で、どのような目的のために」と尋ねるでしょう:)。クラスタリングを使用してデータを分類するだけです。たとえば、K は意味します。
PS: weka については知っていますが、特にクラスタリング専用ではないため、使用したくありません。
Java で軽量のクラスタリング ライブラリを探しています。そのライブラリに何百ものクラスタリング アルゴは必要ありません。5 ~ 7 個のアルゴで十分です。
きっと、「どのような種類のアルゴリズムが必要で、どのような目的のために」と尋ねるでしょう:)。クラスタリングを使用してデータを分類するだけです。たとえば、K は意味します。
PS: weka については知っていますが、特にクラスタリング専用ではないため、使用したくありません。
Apache のCommons Mathライブラリにあるorg.apache.commons.math4.ml.clustering.KMeansPlusPlusClustererを見てください。
Scala でも動作する場合は、このバージョンの KMeans を Scala で確認することをお勧めします。
https://github.com/wspringer/kmeans
関連するブログ投稿は次のとおりです。
Java で基本的なクラスタリング アルゴリズムが必要な場合は、私のソフトウェアを確認できます。
http://www.philippe-fournier-viger.com/spmf/
KMeans と階層的クラスタリング アルゴリズムの実装を提供します。
提供される他のアルゴリズムは、パターン マイニング用です。全部で 47 のアルゴリズムがあります。ただし、クラスタリングの場合は 2 つだけです。もう 1 つ: アルゴリズムを起動するためのシンプルな GUI があります。
GPL の下で利用可能な Java のオープンソース クラスタリング アルゴリズムがいくつかあります。Java Colt ライブラリが必要です (行列用)。 http://open.trickl.com/
WEKA に似たオープンソースの大学プロジェクトである ELKIもありますが、機械学習アルゴリズムの代わりにクラスター分析と外れ値検出に焦点を当てています。これは非常に高度で、効率のためにインデックス構造を使用し、少なくとも 12 のクラスタリング アルゴリズムを備えています。
JUNGを見てみます。K-means がその 1 つかどうかはわかりませんが、多くのクラスタリング アルゴリズムが実装されています。
もう 1 つのオプションは、Eclipse ベースのワークフロー エディターであるKnimeを調べることです。これには、K-means など、ワークフローの一部として使用できる多数のクラスタリング プリミティブが含まれます。
Cytoscapeソフトウェアには、ネットワークと数値データのクラスタリング アルゴリズムを実装するプラグインがいくつかあります (Nemo、MCODE、clusterMaker など)。すべてのプラグインはオープンソースです。
Apache Mahout は、Hadoop を介して多くのクラスタリング アルゴリズムを実装しています。あなたが望むものには少し重いですが、http://cwiki.apache.org/MAHOUT/syntheticcontroldata.html
また、推奨エンジンの目的でクラスタリングを使用する Mahout の TreeClusteringRecommender クラスからユーザー クラスタリング コードを掘り出して適応させることができるかもしれません。