Score-SG
========
Use ``algorithm="score-sg"`` to select the approximate anti-hub reinforced
graph-construction path.
Score-SG is the scalable path to use when the traditional exact
``algorithm="core-sg"`` construction becomes limited by ``n_samples``. The
exact path builds dense pairwise distance information; Score-SG avoids that
dense all-pairs stage by using an approximate sparse-neighbor graph.
.. code-block:: python
from core_sg import CoreSGClusterer
clusterer = CoreSGClusterer(
k_max=15,
algorithm="score-sg",
metric="euclidean",
random_state=42,
approx_knn_kwargs={"n_trees": 8},
)
clusterer.fit(X, k=10)
.. raw:: html
Score-SG construction path
X
→
PyNNDescent
→
approximate kNN graph
→
anti-hub support
→
MST and hierarchy
→
estimator outputs
Score-SG uses PyNNDescent to build an approximate nearest-neighbor graph,
derives approximate core-distance lists, selects anti-hubs by directed
in-degree, adds support edges among selected anti-hubs, and then reuses the
same MST and hierarchy machinery as the classical path.
In the current benchmark pages, Score-SG is also the best-performing method in
the common repeated multi-``k`` comparison against exact CoreSG and HDBSCAN.
See :doc:`../performance/score_sg_results` for the measured speedups and
extended scaling results.
Important Behaviors
-------------------
``random_state`` controls random tie-breaking during anti-hub selection.
``approx_knn_kwargs`` is forwarded to PyNNDescent.
``anti_hubs_`` is available only when ``algorithm="score-sg"``.
Score-SG may fail explicitly if the constructed support graph is disconnected,
because MST extraction requires a connected support graph.