5 CL3

import numpy as np

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

from sklearn.neural_network import MLPRegressor

from geneticalgorithm import geneticalgorithm as ga

import warnings



def fitness_function(params):

    

    hidden_layer_sizes = (int(params[0]),) * int(params[1])

    activation = ['identity', 'logistic', 'tanh', 'relu'][int(params[2])]

    solver = ['lbfgs', 'sgd', 'adam'][int(params[3])]

    

   

    model = MLPRegressor(hidden_layer_sizes=hidden_layer_sizes, activation=activation, solver=solver)

    model.fit(X_train, y_train)

    

    

    fitness = -model.score(X_val, y_val)

    

    return fitness


def train_neural_network(params):

    

    hidden_layer_sizes = (int(params[0]),) * int(params[1])

    activation = ['identity', 'logistic', 'tanh', 'relu'][int(params[2])]

    solver = ['lbfgs', 'sgd', 'adam'][int(params[3])]

    

    

    model = MLPRegressor(hidden_layer_sizes=hidden_layer_sizes, activation=activation, solver=solver)

    model.fit(X_train, y_train)

    

    

    validation_error = -model.score(X_val, y_val)

    

    return validation_error



np.random.seed(42)



num_samples = 1000

num_features = 5  



X = np.random.rand(num_samples, num_features)



true_coefficients = np.random.rand(num_features) * 10  

noise = np.random.normal(loc=0, scale=1, size=num_samples)  

y = np.dot(X, true_coefficients) + noise




X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)


warnings.filterwarnings("ignore")



number_of_parameters = 4  

varbound = np.array([[5, 50],  

                     [1, 5],    

                     [0, 3],    

                     [0, 2]])   

algorithm_param = {'max_num_iteration': 1, 'population_size': 100, 'mutation_probability': 0.1,

                   'elit_ratio': 0.01, 'crossover_probability': 0.5, 'parents_portion': 0.3,

                   'crossover_type': 'uniform', 'max_iteration_without_improv': None}

model = ga(function=fitness_function, dimension=number_of_parameters, variable_type='int', variable_boundaries=varbound,

           algorithm_parameters=algorithm_param)



model.run()



best_params = model.output_dict['variable']



validation_error = train_neural_network(best_params)


print("Best parameters found by genetic algorithm:", best_params)

print("Validation error of neural network:", validation_error)



Comments

Popular posts from this blog

DREAM LEAGUE SOCCER 2019 MOD

10 CL3

Garena Contra Return