OpenMS
CrossValidation Class Reference

Lightweight K-fold / LOO cross-validation utilities and 1-D grid search. More...

#include <OpenMS/ML/CROSSVALIDATION/CrossValidation.h>

Public Types

enum class  CandidateTieBreak { PreferLarger , PreferSmaller , PreferAny }
 Tie-breaking preference for equal (within tolerance) CV scores. More...
 

Static Public Member Functions

static std::vector< std::vector< Size > > makeKFolds (Size n, Size K)
 Build K folds for indices [0, n). More...
 
template<typename CandIter , typename TrainEval , typename ScoreFn >
static std::pair< typename std::iterator_traits< CandIter >::value_type, double > gridSearch1D (CandIter cbegin, CandIter cend, const std::vector< std::vector< Size >> &folds, TrainEval train_eval, ScoreFn score, double tie_tol=1e-12, CandidateTieBreak tie_break=CandidateTieBreak::PreferLarger)
 One-dimensional grid search with external cross-validation evaluation. More...
 

Detailed Description

Lightweight K-fold / LOO cross-validation utilities and 1-D grid search.

Provides:

  • makeKFolds(n, K): deterministic round-robin fold assignment (LOO if K==n)
  • gridSearch1D(...): evaluate a 1-D candidate grid via CV and pick the best

Tie-breaking uses a tiny absolute tolerance and (optionally) prefers larger candidates (useful for smoother/regularized models).

References:

  • Stone, M. (1974) Cross-Validatory Choice and Assessment of Statistical Predictions. J. Roy. Stat. Soc. B, 36(2):111–147.
See also
GridSearch