Scalable symbolic learning with island evolution, DAG execution, shared multiclass models, distillation, and deployment export.
Project description
FastSymbolicGP V0.7.0
FastSymbolicGP is a scikit-learn-compatible symbolic machine-learning library for classification, regression, supervised symbolic feature construction, model distillation, and experimental symbolic networks.
V0.7.0 is the Scalable Symbolic Learning release. It expands the V0.6.0 engine with island evolution, DAG execution, a persistent bounded subtree cache, shared-backbone multiclass learning, resource budgets, deployment export, model profiling, native missing-value operators, robustness objectives, and Publication Benchmark V3.
Main V0.7.0 capabilities
- binary classification and symbolic regression;
- multiclass OVR and
shared_softmaxsymbolic learning; - NSGA-II-style Pareto ranking and compact final-model selection;
- symbolic probability ensembles and ensemble distillation;
- island evolution with migration and heterogeneous island profiles;
- DAG compilation and common-subexpression compression;
- bounded persistent LRU subtree cache;
- NumPy/Numba postfix evaluator fallback when DAG execution is disabled;
FastSymbolicTransformerV2 with mRMR/diversity/Pareto selection;- checkpoint, resume, warm start, and checkpoint branching;
- automatic presets and time/evaluation/memory budgets;
- native missing-value primitives and robust-fitness perturbations;
- local feature-occlusion explanations and experimental counterfactual search;
- Python, C, C++, Java, Kotlin, and JavaScript source export;
- inference latency and structural-cost profiling;
- reproducible Publication Benchmark V3 with common saved folds and LaTeX tables;
- a live island-grid terminal dashboard.
Installation
From the release wheel:
python -m pip install fastsymbolicgp-0.7.0-py3-none-any.whl
python -m fastsymbolicgp.cli
For optional Numba acceleration:
python -m pip install "fastsymbolicgp[acceleration]"
The source ZIP also includes install_fastsymbolicgp_v070.bat.
Binary classification with islands and the live dashboard
from fastsymbolicgp import FastSymbolicClassifier
model = FastSymbolicClassifier(
population_size=32,
generations=120,
optimization="nsga2",
evolution_model="islands",
n_islands=4,
island_profiles=("accurate", "compact", "diverse", "robust"),
migration_interval=10,
prediction_mode="symbolic_ensemble",
ensemble_size=5,
subtree_cache=True,
dag_execution="auto",
probability_calibration="auto",
preset="balanced",
display="grid",
dashboard_interval=5,
random_state=42,
)
model.fit(X_train, y_train)
The report distinguishes the requested postfix evaluator from the actual execution path:
print(model.evaluation_backend_) # e.g. numba
print(model.execution_engine_) # e.g. dag_cached_numpy
Shared-backbone multiclass model
model = FastSymbolicClassifier(
multiclass_strategy="shared_softmax",
shared_n_components=8,
multiclass_calibration="temperature",
population_size=24,
generations=80,
optimization="nsga2",
random_state=42,
)
model.fit(X_train, y_train)
The model evolves a shared bank of symbolic features and trains one joint multinomial softmax head. OVR remains available through multiclass_strategy="ovr".
Symbolic feature construction
from fastsymbolicgp import FastSymbolicTransformer
transformer = FastSymbolicTransformer(
n_components=12,
component_selection="mrmr",
max_correlation=0.90,
include_original_features=True,
model_params={"population_size": 30, "generations": 50, "verbose": 0},
random_state=42,
)
Z_train = transformer.fit_transform(X_train, y_train)
Distillation
distilled = model.distill(
X_train,
max_nodes=35,
population_size=48,
generations=80,
verbose=0,
)
The distilled model learns the teacher's probability surface using one compact symbolic expression per required output.
Native missing values and robust fitness
model = FastSymbolicClassifier(
missing_value_strategy="native",
function_set=("add", "sub", "mul", "div", "is_missing", "coalesce"),
robustness_training=True,
robustness_method="combined",
robustness_weight=0.05,
)
Resource budgets
model = FastSymbolicClassifier(
preset="auto",
time_budget=120,
evaluation_budget=1_000_000,
memory_budget_mb=2048,
)
stop_reason_ records whether evolution ended by maximum generations, early stopping, time budget, or evaluation budget.
Deployment export and profiling
model.export_python("deployed_model.py")
model.export_c("deployed_model.c")
model.export_cpp("deployed_model.hpp")
model.export_java("FastSymbolicModel.java")
model.export_kotlin("FastSymbolicModel.kt")
model.export_javascript("fast_symbolic_model.js")
print(model.profile_prediction(X_test[:100], repeats=100))
Python export supports binary, multiclass OVR/shared-softmax, and regression. Portable C/C++/Java/Kotlin/JavaScript export supports binary classification and regression in V0.7.0.
Checkpoint branching
compact_branch = model.branch(
parsimony_target_nodes=25,
generations=180,
)
compact_branch.continue_evolution(X_train, y_train, additional_generations=60)
Publication Benchmark V3
fastsymbolicgp-benchmark ^
--datasets breast_cancer,iris,wine ^
--algorithms fastsymbolicgp,logistic,random_forest,hist_gradient_boosting,svm ^
--runs 6 ^
--folds 5 ^
--population-size 30 ^
--generations 120 ^
--islands 4 ^
--output-dir benchmark_v070_results
The benchmark stores common fold indices, raw and summary results, failures, expressions, environment data, algorithm ranks, and LaTeX-ready tables.
Stable versus experimental
Stable in V0.7.0:
- classifier, regressor, OVR/shared-softmax multiclass;
- island evolution, DAG/cache, Pareto selection, ensembles;
- transformer V2, distillation, checkpointing;
- Python export, binary/regression portable exports;
- benchmark framework and reporting.
Experimental in V0.7.0:
FastSymbolicNetworkClassifier;- greedy counterfactual search;
- adaptive population sizing and dynamic function weighting;
- robustness fitness for deployment-hardening studies.
These experimental components are implemented and tested but should be benchmarked carefully before strong scientific claims.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastsymbolicgp-0.7.0.tar.gz.
File metadata
- Download URL: fastsymbolicgp-0.7.0.tar.gz
- Upload date:
- Size: 63.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02b0ca594664b3f6286620c4af32875029fd9621a73a394380edaa6a9c8ee7e
|
|
| MD5 |
7f8d8f94654bebebaa4e87d311674ee2
|
|
| BLAKE2b-256 |
a078def813a69d32e2de7f6152dc3de6413326a55e8812558c5ce68a12e6064e
|
File details
Details for the file fastsymbolicgp-0.7.0-py3-none-any.whl.
File metadata
- Download URL: fastsymbolicgp-0.7.0-py3-none-any.whl
- Upload date:
- Size: 67.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52097f1f4e25810abfa9e5bee6c1425746b26ef1703627395f67dbe95aa71893
|
|
| MD5 |
c2d7adb9ede0eb4ab04b691afc9b2b22
|
|
| BLAKE2b-256 |
cd3ebbea57f36ecab2fb1e7ae6a81e14b5a7ea20bede21a75f6d689dda1d7f1b
|