Skip to main content

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_softmax symbolic 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;
  • FastSymbolicTransformer V2 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastsymbolicgp-0.7.0.tar.gz (63.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastsymbolicgp-0.7.0-py3-none-any.whl (67.2 kB view details)

Uploaded Python 3

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

Hashes for fastsymbolicgp-0.7.0.tar.gz
Algorithm Hash digest
SHA256 a02b0ca594664b3f6286620c4af32875029fd9621a73a394380edaa6a9c8ee7e
MD5 7f8d8f94654bebebaa4e87d311674ee2
BLAKE2b-256 a078def813a69d32e2de7f6152dc3de6413326a55e8812558c5ce68a12e6064e

See more details on using hashes here.

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

Hashes for fastsymbolicgp-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52097f1f4e25810abfa9e5bee6c1425746b26ef1703627395f67dbe95aa71893
MD5 c2d7adb9ede0eb4ab04b691afc9b2b22
BLAKE2b-256 cd3ebbea57f36ecab2fb1e7ae6a81e14b5a7ea20bede21a75f6d689dda1d7f1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page