| 汎用クラスタリングのために、SPORE(Skeleton Propagation Over Recalibrating Expansions)というクラスタリングアルゴリズムを作りました。これは、非凸・凸データ、低次元・高次元のデータのどれにも対応できるよう意図しています。2〜784Dの28個のデータセットでベンチマークし、Pythonパッケージと研究論文を公開しました。 短い要約SPOREは、密度分散に基づく手法で、任意の幾何形状と次元数における汎用クラスタリングを目的としています。まずknnグラフを構築した後、2つのフェーズがあります。フェーズ1(Expansion)では、BFSを用い、密度分散の制約を継続的に洗練(リファイン)しながら、初期クラスタをそれらの固有のスケールに適応する形で拡張します。狙いは、内側のよくシールドされたスケルトンを捉え、低分離の境界領域には踏み込みすぎないようにすることです。フェーズ2(Small-Cluster Reassignment、別名SCR)は、そうした境界点を取り囲むスケルトンにそれらを統合(マージ)し、隣接するクラスタ境界の間に鋭い線を引くことができます。これは、k-meansの分割が最も近いセントロイド/代表への割り当てを行うのに少し似ています。つまりSPOREは、スケールに適応した形状認識能力を持ち、クラスタ同士が近いときでも鋭い境界を描けるため、多くの密度ベースのクラスタリングアルゴリズムが抱える「マージしてしまうか、断片化してしまうか(merge-or-fragment)」問題に対して強く耐性があります。また、次元数にもかなり頑健で、数百次元まで対応できます。さらに、1000D+のLLM埋め込みに使ってもきれいな結果が得られました(ただし公平のために言うと、LLM埋め込みは高次元であるにもかかわらず、しばしばうまく分離されるように学習されていることが多いです)。 より詳しくSPOREには3つの主要ステップがあり、そのうち2つは実際のクラスタリングが行われる段階です:
[リンク] [コメント] |
[R] SPORE クラスタリングアルゴリズム
Reddit r/MachineLearning / 2026/4/1
💬 オピニオンIdeas & Deep AnalysisTools & Practical UsageModels & Research
要点
- 本記事では、非凸形状と凸形状の両方のクラスターを、幅広い次元数に対応して扱える汎用クラスタリングアルゴリズム「SPORE」を紹介する。
- SPOREはまずk-NNグラフを構築し(近似近傍をHNSWで用いることも可能)、その後2つのクラスタリングフェーズを実行する。具体的には、改良した密度-分散制約にもとづくBFSによる拡張フェーズと、小クラスタの再割り当てステップで境界点を周辺のクラスタへ統合する。
- 本手法は、密度ベースのクラスタリングに典型的な失敗パターン、特に「merge-or-fragment(統合または分裂)」問題を回避することを目的としている。低分離な境界領域を避け、隣接するクラスタ間の境界をより明確に引くことで、問題の発生を抑える。
- 著者は、2〜784次元にまたがる28のデータセットでベンチマークを行った結果を報告しており、数百次元までのロバスト性を主張している。さらに、非常に高次元(1000D超)のLLM埋め込みでのデモも示している。
- 本研究は、他者が手法を再現・評価できるように、PyPI上のPythonパッケージおよびarXivの研究論文の両方として公開されている。




