def __init__(self): self.feature_vec = [features.CrossTermX1X3(), features.SinX2(), features.SquareX4(), features.Identity()] self.feature_weights = [0.1, -2, -0.3, 3] self.noise_model = noise.NoiseModel() self.max_x1 = 10 self.max_x2 = 10 self.max_x3 = 10 self.max_x4 = 10 self.saver = saver.DataSaver('data', 'submission_data.pkl')
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')
#randomly shuffle input and output data input_data, output_data = shuffle_data(input_data, output_data) 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() # TODO use and select the new features lm.set_feature_vector([ features.CrossTermX1X3(), features.SinX2(), features.SquareX4(), features.Identity() ]) lm.fit(training_input, training_output) # Validation mse = lm.validate(validation_input, validation_output) print('MSE: {}'.format(mse)) print(' ') print('feature weights \n{}'.format(lm.beta)) # load submission data submission_loader = saver.DataSaver('data', 'submission_data.pkl') submission_input = submission_loader.load_submission() # predict output submission_output = lm.predict(submission_input)