Ejemplo n.º 1
0
def pcd_samples_nowhiten_yescentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               bias=True, centre=True,
                                               whiten=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_biased_s)
    assert_almost_equal(eigenvectors, centered_eigenvectors_s)
    assert_almost_equal(mean_vector, mean_vector_s)
Ejemplo n.º 2
0
def pcd_features_yeswhiten_yescentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix.T,
                                               whiten=True, centre=True,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_no_bias_f)
    assert_almost_equal(eigenvectors, centered_eigenvectors_biased_f)
    assert_almost_equal(mean_vector, mean_vector_f)
Ejemplo n.º 3
0
def pcd_samples_nowhiten_nocentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               center=False, whiten=False,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_no_bias_s)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_s)
    assert_almost_equal(mean_vector, [0.0, 0.0])
Ejemplo n.º 4
0
def pcd_features_yeswhiten_nocentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix.T,
                                               bias=True, centre=False,
                                               whiten=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_biased_f)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_biased_f)
    assert_almost_equal(mean_vector, np.zeros(10))
Ejemplo n.º 5
0
def pcd_features_yeswhiten_nocentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix.T,
                                               bias=True, center=False,
                                               whiten=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_biased_f)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_biased_f)
    assert_almost_equal(mean_vector, np.zeros(10))
Ejemplo n.º 6
0
def pcd_samples_nowhiten_yescentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               bias=True, center=True,
                                               whiten=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_biased_s)
    assert_almost_equal(eigenvectors, centered_eigenvectors_s)
    assert_almost_equal(mean_vector, mean_vector_s)
Ejemplo n.º 7
0
def pcd_features_yeswhiten_yescentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix.T,
                                               whiten=True, centre=True,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_no_bias_f)
    assert_almost_equal(eigenvectors, centered_eigenvectors_biased_f)
    assert_almost_equal(mean_vector, mean_vector_f)
Ejemplo n.º 8
0
def pcd_samples_nowhiten_nocentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               centre=False, whiten=False,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_no_bias_s)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_s)
    assert_almost_equal(mean_vector, [0.0, 0.0])
Ejemplo n.º 9
0
def pcd_samples_yeswhiten_nocentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               bias=True, centre=False,
                                               whiten=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_biased_s)
    assert_almost_equal(eigenvectors.T / np.sqrt(1.0 / eigenvalues),
                        non_centered_eigenvectors_s.T)
    assert_almost_equal(mean_vector, [0.0, 0.0])
Ejemplo n.º 10
0
def pcd_samples_yeswhiten_yescentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               whiten=True, centre=True,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_no_bias_s)
    assert_almost_equal(eigenvectors.T / np.sqrt(1.0 / eigenvalues),
                        centered_eigenvectors_s.T)
    assert_almost_equal(mean_vector, mean_vector_s)
Ejemplo n.º 11
0
def pcd_samples_yeswhiten_yescentre_nobias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               whiten=True, center=True,
                                               bias=False)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_centered_no_bias_s)
    assert_almost_equal(eigenvectors.T / np.sqrt(1.0 / eigenvalues),
                        centered_eigenvectors_s.T)
    assert_almost_equal(mean_vector, mean_vector_s)
Ejemplo n.º 12
0
def pcd_features_nowhiten_nocentre_nobias_inplace_test():
    # important to copy as this will now destructively effect the input data
    # matrix (due to inplace)
    output = principal_component_decomposition(large_samples_data_matrix.T.copy(),
                                               centre=False, whiten=False,
                                               bias=False, inplace=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_no_bias_f)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_f)
    assert_almost_equal(mean_vector, np.zeros(10))
Ejemplo n.º 13
0
def pcd_samples_yeswhiten_nocentre_yesbias_test():
    output = principal_component_decomposition(large_samples_data_matrix,
                                               bias=True,
                                               center=False,
                                               whiten=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_biased_s)
    assert_almost_equal(eigenvectors.T / np.sqrt(1.0 / eigenvalues),
                        non_centered_eigenvectors_s.T)
    assert_almost_equal(mean_vector, [0.0, 0.0])
Ejemplo n.º 14
0
def pcd_features_nowhiten_nocentre_nobias_inplace_test():
    # important to copy as this will now destructively effect the input data
    # matrix (due to inplace)
    output = principal_component_decomposition(
        large_samples_data_matrix.T.copy(),
        centre=False,
        whiten=False,
        bias=False,
        inplace=True)
    eigenvectors, eigenvalues, mean_vector = output

    assert_almost_equal(eigenvalues, eigenvalues_no_centre_no_bias_f)
    assert_almost_equal(eigenvectors, non_centered_eigenvectors_f)
    assert_almost_equal(mean_vector, np.zeros(10))
Ejemplo n.º 15
0
    def __init__(self,
                 samples,
                 centre=True,
                 bias=False,
                 verbose=False,
                 n_samples=None):
        # get the first element as the template and use it to configure the
        # data matrix
        if n_samples is None:
            # samples is a list
            n_samples = len(samples)
            template = samples[0]
            samples = samples[1:]
        else:
            # samples is an iterator
            template = next(samples)
        n_features = template.n_parameters
        template_vector = template.as_vector()
        data = np.zeros((n_samples, n_features), dtype=template_vector.dtype)
        # now we can fill in the first element from the template
        data[0] = template_vector
        del template_vector
        if verbose:
            print('Allocated data matrix {:.2f}'
                  'GB'.format(data.nbytes / 2**30))
        # 1-based as we have the template vector set already
        for i, sample in enumerate(samples, 1):
            if i >= n_samples:
                break
            if verbose:
                print_dynamic(
                    'Building data matrix from {} samples - {}'.format(
                        n_samples,
                        progress_bar_str(float(i + 1) / n_samples,
                                         show_bar=True)))
            data[i] = sample.as_vector()

        # compute pca
        e_vectors, e_values, mean = principal_component_decomposition(
            data, whiten=False, centre=centre, bias=bias, inplace=True)

        super(PCAModel, self).__init__(e_vectors, mean, template)
        self.centred = centre
        self.biased = bias
        self._eigenvalues = e_values
        # start the active components as all the components
        self._n_active_components = int(self.n_components)
        self._trimmed_eigenvalues = None
Ejemplo n.º 16
0
    def __init__(self, samples, center=True, bias=False):
        # build data matrix
        n_samples = len(samples)
        n_features = samples[0].n_parameters
        data = np.zeros((n_samples, n_features))
        for i, sample in enumerate(samples):
            data[i] = sample.as_vector()

        # compute pca
        eigenvectors, eigenvalues, mean_vector = \
            principal_component_decomposition(data, whiten=False,
                                              center=center, bias=bias)

        super(PCAModel, self).__init__(eigenvectors, mean_vector, samples[0])
        self.centered = center
        self.biased = bias
        self._eigenvalues = eigenvalues
        self._n_components = self.n_components
        self._trimmed_eigenvalues = None
Ejemplo n.º 17
0
    def __init__(self, samples, center=True, bias=False):
        # build data matrix
        n_samples = len(samples)
        n_features = samples[0].n_parameters
        data = np.zeros((n_samples, n_features))
        for i, sample in enumerate(samples):
            data[i] = sample.as_vector()

        # compute pca
        eigenvectors, eigenvalues, mean_vector = \
            principal_component_decomposition(data, whiten=False,
                                              center=center, bias=bias)

        super(PCAModel, self).__init__(eigenvectors, mean_vector, samples[0])
        self.centered = center
        self.biased = bias
        self._eigenvalues = eigenvalues
        self._n_components = self.n_components
        self._trimmed_eigenvalues = None
Ejemplo n.º 18
0
    def __init__(self, samples, centre=True, bias=False, verbose=False,
                 n_samples=None):
        # get the first element as the template and use it to configure the
        # data matrix
        if n_samples is None:
            # samples is a list
            n_samples = len(samples)
            template = samples[0]
            samples = samples[1:]
        else:
            # samples is an iterator
            template = next(samples)
        n_features = template.n_parameters
        template_vector = template.as_vector()
        data = np.zeros((n_samples, n_features), dtype=template_vector.dtype)
        # now we can fill in the first element from the template
        data[0] = template_vector
        del template_vector
        if verbose:
            print('Allocated data matrix {:.2f}'
                  'GB'.format(data.nbytes / 2 ** 30))
        # 1-based as we have the template vector set already
        for i, sample in enumerate(samples, 1):
            if i >= n_samples:
                break
            if verbose:
                print_dynamic(
                    'Building data matrix from {} samples - {}'.format(
                        n_samples,
                    progress_bar_str(float(i + 1) / n_samples, show_bar=True)))
            data[i] = sample.as_vector()

        # compute pca
        e_vectors, e_values, mean = principal_component_decomposition(
            data, whiten=False,  centre=centre, bias=bias, inplace=True)

        super(PCAModel, self).__init__(e_vectors, mean, template)
        self.centred = centre
        self.biased = bias
        self._eigenvalues = e_values
        # start the active components as all the components
        self._n_active_components = int(self.n_components)
        self._trimmed_eigenvalues = None
Ejemplo n.º 19
0
    def __init__(self, samples, centre=True, bias=False):
        # build data matrix
        n_samples = len(samples)
        template = samples[0]
        n_features = template.n_parameters
        data = np.zeros((n_samples, n_features))
        for i, sample in enumerate(samples):
            data[i] = sample.as_vector()

        # compute pca
        eigenvectors, eigenvalues, mean_vector = \
            principal_component_decomposition(data, whiten=False,
                                              centre=centre, bias=bias)

        super(PCAModel, self).__init__(eigenvectors, mean_vector, template)
        self.centred = centre
        self.biased = bias
        self._eigenvalues = eigenvalues
        # start the active components as all the components
        self._n_active_components = int(self.n_components)
        self._trimmed_eigenvalues = None
Ejemplo n.º 20
0
    def __init__(self, samples, centre=True, bias=False):
        # build data matrix
        n_samples = len(samples)
        template = samples[0]
        n_features = template.n_parameters
        data = np.zeros((n_samples, n_features))
        for i, sample in enumerate(samples):
            data[i] = sample.as_vector()

        # compute pca
        eigenvectors, eigenvalues, mean_vector = \
            principal_component_decomposition(data, whiten=False,
                                              centre=centre, bias=bias)

        super(PCAModel, self).__init__(eigenvectors, mean_vector, template)
        self.centred = centre
        self.biased = bias
        self._eigenvalues = eigenvalues
        # start the active components as all the components
        self._n_active_components = int(self.n_components)
        self._trimmed_eigenvalues = None