10

クラスター化したい大規模なデータセットがあります。私のトライアル ラン セットのサイズは 2,500 オブジェクトです。「実際の取引」で実行すると、少なくとも 20,000 個のオブジェクトを処理する必要があります。

これらのオブジェクトは、それらの間に余弦の類似性があります。このコサイン類似度は、数学的な距離メトリックであるという要件を満たしていません。三角不等式を満たしていません。

予想されるクラスターの数を事前に指定する必要なく、類似したオブジェクトをまとめる「自然な」方法でそれらをクラスター化したいと思います。

それを行うアルゴリズムを知っている人はいますか?本当に、a) 距離メトリックと b) 事前に指定された数のクラスターを必要としないアルゴリズムを探しているだけです。

どうもありがとう!

この質問は以前ここで尋ねられました: コサイン類似度値からのクラスタリング (ただし、このソリューションは K-means クラスタリングのみを提供します)、およびここ: 類似度行列の効果的なクラスタリング (ただし、このソリューションはかなり曖昧でした)

4

3 に答える 3

3

Apache mahoutには、Nを指定する必要がなく、距離メトリックを指定できるものを含む、いくつかのクラスタリングアルゴリズムがあります。

平均シフトクラスタリングはk-meansに似ていますが、事前に指定された数のクラスターがありませんhttps://cwiki.apache.org/confluence/display/MAHOUT/Mean+Shift+Clustering

次に、より一般的には、さまざまなアルゴリズムを試してみたい場合は、Rで利用できる洗練されたパッケージが非常に豊富にあります(クラスターの最適な数を選択するEMの変分ベイズ法の実装をいくつか含む)。過去の私の研究のいくつか:http://cran.r-project.org/web/views/Cluster.html

于 2012-06-22T05:31:28.607 に答える
2

アフィニティ伝播 (http://www.psi.toronto.edu/index.php?q=affinity%20propagation) を試すこともできます。このアルゴリズムは類似度行列を入力として取り、クラスターの重心の数を自動的に調整することもできると思います。

于 2012-06-23T19:53:07.233 に答える
2

実際、「距離関数」を必要とするほとんどのアルゴリズムには、それがメトリックである必要はありません。

DBSCAN は、距離から抽象化されたバージョンに一般化できます (ウィキペディアを参照)。ある種の「密な」概念が必要なだけです。(DBSCANも事前にクラスタ数を知る必要はありません)

しかし、メートル法を超えて距離に関してかなり厳しい要件がある k-means の場合でも、球面 k-means と呼ばれる変形があります。

とにかく、データベースのコンテキストでは、「メトリック」の完全な要件は理想的です。実際のデータでは、同じ座標を持つ 2 つのレコードが存在する可能性があるため、せいぜい疑似メトリックを持つことになります。三角形の不等式は、主に最適化 (たとえば、厳密な三角形の不等式の要件を持つ M ツリー インデックスを使用することによる) や、このプロパティを利用する高速化された k-means の役割を果たします。

于 2012-06-22T22:53:08.600 に答える