Skip to content

Choosing a model ​

Choose the smallest model that matches the data and latency requirements.

NeedRecommended modelFeature mapSolverBackend
Fast baseline on tabular dataBatch ELMRandomAdditiveMapBatchRidgeSolverCPU or GPU
Nonlinear toy with local structureRBF ELMRbfMapBatchRidgeSolverCPU
Incremental data chunksOS-ELMRandomAdditiveMap or RbfMapRlsSolverCPU
Concept driftFOS-ELMRandomAdditiveMapRlsSolver with forgettingFactor < 1CPU
Ill-conditioned online initializationReOS-ELMRandomAdditiveMapRlsSolver with regularization > 0CPU
Class-distance constraintOS-CELMRandomAdditiveMapRlsSolver with constraint = kClassDistanceCPU
Learned feature extractionML-ELMStackedFeatureMap<ElmAutoEncoderLayer>BatchRidgeSolverCPU or GPU
Online learned feature stackH-OS-ELMStackedFeatureMap<ElmAutoEncoderLayer>RlsSolverCPU or GPU

Decision guide ​

  1. Start with BatchElm when you need a deterministic baseline.
  2. Switch to MlElm when a single random additive layer underfits nonlinear structure.
  3. Use OsElm when data arrives in chunks and retraining the full batch is too expensive.
  4. Enable forgetting only when the stream distribution changes over time.
  5. Use RbfMap when centers and width are meaningful for the problem geometry.
  6. Keep IdentityMap for ablations and linear baselines.

Backend selection ​

  • Backend::kCpu is the correctness reference and is required for all algorithms.
  • Backend::kGpu is intended for batch feature transforms and ridge solves.
  • GPU tests skip cleanly when no CUDA device is visible.

Released under the MIT License.