def __init__(self): self.feature_vec = [ features.LinearX1(), features.LinearX2(), features.SquareX1(), features.ExpX2(), features.LogX1(), features.Identity() ] self.feature_weights = [1, 2, 1, 0.1, 10, 40] self.noise_model = noise.NoiseModel() self.max_x1 = 10 self.max_x2 = 10 self.saver = saver.DataSaver('data', 'data_samples.pkl')
# data_generator = data.DataGenerator() data_saver = saver.DataSaver('data', 'data_samples.pkl') input_data, output_data = data_saver.restore_from_file() n_samples = input_data.shape[0] # Split data into training and validation ratio_train_validate = 0.8 idx_switch = int(n_samples * ratio_train_validate) training_input = input_data[:idx_switch, :] training_output = output_data[:idx_switch, :] validation_input = input_data[idx_switch:, :] validation_output = output_data[idx_switch:, :] # Fit model lm = model.LinearRegressionModel() lm.set_feature_vector([features.LinearX1(), #TODO ]) lm.fit(training_input, training_output) # sklearn #TODO # Validation mse = lm.validate(validation_input, validation_output) print('MSE: {}'.format(mse)) print(' ') print('feature weights \n{}'.format(lm.beta)) validation_predictions = lm.predict(validation_input) feature_matrix_validation = lm.compute_feature_matrix(validation_input) validation_predictions_sk = linear_regression_sk.predict( feature_matrix_validation)
mse = 0 # Fit model for each part for part in range(0, n_parts): train_start_i = int(part * samp_per_part) test_start_i = int(train_start_i + samp_per_part * ratio_train_validate) test_end_i = int(train_start_i + samp_per_part) training_input[part] = input_data[train_start_i:test_start_i, :] training_output[part] = output_data[train_start_i:test_start_i, :] validation_input[part] = input_data[test_start_i:test_end_i, :] validation_output[part] = output_data[test_start_i:test_end_i, :] lm[part] = model.LinearRegressionModel() # TODO use and select the new features lm[part].set_feature_vector([ features.LinearX1(), features.LinearX2(), features.LinearX3(), features.LinearX4(), features.SquareX1(), features.SquareX2(), features.SquareX3(), features.SquareX4(), features.ExpX1(), features.ExpX2(), features.ExpX3(), features.ExpX4(), features.LogX1(), features.LogX2(), features.LogX3(), features.LogX4(),