Example notebooks
The following Jupyter notebooks demonstrate various applications of Hill Climber.
Notebook descriptions
1. Simulated annealing introduction
Introduction to simulated annealing concepts and the hill climbing algorithm.
View: 01-simulated_annealing.ipynb
2. Pearson & Spearman correlation
Generate datasets with:
Strong Spearman correlation but weak Pearson correlation (non-linear monotonic)
Strong Pearson correlation but weak Spearman correlation (linear with outliers)
View: 02-pearson_spearman.ipynb
3. Mean & standard deviation with diverse structures
Create families of distributions with:
Identical means across distributions
Identical standard deviations across distributions
Maximum structural diversity (different shapes)
View: 03-mean_std.ipynb
4. Low Pearson correlation & low entropy
Generate 2D point distributions with:
Low Pearson correlation (near-zero linear relationship)
Low joint entropy (clustered, non-uniform distributions)
View: 04-entropy_pearson.ipynb
5. Feature interactions
Create datasets where:
Individual features have weak correlations with the label
Multiple linear regression using all features achieves high R²
Demonstrates importance of feature interactions
View: 05-feature_interactions.ipynb
6. Checkpointing example
Demonstrates checkpoint and resume functionality for long-running optimizations.
View: 06-checkpoint_example.ipynb
Note
To run these notebooks interactively, clone the repository and open them in Jupyter:
git clone https://github.com/gperdrizet/hill_climber.git
cd hill_climber
jupyter notebook notebooks/