9

距離尺度がレベシュタインである単語のリストでkmeansクラスタリングを実行することに興味があります。

1) kmeans 実装を持つ scipy や orange など、多くのフレームワークがあることを知っています。ただし、それらはすべて、実際には私に合わないデータとしてある種のベクトルを必要とします。

2) 適切なクラスタリングの実装が必要です。私はpython-clusteringを見て、a)各重心までのすべての距離の合計を返さないこと、およびb)クラスタリングの品質を保証する反復制限またはカットオフのようなものがないことに気付きました。python-clustering と daniweb のクラスタリング アルゴリズムは、実際には機能しません。

誰かが私に良いライブラリを見つけてくれますか? Google は私の友達ではありません

4

4 に答える 4

1

ええ、私が必要とするものに対する適切な実装はないと思います。

距離キャッシュなど、いくつかのクレイジーな要件があります。

だから私は自分のライブラリを書いてGPLv3としてすぐにリリースすると思います。

于 2010-03-17T06:35:34.820 に答える
0

多分Wekaを見てください。これは、いくつかの教師なし学習の実装と優れた視覚化ツールを備えた Java ライブラリです。実際の運用環境に適しているかどうかはわかりませんが、間違いなく良い出発点です。

于 2012-01-09T11:11:43.363 に答える
0

あなたの特定の質問に対する答えではありませんが、「Programming Collective Intelligence」を一瞥することをお勧めします。クラスタリングなどの各章の終わりに、主題に関するすべての最良の読み物を説明するようにさまよっています。

于 2010-03-17T06:18:36.333 に答える
0

CrossValidatedに関するこの非常に素晴らしい回答はどうですか?

k-means の代わりに Affinity Propagation を使用し、その場合、入力として距離メトリックを与えることができます。k-means ベースのアプローチは、セントロイドの構築に基づいており、そのためにはベクトル空間にいる必要があるため、あなたのケースでは機能しないと思います。

アフィニティ伝播には、クラスターの数が自動的に選択されるというボーナスがあります。これは、設定を変更することで微調整できます (クラスターの数を増減できます) (デフォルトでは、すべてのペアごとの距離の中央値ですが、他のパーセンタイルを選択できます)。

クラスターの正確な数を指定する必要がある場合は、試行錯誤によってアフィニティ伝播を微調整する以外に、k-medoidsの実装を探すことができます (明らかに sklearn には実装がありませんが、人々はあちこちでそれを求めています) 。 . K-medoids は重心を構築しないため、ベクトル空間の概念は必要ありません。そのため、実装は、事前に計算された距離行列を入力として受け入れる場合があります (ただし、私が提供する参照をチェックしていません)。

于 2018-09-07T07:59:32.367 に答える