問題タブ [hdbscan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 段落/doc2vec ベクトルをクラスタリングするときの適切な距離メトリックは何ですか?
私の意図は、HDBSCAN を使用して doc2vec からドキュメント ベクトルをクラスター化することです。意味とテキストの重複がある小さなクラスターを見つけたいです。
これを行うために、gensim を使用してドキュメント ベクトルを生成しています。結果の docvec の要素はすべて [-1,1] の範囲にあります。
2 つのドキュメントを比較するには、角度の類似性を比較したいと考えています。ベクトルのコサイン類似度を計算することでこれを行いますが、これは正常に機能します。
ただし、ドキュメントをクラスター化するには、HDBSCAN は類似度マトリックスではなく、距離マトリックスを必要とします。でのコサイン類似度からコサイン距離へのネイティブ変換sklearn
は です1-similarity
。ただし、この式を使用すると、三角形の不等式が壊れて、真の距離メトリックでなくなる可能性があることを理解しています。同様のタスクのために他の人のコードを検索して見ると、ほとんどの人はとにかくsklearn.metrics.pairwise.pairwise_distances(data, metric='cosine')
コサイン距離を定義するものを使用しているよう1-similarity
です。適切な結果が得られているようです。
これが正しいかどうか、または として計算された角度距離を代わりに使用する必要があるかどうか疑問に思っていnp.arccos(cosine similarity)/pi
ます。また、l2 正規化されたドキュメント ベクトルでユークリッド距離を使用する人も見てきました。これは余弦類似度と同等のようです。
クラスタリング用のドキュメント ベクトル間の距離を計算するための最も適切な方法を教えてください :)
hdbscan - HDBSCAN で出力結果を印刷する方法
ASCII データがあり、HDBSCAN を使用してデータをクラスター化する必要があります。ラベルを取得しましたが、出力クラスターの結果、つまり hdbscan からの一意で分離された結果を出力する方法がわかりません。
スニペット: