Skip to main content

Evolutionary Regression

Project description

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

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

evogression-0.11.0.tar.gz (146.6 kB view details)

Uploaded Source

Built Distributions

evogression-0.11.0-cp312-cp312-win_amd64.whl (459.4 kB view details)

Uploaded CPython 3.12 Windows x86-64

evogression-0.11.0-cp311-cp311-win_amd64.whl (459.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

evogression-0.11.0-cp310-cp310-win_amd64.whl (459.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

File details

Details for the file evogression-0.11.0.tar.gz.

File metadata

  • Download URL: evogression-0.11.0.tar.gz
  • Upload date:
  • Size: 146.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for evogression-0.11.0.tar.gz
Algorithm Hash digest
SHA256 4822492f1f1c7ae5774a28bfcac14ff81995b260fb954fd9e32da4b4727cd953
MD5 ee6406f76a40b6c07baedfee454af7a2
BLAKE2b-256 a76eb896740a25a8592e252d37fdacd7cd04d139362b19be5013a77343f08eb0

See more details on using hashes here.

File details

Details for the file evogression-0.11.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for evogression-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fe206eb2a1eb91eee5cf12afc5d92fb71f64eb61a604b6fcb4f289319218b4f6
MD5 92f90e637bd370db9c861d1e74bec27e
BLAKE2b-256 ef6d1eb1c5d07b3c48f55b486aa2b908d6d31c28c91d6c3706ea47e6cad9dc62

See more details on using hashes here.

File details

Details for the file evogression-0.11.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for evogression-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6322e9c0b4bfd034d3141e6830fab028b93ac5008f7c869b2d2479dd6a23a885
MD5 d757c302f0a0ea678586e698c442e409
BLAKE2b-256 9b058bb3a6c08026f425df415e077b6c78847b0812b6523c2be6f17eb12142aa

See more details on using hashes here.

File details

Details for the file evogression-0.11.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for evogression-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 656646245558f35ac5017eda9e507b8956b786b73f945d659899c9b42dc639d1
MD5 611b1e397bf7b75b749fa3cd89873e63
BLAKE2b-256 aedfcc232da1a40c3966338ec5d325d48eef5d0e2caffe3f5afa6150b8963f78

See more details on using hashes here.

Supported by

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