Logarithm::CrossValidation
Enhanced cross-validation framework with early stopping.
This module provides k-fold cross-validation functionality to evaluate model performance and prevent overfitting. It supports hyperparameter optimization through grid search and random search methods, plus early stopping.
Example usage:
cv = CrossValidation.new(k: 5)
results = cv.evaluate_with_early_stopping(model, training_data, validation_data)
best_params = cv.grid_search(model_class, training_data, param_grid)
Constructors
Instance methods
Evaluate model performance using k-fold cross-validation.
Parameters:
- model: The model to evaluate (will be cloned for each fold)
- data: Training data as array of tensors
- epochs: Number of training epochs per fold
- learning_rate: Learning rate for training
Returns: Hash with validation metrics (mean_loss, std_loss, fold_losses)
Evaluate model with early stopping using cross-validation.
Parameters:
- model: The model to evaluate
- train_data: Training data
- val_data: Validation data for early stopping
- max_epochs: Maximum number of epochs
- patience: Early stopping patience
Returns: Hash with evaluation metrics and early stopping info
Perform grid search for hyperparameter optimization.
Parameters:
- model_class: The model class to instantiate
- data: Training data
- param_grid: Hash of parameter names to arrays of values to try
Returns: Best parameter combination and its performance
Perform grid search with early stopping.
Parameters:
- model_class: The model class to instantiate
- train_data: Training data
- val_data: Validation data for early stopping
- param_grid: Hash of parameter names to arrays of values to try
- max_epochs: Maximum epochs per evaluation
- patience: Early stopping patience
Returns: Best parameter combination and its performance
Perform random search for hyperparameter optimization.
Parameters:
- model_class: The model class to instantiate
- data: Training data
- param_distributions: Hash of parameter names to distributions/ranges
- n_iter: Number of random combinations to try
Returns: Best parameter combination and its performance