Choosing a model¶
Choose the smallest model that matches the data and latency requirements.
| Need | Recommended model | Feature map | Solver | Backend |
|---|---|---|---|---|
| Fast baseline on tabular data | Batch ELM | RandomAdditiveMap |
BatchRidgeSolver |
CPU or GPU |
| Nonlinear toy with local structure | RBF ELM | RbfMap |
BatchRidgeSolver |
CPU |
| Incremental data chunks | OS-ELM | RandomAdditiveMap or RbfMap |
RlsSolver |
CPU |
| Concept drift | FOS-ELM | RandomAdditiveMap |
RlsSolver with forgettingFactor < 1 |
CPU |
| Ill-conditioned online initialization | ReOS-ELM | RandomAdditiveMap |
RlsSolver with regularization > 0 |
CPU |
| Class-distance constraint | OS-CELM | RandomAdditiveMap |
RlsSolver with constraint = kClassDistance |
CPU |
| Learned feature extraction | ML-ELM | StackedFeatureMap<ElmAutoEncoderLayer> |
BatchRidgeSolver |
CPU or GPU |
| Online learned feature stack | H-OS-ELM | StackedFeatureMap<ElmAutoEncoderLayer> |
RlsSolver |
CPU or GPU |
Decision guide¶
- Start with
BatchElmwhen you need a deterministic baseline. - Switch to
MlElmwhen a single random additive layer underfits nonlinear structure. - Use
OsElmwhen data arrives in chunks and retraining the full batch is too expensive. - Enable forgetting only when the stream distribution changes over time.
- Use
RbfMapwhen centers and width are meaningful for the problem geometry. - Keep
IdentityMapfor ablations and linear baselines.
Backend selection¶
Backend::kCpuis the correctness reference and is required for all algorithms.Backend::kGpuis intended for batch feature transforms and ridge solves.- GPU tests skip cleanly when no CUDA device is visible.