Skip to main content

Evogression

Evogression is a Python package providing an evolutionary algorithm to develop a regression function for a target parameter. An arbitrary number of input parameters can be used, and data samples need not have all parameters populated to be used in training the regression.

As of version 0.7.0, the core calculations are rewritten in Rust for much improved performance (~10x) compared to the previous Cython design.

Quickstart

  • Use pip to install Evogression

    pip install evogression
    
  • Format your input data as a list of dictionaries.

  • Run the following to generate a regression function and then output this function as a python module:

    import evogression
    
    evolution = evogression.Evolution('target_variable_key', data, num_creatures=10000, num_cycles=10)
    evolution.output_regression()
    
  • At this point, there will be a "regression_function.py" file within a newly-created "regression_modules" directory. The "regression" function within this Python module can be imported and used with a dictionary of inputs to generate an estimated output value.

Current Features

  • The goal of the evolution algorithm is to generate a group of "creatures" (each a unique regression function) which then compete to most accurately model the training data. Creatures are saved when they are better at modeling results than their peers, and a survival-of-the-fittest situation emerges. Creatures mutate individually and with other creatures to search for better solutions.

  • groups.py provides high-level approaches to regression by running multiple evolution groups.

  • Parameter pruning algorithm can determine the most useful attributes in a dataset and progressively discard the least useful data while determining a best fit equation for the target attribute.

Testing

  • Brute force generation of creatures successfully models linear and parabolic 2D data.
  • Evolution algorithm successfully models linear and parabolic 2D data.
  • Evolution algorithm successfully uses a surface to approximate 3D data using two input attributes; this illustrates how multivariate relationships can be modeled. While the case of two inputs is visualized below, any number of input attributes can be used to build a regression function.
  • A "Population" can develop separate prediction models for data separated into different categories.

License

MIT

Metadata

Release files for evogression 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evogression 0.11.0
File Size Uploaded Provenance Actions
evogression-0.11.0.tar.gz 146.6 kB Without provenance Details for evogression-0.11.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for evogression 0.11.0
File Interpreter ABI Platform Actions
evogression-0.11.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for evogression-0.11.0-cp312-cp312-win_amd64.whl
evogression-0.11.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for evogression-0.11.0-cp311-cp311-win_amd64.whl
evogression-0.11.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for evogression-0.11.0-cp310-cp310-win_amd64.whl

Total release size: 1.5 MB

Release files / evogression-0.11.0.tar.gz

Download URL evogression-0.11.0.tar.gz
Size 146.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4822492f1f1c7ae5774a28bfcac14ff81995b260fb954fd9e32da4b4727cd953
BLAKE2b-256 checksum
How to use checksums
a76eb896740a25a8592e252d37fdacd7cd04d139362b19be5013a77343f08eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / evogression-0.11.0-cp312-cp312-win_amd64.whl

Download URL evogression-0.11.0-cp312-cp312-win_amd64.whl
Size 459.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
fe206eb2a1eb91eee5cf12afc5d92fb71f64eb61a604b6fcb4f289319218b4f6
BLAKE2b-256 checksum
How to use checksums
ef6d1eb1c5d07b3c48f55b486aa2b908d6d31c28c91d6c3706ea47e6cad9dc62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / evogression-0.11.0-cp311-cp311-win_amd64.whl

Download URL evogression-0.11.0-cp311-cp311-win_amd64.whl
Size 459.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6322e9c0b4bfd034d3141e6830fab028b93ac5008f7c869b2d2479dd6a23a885
BLAKE2b-256 checksum
How to use checksums
9b058bb3a6c08026f425df415e077b6c78847b0812b6523c2be6f17eb12142aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / evogression-0.11.0-cp310-cp310-win_amd64.whl

Download URL evogression-0.11.0-cp310-cp310-win_amd64.whl
Size 459.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
656646245558f35ac5017eda9e507b8956b786b73f945d659899c9b42dc639d1
BLAKE2b-256 checksum
How to use checksums
aedfcc232da1a40c3966338ec5d325d48eef5d0e2caffe3f5afa6150b8963f78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Security for evogression 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page