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)
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)
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])
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))
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))
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)
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])
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])
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)
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)
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))
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])
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))
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
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
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
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