mercurial.utils.synthetic_data module

Generate synthetic pattern data for overfitting tests.

class mercurial.utils.synthetic_data.OverfittingTest(dim: int = 10)[source]

Bases: object

Test for overfitting using synthetic data.

Methods

compute_pattern_complexity(pattern)

Compute complexity using our measure (simplified).

evaluate_prediction(pattern, ...)

Accuracy: 1 if predicted complexity within 0.1 of true, else 0.

run_cross_validation(patterns[, n_folds])

Perform k-fold cross-validation on synthetic data.

train_test_split(patterns[, train_ratio])

Split patterns into training and test sets.

compute_pattern_complexity(pattern: Pattern) float[source]

Compute complexity using our measure (simplified).

evaluate_prediction(pattern: Pattern, predicted_complexity: float) float[source]

Accuracy: 1 if predicted complexity within 0.1 of true, else 0.

run_cross_validation(patterns: List[Pattern], n_folds: int = 5) Dict[source]

Perform k-fold cross-validation on synthetic data.

train_test_split(patterns: List[Pattern], train_ratio: float = 0.7) Tuple[List[Pattern], List[Pattern]][source]

Split patterns into training and test sets.

class mercurial.utils.synthetic_data.SyntheticDataGenerator(dim: int = 10, seed: int = 42)[source]

Bases: object

Generate synthetic patterns with known ground truth parameters.

Methods

generate_dataset([n_patterns, ...])

Generate a dataset of patterns with varying complexity.

generate_pattern([complexity, noise_level])

Generate a pattern with specified complexity and noise.

generate_dataset(n_patterns: int = 100, complexity_range: Tuple[float, float] = (0.1, 0.9), noise_level: float = 0.1) List[Pattern][source]

Generate a dataset of patterns with varying complexity.

generate_pattern(complexity: float = 0.5, noise_level: float = 0.1) Pattern[source]

Generate a pattern with specified complexity and noise. complexity: 0 = low, 1 = high (affects structure) noise_level: standard deviation of additive noise