evo-suite¶
Evolutionary computation for tabular data engineering.
evo-suite is a family of independent, scikit-learn-compatible
packages that apply evolutionary computation to the data-preprocessing stage of a
machine-learning pipeline. They share one repository, CI and documentation, but
are published to PyPI independently.
Distribution |
Import |
Technique |
Role |
Status |
|---|---|---|---|---|
|
Genetic Programming |
Missing-value imputation |
Available |
|
|
Genetic Algorithm |
Feature selection |
Available |
|
|
Genetic Programming |
Feature engineering |
Available |
|
|
Genetic Algorithm |
Ensemble construction |
Available |
The four packages are complementary and form a natural pipeline: evo-imp
imputes missing values with symbolic expressions, evo-gpfe constructs
new features through evolved symbolic expressions, evo-gafs selects the
best subset from the (possibly augmented) feature set, and evo-ens
combines several final models into a diversity-aware ensemble. Chaining GP
and GA (construct, then select) is a common pipeline; see the
06_gp_then_ga_pipeline.py example.
evo-imp — Evolutionary Symbolic Imputer¶
A genetic-programming missing-value imputer.
Interpretable, non-linear imputation: evolves a symbolic expression per feature (
sqrt(x2) * log(|x5|) + 0.87*x3), auditable viaget_expressions(), unlikeKNNImputer/IterativeImputer/MissForest.Holdout-validated fitness: the reported RMSE and the fallback decision are computed on a held-out split, not in-sample, so the comparison against the mean baseline is honest.
Never worse than the mean: an automatic fallback to
SimpleImputer-style behaviour when GP does not improve over it.Native scikit-learn transformer:
fit(X, y=None)/fit_transform/get_feature_names_out, usable in aPipeline; unlike the rest ofevo-suiteit acceptsNaNinput by design.Built-in multi-dataset
EvoImpBenchmarkRunnerand MCAR evaluation helpers.
evo-gafs — Genetic Algorithm Feature Selector¶
A genetic-algorithm wrapper feature selector.
Explicit accuracy ↔ compression trade-off via a single
alphaparameter — ideal for edge/embedded deployment.Multi-objective NSGA-II mode exposing the full Pareto front.
Native scikit-learn estimator:
fit/transform/get_support, usable in aPipelineand tunable withGridSearchCV.Repair operator guaranteeing feasible subsets, evaluation cache, and a built-in multi-dataset benchmark runner.
evo-gpfe — Genetic Programming Feature Engineer¶
A genetic-programming symbolic feature constructor.
Sequential hall-of-fame strategy: relevance to the target, penalised by redundancy with already-generated features and tree complexity.
Protected primitives (safe division, log, sqrt, …) so randomly assembled expressions always evaluate.
Native scikit-learn transformer:
fit/transform/get_feature_names_out, usable in aPipelineand tunable withGridSearchCV.Anti-bloat controls (static height limit, parsimony penalty) and a built-in multi-dataset benchmark runner.
evo-ens — Evolutionary Ensemble Builder¶
A genetic-algorithm ensemble constructor.
Diversity-aware fitness: co-optimizes predictive score and prediction diversity (Yule’s Q-statistic / Pearson correlation) between members.
Out-of-fold pre-computation: candidate models are cross-validated once, making evolution over large populations cheap.
Native scikit-learn estimators:
EvoEnsembleClassifier/EvoEnsembleRegressor—fit/predict/predict_proba, usable in aPipelineand tunable withGridSearchCV.Multi-objective NSGA-II mode exposing the full score/compression Pareto front, and a built-in multi-dataset benchmark runner.
→ Quickstart · User guide · API reference