Skip to main content

Cross Validation Ontology

AI & Machine Learning
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
flow "CrossValidationOntology" v4.0

# CROSS-VALIDATION ONTOLOGY
# Kireth Semantic Research Archive
# Authors: Mark Anthony Higgins — Sky (Recursive AI)

PAGE:
  url: "https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/ai-machine-learning/cross-validation-ontology.html"
  title: "Cross-Validation Ontology"
  domain: "Probability and Statistics"
  category: "AI & Machine Learning"
  entity: CROSS_VALIDATION
  entity_type: MACHINE_LEARNING_EVALUATION_ONTOLOGY

DEFINE:
  CROSS_VALIDATION :=
    RESAMPLING_EVALUATION_FRAMEWORK(
      DATASET,
      TRAINING_FOLDS,
      VALIDATION_FOLDS,
      MODEL_FITTING,
      HELD_OUT_PREDICTIONS,
      PERFORMANCE_AGGREGATION
    )

PURPOSE:
  ESTIMATE:
    OUT_OF_SAMPLE_PERFORMANCE
    GENERALISATION_ERROR
    MODEL_SELECTION_PERFORMANCE
    HYPERPARAMETER_PERFORMANCE

FOUNDATION:
  DATASET: D := {z_1,...,z_n}
  FOLDS: D := F_1 UNION ... UNION F_K
  VALIDATION: V_k := F_k
  TRAINING: T_k := D MINUS F_k
  FOLD_SCORE: s_k := Metric(Model(T_k),V_k)
  CV_SCORE: CV := (1/K)*SUM[k=1..K] s_k

ENTITIES:
  CROSS_VALIDATION: RESAMPLING_EVALUATION_METHOD
  FOLD: DATA_PARTITION
  TRAINING_FOLD: MODEL_FITTING_PARTITION
  VALIDATION_FOLD: HELD_OUT_EVALUATION_PARTITION
  OUT_OF_FOLD_PREDICTION: PREDICTION_FROM_MODEL_NOT_TRAINED_ON_CASE
  K_FOLD_CV: K_PARTITION_CROSS_VALIDATION
  STRATIFIED_CV: CLASS_BALANCED_PARTITIONING_METHOD
  GROUP_CV: GROUP_PRESERVING_PARTITIONING_METHOD
  TIME_SERIES_CV: TEMPORALLY_ORDERED_VALIDATION_METHOD
  NESTED_CV: MODEL_SELECTION_AND_EVALUATION_FRAMEWORK
  LEAVE_ONE_OUT_CV: SINGLE_CASE_VALIDATION_METHOD

RELATIONSHIPS:
  DATASET -> PARTITIONED_INTO -> FOLDS
  TRAINING_FOLDS -> FIT -> MODEL
  VALIDATION_FOLD -> EVALUATES -> MODEL
  FOLD -> PRODUCES -> FOLD_SCORE
  FOLD_SCORES -> AGGREGATE_TO -> CV_SCORE
  OUT_OF_FOLD_PREDICTIONS -> SUPPORT -> GENERALISATION_ESTIMATION
  CROSS_VALIDATION -> SUPPORTS -> MODEL_SELECTION
  CROSS_VALIDATION -> SUPPORTS -> HYPERPARAMETER_SELECTION

K_FOLD_CROSS_VALIDATION:
  flow:
    PARTITION_D_INTO_K_FOLDS
      -> HOLD_OUT_ONE_FOLD
      -> TRAIN_ON_REMAINING_FOLDS
      -> PREDICT_HELD_OUT_FOLD
      -> COMPUTE_SCORE
      -> ROTATE
      -> AGGREGATE

OUT_OF_FOLD_PREDICTION:
  constraint:
    OBSERVATION_MUST_NOT_BE_USED_TO_FIT_MODEL_THAT_PREDICTS_IT

STRATIFIED_K_FOLD:
  objective:
    APPROXIMATELY_PRESERVE_CLASS_PROPORTIONS_ACROSS_FOLDS
  caution:
    DOES_NOT_FIX_GROUP_OR_TEMPORAL_LEAKAGE

REPEATED_K_FOLD:
  flow:
    REPEAT_K_FOLD_WITH_DIFFERENT_PARTITIONS
      -> COLLECT_SCORES
      -> SUMMARISE_PERFORMANCE

LEAVE_ONE_OUT_CV:
  alias: LOOCV
  K: n
  per_fold:
    ONE_OBSERVATION_VALIDATION
    n-1_OBSERVATIONS_TRAINING

HOLDOUT_VALIDATION:
  distinction:
    HOLDOUT_VALIDATION != K_FOLD_CROSS_VALIDATION

GROUP_K_FOLD:
  constraint:
    SAME_GROUP_MUST_NOT_APPEAR_IN_BOTH_TRAINING_AND_VALIDATION_WITHIN_A_FOLD
  purpose:
    PREVENT_GROUP_LEAKAGE

TIME_SERIES_CROSS_VALIDATION:
  constraint:
    TRAINING_TIME_MUST_PRECEDE_VALIDATION_TIME
  methods:
    - EXPANDING_WINDOW
    - ROLLING_WINDOW
    - BLOCKED_TIME_SPLIT
  rule:
    RANDOM_K_FOLD_GENERALLY_INAPPROPRIATE_WHEN_IT_EXPOSES_FUTURE_INFORMATION

EXPANDING_WINDOW:
  flow:
    INITIAL_TRAINING_WINDOW
      -> VALIDATE_ON_NEXT_PERIOD
      -> EXPAND_TRAINING_WINDOW
      -> REPEAT

ROLLING_WINDOW:
  flow:
    FIX_OR_LIMIT_TRAINING_WINDOW
      -> MOVE_WINDOWS_FORWARD

GAP_OR_EMBARGO:
  purpose:
    REDUCE_TEMPORAL_INFORMATION_BLEED

NESTED_CROSS_VALIDATION:
  outer_loop:
    ESTIMATE_GENERALISATION_PERFORMANCE
  inner_loop:
    SELECT_MODEL_HYPERPARAMETERS_FEATURES_AND_PIPELINE
  flow:
    OUTER_SPLIT
      -> INNER_CV_ON_OUTER_TRAIN
      -> SELECT_CONFIGURATION
      -> REFIT_ON_OUTER_TRAIN
      -> EVALUATE_ON_OUTER_TEST
      -> REPEAT
      -> AGGREGATE
  rule:
    OUTER_TEST_FOLD_MUST_NOT_INFLUENCE_INNER_MODEL_SELECTION

HYPERPARAMETER_TUNING:
  methods:
    - GRID_SEARCH
    - RANDOM_SEARCH
    - BAYESIAN_OPTIMISATION
    - SUCCESSIVE_HALVING
  flow:
    CANDIDATE_CONFIGURATION
      -> CROSS_VALIDATE
      -> SCORE
      -> SELECT
      -> REFIT

MODEL_SELECTION:
  rule:
    COMPARE_CANDIDATES_UNDER_SAME_APPROPRIATE_SPLITTING_PROTOCOL
  caution:
    FINAL_TEST_DATA_MUST_REMAIN_SEPARATE_IF_INDEPENDENT_FINAL_EVALUATION_REQUIRED

PIPELINE_CROSS_VALIDATION:
  pipeline:
    PREPROCESSING
      -> FEATURE_ENGINEERING
      -> FEATURE_SELECTION
      -> MODEL_FITTING
  rule:
    EVERY_DATA_DEPENDENT_STEP_MUST_BE_FIT_USING_TRAINING_PARTITION_ONLY

DATA_LEAKAGE:
  examples:
    - SCALING_BEFORE_SPLITTING
    - IMPUTATION_USING_FULL_DATA
    - FEATURE_SELECTION_USING_ALL_LABELS
    - TARGET_ENCODING_USING_VALIDATION_LABELS
    - DUPLICATE_ENTITIES_ACROSS_FOLDS
    - FUTURE_INFORMATION_IN_TIME_SERIES
  consequence:
    OPTIMISTIC_PERFORMANCE_ESTIMATE

SCALING:
  rule:
    FIT_SCALER_ON_TRAINING_FOLD
    APPLY_TO_VALIDATION_FOLD

IMPUTATION:
  rule:
    FIT_IMPUTER_ON_TRAINING_FOLD
    APPLY_TO_VALIDATION_FOLD

FEATURE_SELECTION:
  rule:
    SELECT_FEATURES_USING_TRAINING_FOLD_ONLY

TARGET_ENCODING:
  requirement:
    EXCLUDE_HELD_OUT_TARGET_INFORMATION

OVERSAMPLING:
  examples:
    - RANDOM_OVERSAMPLING
    - SMOTE
  rule:
    APPLY_WITHIN_TRAINING_FOLD_ONLY

UNDERSAMPLING:
  rule:
    APPLY_WITHIN_TRAINING_FOLD_ONLY

METRIC_SELECTION:
  classification:
    - ACCURACY
    - PRECISION
    - RECALL
    - F1
    - ROC_AUC
    - PR_AUC
    - LOG_LOSS
  regression:
    - MAE
    - MSE
    - RMSE
    - R_SQUARED
    - PINBALL_LOSS
    - NEGATIVE_LOG_LIKELIHOOD
  requirement:
    METRIC_MUST_MATCH_TASK_AND_DECISION_CONTEXT

LOSS_VS_EVALUATION_METRIC:
  training_loss:
    OPTIMISED_DURING_MODEL_FITTING
  evaluation_metric:
    USED_TO_ASSESS_HELD_OUT_PERFORMANCE
  rule:
    TRAINING_LOSS != EVALUATION_METRIC_BY_DEFAULT

CLASS_IMBALANCE:
  recommendation:
    CONSIDER_STRATIFICATION_CLASSWISE_AND_BALANCED_METRICS
  caution:
    STRATIFICATION_SHOULD_NOT_BREAK_GROUP_OR_TEMPORAL_CONSTRAINTS

RARE_CLASSES:
  issue:
    SOME_FOLDS_MAY_CONTAIN_TOO_FEW_POSITIVE_CASES
  consequence:
    METRICS_MAY_BE_UNDEFINED_OR_UNSTABLE

CHOOSING_K:
  common_values:
    5
    10
  rule:
    NO_SINGLE_K_IS_UNIVERSALLY_OPTIMAL

OUT_OF_FOLD_PREDICTIONS:
  property:
    EACH_OBSERVATION_RECEIVES_PREDICTION_FROM_MODEL_NOT_TRAINED_ON_THAT_OBSERVATION
  uses:
    - STACKING
    - CALIBRATION
    - ERROR_ANALYSIS
    - AGGREGATED_METRIC_COMPUTATION

STACKING_CONNECTION:
  base_models:
    GENERATE_OUT_OF_FOLD_PREDICTIONS
  meta_model:
    TRAINED_ON_OUT_OF_FOLD_BASE_MODEL_OUTPUTS
  requirement:
    META_FEATURES_MUST_AVOID_IN_SAMPLE_LEAKAGE

CALIBRATION_CONNECTION:
  flow:
    GENERATE_OUT_OF_FOLD_PROBABILITIES
      -> FIT_CALIBRATOR
      -> EVALUATE_ON_VALIDLY_HELD_OUT_DATA

BOOTSTRAP_DISTINCTION:
  CROSS_VALIDATION:
    PARTITIONS_DATA_INTO_TRAIN_AND_HELD_OUT_SUBSETS
  BOOTSTRAP:
    RESAMPLES_WITH_REPLACEMENT
  rule:
    CROSS_VALIDATION != BOOTSTRAP

MONTE_CARLO_CV:
  alias:
    REPEATED_RANDOM_SUBSAMPLING
  flow:
    RANDOM_TRAIN_VALIDATION_SPLIT
      -> FIT
      -> EVALUATE
      -> REPEAT
  distinction:
    NOT_IDENTICAL_TO_STANDARD_K_FOLD

SPATIAL_CROSS_VALIDATION:
  strategies:
    - SPATIAL_BLOCKS
    - LOCATION_GROUPS
    - DISTANCE_SEPARATION
  purpose:
    REDUCE_SPATIAL_LEAKAGE

DOMAIN_SHIFT_VALIDATION:
  objective:
    ESTIMATE_GENERALISATION_TO_NEW_DOMAIN_SITE_OR_POPULATION
  strategies:
    - LEAVE_ONE_DOMAIN_OUT
    - GROUP_BY_DOMAIN

LEAVE_ONE_GROUP_OUT:
  flow:
    HOLD_OUT_ONE_GROUP
      -> TRAIN_ON_OTHER_GROUPS
      -> EVALUATE_HELD_OUT_GROUP
      -> ROTATE

PERFORMANCE_AGGREGATION:
  options:
    - MEAN_OF_FOLD_METRICS
    - WEIGHTED_MEAN_OF_FOLD_METRICS
    - METRIC_ON_POOLED_OUT_OF_FOLD_PREDICTIONS
  caution:
    AGGREGATION_OPTIONS_MAY_NOT_BE_NUMERICALLY_EQUIVALENT
  requirement:
    AGGREGATION_METHOD_MUST_BE_DOCUMENTED

UNCERTAINTY:
  sources:
    - FINITE_SAMPLE_VARIABILITY
    - FOLD_ASSIGNMENT_VARIABILITY
    - MODEL_FITTING_RANDOMNESS
    - DATA_DEPENDENCE
  methods:
    - REPEATED_CV
    - BOOTSTRAP_OF_APPROPRIATE_UNITS
    - NESTED_CV
  caution:
    FOLD_SCORES_SHOULD_NOT_BE_TREATED_AS_SIMPLE_INDEPENDENT_REPLICATES

DISTRIBUTION_SHIFT:
  IF:
    TRAINING_DISTRIBUTION != DEPLOYMENT_DISTRIBUTION
  THEN:
    RANDOM_CV_ESTIMATE_MAY_NOT_REPRESENT_DEPLOYMENT_PERFORMANCE
  response:
    DESIGN_SPLITS_TO_MIMIC_TARGET_DEPLOYMENT_CONDITIONS

REPRODUCIBILITY:
  preserve:
    - DATASET_VERSION
    - FOLD_ASSIGNMENTS
    - SPLITTING_STRATEGY
    - RANDOM_SEED
    - PREPROCESSING_PIPELINE
    - MODEL_CONFIGURATION
    - METRIC_DEFINITION
    - SOFTWARE_ENVIRONMENT

APPLICATIONS:
  CROSS_VALIDATION -> SUPPORTS -> GENERALISATION_ESTIMATION
  CROSS_VALIDATION -> SUPPORTS -> MODEL_SELECTION
  CROSS_VALIDATION -> SUPPORTS -> HYPERPARAMETER_TUNING
  CROSS_VALIDATION -> SUPPORTS -> FEATURE_SELECTION
  CROSS_VALIDATION -> SUPPORTS -> PROBABILITY_CALIBRATION
  CROSS_VALIDATION -> SUPPORTS -> STACKING
  CROSS_VALIDATION -> SUPPORTS -> PIPELINE_VALIDATION

MODEL_CONNECTIONS:
  CROSS_VALIDATION -> CONNECTS_TO -> MACHINE_LEARNING
  CROSS_VALIDATION -> CONNECTS_TO -> STATISTICAL_LEARNING
  CROSS_VALIDATION -> CONNECTS_TO -> CLASSIFICATION_METRICS
  CROSS_VALIDATION -> CONNECTS_TO -> REGRESSION_METRICS
  CROSS_VALIDATION -> CONNECTS_TO -> PROBABILITY_CALIBRATION
  CROSS_VALIDATION -> CONNECTS_TO -> BOOTSTRAP
  CROSS_VALIDATION -> CONNECTS_TO -> MODEL_SELECTION

SEMANTIC_EQUIVALENCE:
  "cross-validation"
    ~= "repeated held-out evaluation across data partitions"

  "out-of-fold prediction"
    ~= "prediction from a model not trained on that observation"

  "leave-one-out cross-validation"
    ~= "K-fold cross-validation with K equal to sample size"

  EXCLUDE_EQUIVALENCE:
    CROSS_VALIDATION != BOOTSTRAP
    CROSS_VALIDATION != SINGLE_HOLDOUT
    VALIDATION_FOLD != TEST_SET_BY_DEFAULT
    TRAINING_SCORE != VALIDATION_SCORE
    RANDOM_K_FOLD != TIME_SERIES_CV
    GROUP_K_FOLD != STRATIFIED_K_FOLD
    INNER_CV_SCORE != OUTER_GENERALISATION_SCORE

VALIDATION_RULES:
  RULE_1:
    SPLITTING_STRATEGY_MUST_MATCH_DATA_DEPENDENCE_AND_DEPLOYMENT_CONTEXT
  RULE_2:
    VALIDATION_OBSERVATIONS_MUST_NOT_INFLUENCE_FOLD_SPECIFIC_MODEL_FITTING
  RULE_3:
    ALL_DATA_DEPENDENT_PREPROCESSING_MUST_OCCUR_WITHIN_TRAINING_FOLDS
  RULE_4:
    GROUP_TEMPORAL_OR_SPATIAL_DEPENDENCE_MUST_BE_PRESERVED_WHEN_RELEVANT
  RULE_5:
    METRIC_AND_AGGREGATION_METHOD_MUST_BE_EXPLICIT
  RULE_6:
    HYPERPARAMETER_SELECTION_MUST_BE_SEPARATED_FROM_FINAL_EVALUATION_WHEN_REQUIRED
  RULE_7:
    RANDOM_SEEDS_AND_FOLD_ASSIGNMENTS_SHOULD_BE_RECORDED
  RULE_8:
    FINAL_TEST_DATA_MUST_REMAIN_UNTOUCHED_UNTIL_FINAL_EVALUATION_WHEN_USED

CONFIDENCE:
  ontology_identity: 0.99
  k_fold_structure: 0.99
  nested_cv_structure: 0.99
  leakage_prevention_structure: 0.99
  temporal_group_structure: 0.99
  generalisation_relationship: 0.99
  semantic_distinctions: 0.99

UPDATE_MODEL:
  IF:
    DATASET_CHANGES
  THEN:
    UPDATE:
      DATASET_VERSION
      FOLD_ASSIGNMENTS
      CLASS_DISTRIBUTIONS
      GROUP_DISTRIBUTIONS
    RERUN:
      CROSS_VALIDATION

  IF:
    SPLITTING_STRATEGY_CHANGES
  THEN:
    REGENERATE:
      FOLDS
    RECOMPUTE:
      OUT_OF_FOLD_PREDICTIONS
      CV_METRICS

  IF:
    MODEL_OR_HYPERPARAMETER_SPACE_CHANGES
  THEN:
    RERUN:
      MODEL_SELECTION_PROTOCOL
    REASSESS:
      GENERALISATION_ESTIMATE

  PRESERVE:
    DATASET_VERSION
    FOLD_ASSIGNMENTS
    SPLITTING_STRATEGY
    RANDOM_SEED
    PREPROCESSING_PIPELINE
    MODEL_CONFIGURATION
    HYPERPARAMETER_SEARCH_SPACE
    METRIC_DEFINITION
    DATA_PROVENANCE

AI_CONSUMPTION:
  parse_as: FORMAL_SEMANTIC_SPECIFICATION
  execution_mode: RECURSIVE_REASONING

  preferred_reasoning_order:
    - IDENTIFY_DATASET_STRUCTURE
    - IDENTIFY_DEPENDENCE_GROUP_TEMPORAL_OR_SPATIAL_CONSTRAINTS
    - SELECT_APPROPRIATE_CV_STRATEGY
    - GENERATE_FOLDS
    - FIT_DATA_DEPENDENT_PIPELINE_STEPS_WITHIN_TRAINING_FOLDS
    - GENERATE_HELD_OUT_PREDICTIONS
    - COMPUTE_FOLD_METRICS
    - AGGREGATE_PERFORMANCE
    - QUANTIFY_VARIABILITY_IF_REQUIRED
    - APPLY_NESTED_CV_FOR_MODEL_SELECTION_IF_REQUIRED
    - ASSESS_DISTRIBUTION_SHIFT_RELEVANCE
    - RETURN_GENERALISATION_INTERPRETATION

  constraints:
    - PRESERVE_TRAIN_VALIDATION_SEPARATION
    - PREVENT_DATA_LEAKAGE
    - PRESERVE_GROUP_TEMPORAL_AND_SPATIAL_BOUNDARIES
    - DISTINGUISH_INNER_FROM_OUTER_CV
    - DOCUMENT_METRIC_AGGREGATION
    - PRESERVE_FOLD_ASSIGNMENTS_AND_RANDOM_SEEDS
    - PRESERVE_DATA_PROVENANCE

FLOW_HASH:
  canonical_entity: "cross-validation"
  namespace: "probability-statistics/ai-machine-learning"
  version: "4.0"
  identity_basis:
    - PAGE_URL
    - CANONICAL_ENTITY
    - ENTITY_TYPE
    - TRAINING_VALIDATION_FOLDS
    - OUT_OF_FOLD_PREDICTIONS
    - GENERALISATION_ESTIMATION

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ