GeneticPy is an optimizer that uses a genetic algorithm to quickly search through custom parameter spaces for optimal solutions.
Project description
GeneticPy
GeneticPy is an optimizer that uses a genetic algorithm to quickly search through custom parameter spaces for optimal solutions.
Installation
GeneticPy requires Python 3.7+
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.org/project/geneticpy/
Contact
Please feel free to email me at brandonschabell@gmail.com with any questions or feedback.
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
File details
Details for the file geneticpy-1.3.0.tar.gz
.
File metadata
- Download URL: geneticpy-1.3.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41a21bfee92e6178505e64e14adc406be6d940e55ccb1c22f148f41db673d33e |
|
MD5 | 04875247f47d8df939630e2a5d15c0e4 |
|
BLAKE2b-256 | 67ecfaaefa7bf26b5fd3bdc7992c6388faa35eae0bc0992e81881e88979ed8f7 |
File details
Details for the file geneticpy-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: geneticpy-1.3.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93fc994fdd66f83197303ce05b9ce6198a71d89aff0019a08daecaf8c026eded |
|
MD5 | bd72cc82fae5a0cc75901dafd99f88c9 |
|
BLAKE2b-256 | d019d9f1444965775581df0639aaab9456d863697434560ee1ae26825cff1f81 |