Ejemplo n.º 1
0
 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')
Ejemplo n.º 2
0
# 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(),