Genetic Algorithm Framework
Project description
Genetic-Algorithm
Implementation of Genetic-Algorithm for solution finding (optimization)
Easy to use GA implementation. With parallel computing and info-prints. Simple and flexible for your optimal solution finding.
Usage
-
Download the project
-
Import the class and helper function
import sys sys.path.insert(0, '../path_to_GA_py_dir') # ./ => this folder # ../ => supfolder from genetic_algorithm import GA, get_random
-
Create 2 functions and parameters
class Example_GA(GA): def calculate_fitness(self, kwargs, params): # return here the fitness (how good the solution is) # as bigger as better! # hint: if you have a loss, you should propably just return -1*loss # example for sklearn model: model = RandomForestRegressor(n_estimators=params["n_estimators"], ...) model = model.fit(kwargs["X_train"], kwargs["y_train"]) # predict y_pred = model.predict(kwargs["X_test"]) # calc mean absolute error loss y_true = np.array(kwargs["y_test"]) y_pred = np.array(y_pred) return - np.mean(np.abs(y_true - y_pred)) def get_random_value(self, param_key): if param_key == "name_of_parameter_1": return get_random(10, 1000) elif param_key == "name_of_parameter_2": return get_random(["something_1", "something_2", "something_3"]) elif param_key == "name_of_parameter_3": return get_random(0.0, 1.0) ... parameters = ["n_estimators", "criterion", "max_depth", "max_features", "bootstrap"]
-
Create and run genetic algorithm and pass the input, which will be used in the calculate_fitness function
optimizer = Example_GA(generations=10, population_size=15, mutation_rate=0.3, list_of_params=parameters) optimizer.optimize(X_train=X_train, y_train=y_train, X_test=X_dev, y_test=y_dev)
For more examples, see:
License
Feel free to use it. Of course you don't have to name me in your code :)
-> It is a copy-left license
For all details see the license file.
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
Close
Hashes for Simple_Genetic_Algorithm-0.1.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39c28093d40dbbf2cafa1a96c5bc4dd9853cd829fa4b4a8a0e497862271c01d0 |
|
MD5 | fffe43ecbf341c7465ab6ac0d902cb43 |
|
BLAKE2b-256 | 072bcf6d3aa61510264fb433e5847ae1b5d6601c24c1c9071204fa8cf5528719 |