Skip to main content

GeneticPy is an optimizer that uses a genetic algorithm to quickly search through custom parameter spaces for optimal solutions.

Project description

GeneticPy

Build Status codecov PyPI version PyPI pyversions Downloads

GeneticPy is an optimizer that uses a genetic algorithm to quickly search through custom parameter spaces for optimal solutions.

Installation

GeneticPy requires Python 3.6+

pip install geneticpy

Optimize Example:

A brief example to get you started is included below:

import geneticpy

def loss_function(params):
  if params['type'] == 'add':
    return params['x'] + params['y']
  elif params['type'] == 'multiply':
    return params['x'] * params['y']

param_space = {'type': geneticpy.ChoiceDistribution(choice_list=['add', 'multiply']),
               'x': geneticpy.UniformDistribution(low=5, high=10, q=1),
               'y': geneticpy.GaussianDistribution(mean=0, standard_deviation=1)}

results = geneticpy.optimize(loss_function, param_space, size=200, generation_count=500, verbose=True)
best_params = results['top_params']
loss = results['top_score']
total_time = results['total_time']

GeneticSearchCV Example:

You can use the GeneticSearchCV class as a drop-in replacement for Scikit-Learn's GridSearchCV. This allows for faster and more complete optimization of your hyperparameters when using Scikit-Learn estimators and/or pipelines.

from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline

from geneticpy import GeneticSearchCV, ChoiceDistribution, LogNormalDistribution, UniformDistribution


# Define a pipeline to search for the best combination of PCA truncation
# and classifier regularization.
pca = PCA()
# set the tolerance to a large value to make the example faster
logistic = LogisticRegression(max_iter=10000, tol=0.1, solver='saga')
pipe = Pipeline(steps=[('pca', pca), ('logistic', logistic)])

X_digits, y_digits = datasets.load_digits(return_X_y=True)

# Parameters of pipelines can be set using ‘__’ separated parameter names:
param_grid = {
    'pca__n_components': UniformDistribution(low=5, high=64, q=1),
    'logistic__C': LogNormalDistribution(mean=1, sigma=0.5, low=0.001, high=2),
    'logistic__penalty': ChoiceDistribution(choice_list=['l1', 'l2'])
}
search = GeneticSearchCV(pipe, param_grid)
search.fit(X_digits, y_digits)
print("Best parameter (CV score=%0.3f):" % search.best_score_)
print(search.best_params_)

PyPi Project

https://pypi-hypernode.com/project/geneticpy/

Contact

Please feel free to email me at brandonschabell@gmail.com with any questions or feedback.

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

geneticpy-1.2.1.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

geneticpy-1.2.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file geneticpy-1.2.1.tar.gz.

File metadata

  • Download URL: geneticpy-1.2.1.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for geneticpy-1.2.1.tar.gz
Algorithm Hash digest
SHA256 126bf400b7868158c95b975028b531c32c7b26649d0c9afce6ad8877b81ac369
MD5 9528e5f934951cbe889ac5381ddd58dd
BLAKE2b-256 d890438ee3a2135fbb86c4ba38fa0d92135c27466d2f467fa7f4a1e99c97e0a9

See more details on using hashes here.

File details

Details for the file geneticpy-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: geneticpy-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for geneticpy-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a36ad72bc23c5f6cfe2b3a52dab69e503f8de37fae1e2cc37cec77fb48c3046
MD5 4a2876097abeee3b1641304b9a217a78
BLAKE2b-256 68f037f731576e67514913d63869ee919b3560f55a0efe3bca36f8ab1bea054f

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