예제 #1
0
 def test_fit_inverse_transform_matrix(self):
     X = self.spd.random_uniform(n_samples=5)
     tpca = TangentPCA(metric=self.spd_metric, point_type='matrix')
     tangent_projected_data = tpca.fit_transform(X)
     result = tpca.inverse_transform(tangent_projected_data)
     expected = X
     self.assertAllClose(result, expected)
예제 #2
0
 def test_fit_transform_vector(self):
     expected = 2
     tpca = TangentPCA(
         metric=self.metric, n_components=expected)
     tangent_projected_data = tpca.fit_transform(self.X)
     result = tangent_projected_data.shape[-1]
     self.assertAllClose(result, expected)
예제 #3
0
 def test_fit_fit_transform_matrix(self):
     X = self.spd.random_uniform(n_samples=5)
     tpca = TangentPCA(
         metric=self.spd_metric)
     expected = tpca.fit_transform(X)
     result = tpca.fit(X).transform(X)
     self.assertAllClose(result, expected)
예제 #4
0
 def test_fit_transform_matrix(self):
     expected = 2
     X = self.spd.random_point(n_samples=5)
     tpca = TangentPCA(metric=self.spd_metric, n_components=expected)
     tangent_projected_data = tpca.fit_transform(X)
     result = tangent_projected_data.shape[-1]
     self.assertAllClose(result, expected)
예제 #5
0
 def test_fit_matrix_se(self):
     se_mat = SpecialEuclidean(n=3, default_point_type='matrix')
     X = se_mat.random_uniform(self.n_samples)
     estimator = ExponentialBarycenter(se_mat)
     estimator.fit(X)
     mean = estimator.estimate_
     tpca = TangentPCA(metric=se_mat, point_type='matrix')
     tangent_projected_data = tpca.fit_transform(X, base_point=mean)
     result = tpca.inverse_transform(tangent_projected_data)
     expected = X
     self.assertAllClose(result, expected)
예제 #6
0
def test_tangent_pca(data):
    X = data
    trans = TangentPCA(n_components=N_COMPONENTS)
    assert trans.demo_param == 'demo'

    trans.fit(X)
    assert trans.n_features_ == X.shape[1]

    X_trans = trans.transform(X)
    assert_allclose(X_trans, np.sqrt(X))

    X_trans = trans.fit_transform(X)
    assert_allclose(X_trans, np.sqrt(X))
예제 #7
0
 def test_fit_inverse_transform_vector(self):
     tpca = TangentPCA(metric=self.metric, point_type='vector')
     tangent_projected_data = tpca.fit_transform(self.X)
     result = tpca.inverse_transform(tangent_projected_data)
     expected = self.X
     self.assertAllClose(result, expected)