Add GP_ELITE (pure-Python GP, LM constants, optional dimensional constraints) - #212
Add GP_ELITE (pure-Python GP, LM constants, optional dimensional constraints)#212ariel95500-create wants to merge 6 commits into
Conversation
|
Bumped to gp-elite 0.4.1 (now on PyPI) and updated metadata.yml. 0.4.1 fixes a silent float64 overflow in the Levenberg-Marquardt constant For reference, Happy to adjust anything to fit the harness. |
090e9ea to
3f27b67
Compare
Add metadata for GP_ELITE symbolic regression package
Implement GPEliteSRBench class for symbolic regression with time constraints.
|
Reopening — the branch was accidentally reset while syncing the fork, |
Implemented GPEliteSRBench class for symbolic regression with time constraints and multiple restarts. Added methods for fitting the model, generating sympy expressions, and calculating model complexity.
|
Restored after an accidental fork sync emptied this PR — the branch was
Apologies for the churn. |
This PR adds GP_ELITE, a pure-Python symbolic regression library
(pip install gp-elite, MIT).
Method: genetic programming with island parallelism, Levenberg-Marquardt
constant optimization, native multi-restart with merged archives, and a
complexity/accuracy Pareto front. The regressor passes scikit-learn's
check_estimator, implements max_time via time-boxed sequential restarts,
and model() returns a sympy-compatible string using the dataset column
names, with input normalization folded in (the string reproduces
est.predict on raw features to ~1e-12).
Internal run of the SRBench ground-truth protocol on the 119 Feynman
datasets (10k rows, 75/25 split, 3 seeds, R2_test>0.999): 60.2% of runs
solved, 69% of datasets solved by at least one seed, median R2 0.99973.
Raw jsonl logs and the runner are available in the project repo.
Repo: https://github.com/ariel95500-create/gp-elite
Happy to adjust anything to fit the harness.