예제 #1
0
    def scaling_data(self, train_features, train_targets, test_features, s_tar,
                     m_tar, s_feat, m_feat):
        """Scaling the data if requested.

        Parameters
        ----------
        train_feature : array
            Independent data used to train model.
        train_targets : array
            Dependent data used to train model.
        test_features : array
            Independent data used to test the model.
        s_tar : array
            Standard devation or (max-min), for the dependent train_targets.
        m_tar : array
            Mean for the dependent train_targets.
        s_feat : array
            Standard devation or (max-min), for the independent train_features.
        m_feat : array
            Mean for the independent train_features.
        """
        train_features = train_features[:, :self.features]
        test_features = test_features[:, :self.features]

        if self.scale:
            if self.normalization:
                # Normalize
                if s_tar is None or m_tar is None:
                    data = target_normalize(target=train_targets)
                    s_tar, m_tar, train_targets = (data['dif'], data['mean'],
                                                   data['target'])

                norm = normalize(train_matrix=train_features,
                                 test_matrix=test_features,
                                 dif=s_feat,
                                 mean=m_feat)
                train_features, test_features, s_feat, m_feat = (norm['train'],
                                                                 norm['test'],
                                                                 norm['dif'],
                                                                 norm['mean'])
            else:
                # Standardization
                if s_tar is None or m_tar is None:
                    data = target_standardize(target=train_targets)
                    s_tar, m_tar, train_targets = (data['std'], data['mean'],
                                                   data['target'])

                std = standardize(train_matrix=train_features,
                                  test_matrix=test_features,
                                  std=s_feat,
                                  mean=m_feat)
                train_features, test_features, s_feat, m_feat = (std['train'],
                                                                 std['test'],
                                                                 std['std'],
                                                                 std['mean'])
        return (s_tar, m_tar, s_feat, m_feat, train_targets, train_features,
                test_features)
예제 #2
0
    def train(self):
        """Scale the training features and targets.

        Returns
        -------
        feature_data : array
            The scaled features for the training data.
        target_data : array
            The scaled targets for the training data.
        """
        self.feature_data = standardize(train_matrix=self.train_features)

        self.target_data = target_standardize(target=self.train_targets)

        return self.feature_data['train'], self.target_data['target']
예제 #3
0
    def test_scale(self):
        """Test data scaling functions."""
        train_features, train_targets, test_features, _ = self.get_data()
        sfp = standardize(train_matrix=train_features,
                          test_matrix=test_features)
        sfpg = standardize(train_matrix=train_features,
                           test_matrix=test_features,
                           local=False)
        self.assertFalse(np.allclose(sfp['train'], sfpg['train']))

        nfp = normalize(train_matrix=train_features, test_matrix=test_features)
        nfpg = normalize(train_matrix=train_features,
                         test_matrix=test_features,
                         local=False)
        self.assertFalse(np.allclose(nfp['train'], nfpg['train']))

        mmfp = min_max(train_matrix=train_features, test_matrix=test_features)
        mmfpg = min_max(train_matrix=train_features,
                        test_matrix=test_features,
                        local=False)
        self.assertFalse(np.allclose(mmfp['train'], mmfpg['train']))

        ulfp = unit_length(train_matrix=train_features,
                           test_matrix=test_features)
        ulfpg = unit_length(train_matrix=train_features,
                            test_matrix=test_features,
                            local=False)
        self.assertTrue(np.allclose(ulfp['train'], ulfpg['train']))

        ts = target_standardize(train_targets)
        self.assertFalse(np.allclose(ts['target'], train_targets))

        ts = target_normalize(train_targets)
        self.assertFalse(np.allclose(ts['target'], train_targets))

        ts = target_center(train_targets)
        self.assertFalse(np.allclose(ts['target'], train_targets))
예제 #4
0
# Generate test datapoints x.
test_points = 513
test = np.vstack(
    np.linspace(np.min(train) - 0.1,
                np.max(train) + 0.1, test_points))

# Store standard deviations of the training data and targets.
stdx = np.std(train)
stdy = np.std(target)
tstd = 2.

# Standardize the training and test data on the same scale.
std = standardize(train_matrix=train, test_matrix=test)
# Standardize the training targets.
train_targets = target_standardize(target)
# Note that predictions will now be made on the standardized scale.

# Store the known underlying function for plotting.
linex = np.linspace(np.min(test), np.max(test), test_points)
liney = afunc(linex)
# Plotting.
fig = plt.figure(figsize=(15, 8))
if haz_gpy or haz_gpflow:
    grid = 230
    last = 6
else:
    grid = 220
    last = 4
ax224 = fig.add_subplot(grid + last)
plt.title('Uncertainty Profiles')
예제 #5
0
def scale_test(train_matrix, train_targets, test_matrix):
    """Test data scaling functions."""
    sfp = standardize(train_matrix=train_matrix, test_matrix=test_matrix)
    ts = target_standardize(train_targets)
    return sfp['train'], ts['target'], sfp['test']