def train_3(weights, moderate_constant, max_error): board = experiment_generator() game_trace = get_game_trace_with_old_vesion(board, weights, weights) training_examples = get_training_examples(game_trace, weights) weights = gen(training_examples, weights, moderate_constant) error = squared_error(training_examples, weights) return weights, error, error <= max_error
def test_squared_errors2(self): logging.basicConfig(filename='./logs/test_with_old_version_mu02.log', level=logging.INFO) logging.info('------------------------------------------------------------------------------------------------') logging.info('Started') moderate_constant = 0.2 iterations = 50 weights = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] old_weights = weights errors = [] won = 0 lost = 0 for i in range(iterations): board = experiment_generator() logging.info('Obteniendo traza del juego...') game_trace = get_game_trace_with_old_vesion(board, weights, old_weights) logging.info(f'Se obtuvieron {game_trace.__len__()} tuplas') training_examples = get_training_examples(game_trace, weights) board_features = training_examples[training_examples.__len__() - 1][0] logging.info(training_examples[training_examples.__len__() - 1]) if board_features[6] >= 1 : won = won + 1 elif board_features[13] >= 1 : lost = lost + 1 logging.info('Ajustando pesos...') old_weights = weights weights = gen(training_examples, weights, moderate_constant) errors.append(squared_error(training_examples, weights)) logging.info(weights) # if errors[i -1] < errors[i]: # moderate_constant = max(0.1, moderate_constant - 0.1) # logging.info(moderate_constant) for i in range(iterations): logging.info('Error {}: {}'.format(i, errors[i])) # for i in range(iterations-1): # self.assertGreaterEqual(errors[i], errors[i+1], # f'El error {i} no es mayor o igual que el error {i+1}, los errores deben decrecer') logging.info(f'Ganados: {won}') logging.info(f'Perdidos: {lost}') logging.info('Finished') logging.info('------------------------------------------------------------------------------------------------') return weights