24

私の目的は、テキスト文書のコーパスに関して単語がどれだけ類似しているかに基づいて単語をクラスター化することです。すべての単語のペア間で Jaccard 類似度を計算しました。言い換えれば、私は私と一緒に利用できる疎距離行列を持っています。距離行列を入力として受け取るクラスタリング アルゴリズム (およびおそらく Python のライブラリ) を教えてもらえますか? また、クラスターの数も事前にわかりません。これらの単語をクラスター化し、どの単語がクラスター化されているかを取得したいだけです。

4

3 に答える 3

15

事前計算された距離行列を使用して、scikit-learn でほとんどのアルゴリズムを使用できます。残念ながら、多くのアルゴリズムにはクラスターの数が必要です。 DBSCANは、クラスターの数を必要とせず、任意の距離行列も使用する唯一のものです。MeanShiftを試すこともできますが、それは距離を座標として解釈します - これもうまくいくかもしれません。

アフィニティの伝播もありますが、うまく機能しているとは思えません。ただし、多くのクラスターが必要な場合は、それが役立つ場合があります。

開示:私はscikit-learnのコア開発者です。

于 2013-04-27T12:59:29.570 に答える
10

scipy クラスタリング パッケージは便利です ( scipy.cluster )。scipy.cluster.hierarchyには階層クラスタリング関数があります。ただし、これらは入力として圧縮行列 (距離行列の上三角) を必要とすることに注意してください。ドキュメンテーション ページが役立つことを願っています。

于 2013-04-27T06:06:42.610 に答える