Skip to main content

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

  1. Download the project and add to python module search path

    import sys
    sys.path.insert(0, '../path_to_GA_py_dir')
    # ./ => this folder
    # ../ => supfolder
    
  2. Or pip install it (easier)

    pip install Simple-Genetic-Algorithm
    
  3. Import the class and helper function

    from genetic_algorithm import GA, get_random
    
  4. 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"]
    
  5. 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

simple_genetic_algorithm-0.2.0.tar.gz (15.7 kB view details)

Uploaded Source

File details

Details for the file simple_genetic_algorithm-0.2.0.tar.gz.

File metadata

  • Download URL: simple_genetic_algorithm-0.2.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for simple_genetic_algorithm-0.2.0.tar.gz
Algorithm Hash digest
SHA256 426b8f9454f19018d4d8f8cc6bd8b10d788e2f85bd7e0f871c7aa4c77408f818
MD5 58cd8a6e8df8c0a5ef16aea46ab87f31
BLAKE2b-256 6267616672b0b1de15f02af32da89b8772e3290cd6dc0b50380b51025dc890b9

See more details on using hashes here.

Supported by

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