split_systematic_circular — Systematic circular sampling over sorted targets¶
Group: Splitters · C ABI: n4m_model_selection_systematic_circular_*
Description¶
Systematic circular split over sorted or ordered targets.
Parameters¶
Name |
Type |
Default |
|---|---|---|
|
|
|
|
|
|
API and bindings¶
C ABI (ABI 2): n4m_model_selection_systematic_circular_create · n4m_model_selection_systematic_circular_destroy · n4m_model_selection_systematic_circular_split. Use the linked public header for the exact signature, configuration, and result handles.
Python (verified public re-export):
from n4m.model_selection.splitters import SystematicCircular
Source signature: SystematicCircular(test_size: float = 0.25, seed: int = 0).
R: no current source-verified entry point was found for this catalog method.
MATLAB / Octave: no current source-verified entry point was found for this catalog method.
Explanations¶
Bibliographic source¶
No canonical paper defines this exact rotate-and-systematically-sample implementation. It is an internal systematic sampling heuristic whose seeded offset and rounding rules are source-defined.
Mathematical principle¶
Sort sample indices by y, draw a seeded circular offset, rotate that order, and choose n_train positions at approximately equal spacing \(step=n/n_{train}\) using rounded \(step\,i\). The remaining rotated positions form the test set; the engine sorts both final index arrays for stable output.
Appropriate uses¶
Spreading calibration samples across the ordered response range without bin boundaries.
Limits and validation¶
It uses y and therefore is inappropriate for a blind final test. Periodic ordering and rounding can create structure; ties are resolved by sorting behavior, and multicolumn y is rejected. The current Python binding requires y as (n_samples, 1) because its generic 1-D promotion creates the wrong orientation.
Implementation¶
Python role API n4m.model_selection.splitters.SystematicCircular; binding class SystematicCircularSplitter; ABI 2 family n4m_model_selection_systematic_circular_{create,split,destroy}.
The ABI-2 implementation is the n4m_model_selection_systematic_circular_* lifecycle in libn4m.
Sources and provenance¶
https://github.com/GBeurier/nirs4all-methods/blob/main/cpp/src/core/splitters/systematic_circular.h
See also: methods index · interactive dashboard