def test_tga_median(): # TGA on dense arrays tga = TGA(n_components=2, random_state=1, centering='median') X = iris.data X_r = tga.fit(X).transform(X) assert_equal(X_r.shape[1], 2) tga = TGA(n_components=2, random_state=1, centering='median') X_r2 = tga.fit_transform(X) assert_array_almost_equal(X_r, X_r2) tga = TGA(random_state=1, centering='median') tga.fit(X) X_r = tga.transform(X) tga = TGA(random_state=1, centering='median') X_r2 = tga.fit_transform(X) assert_array_almost_equal(X_r, X_r2)
def test_pca_error(): X = [[0, 1], [1, 0]] for n_components in [-1, 3]: assert_raises(ValueError, TGA(n_components).fit, X) for trim_p in [-0.1, 0.6]: assert_raises(ValueError, TGA(trim_proportion=trim_p).fit, X) assert_raises(ValueError, TGA(centering='invalid').fit, X)
def test_tga_check_projection(): # Test that the projection by RandomizedPCA on dense data is correct rng = np.random.RandomState(0) n, p = 100, 3 X = rng.randn(n, p) * .1 X[:10] += np.array([3, 4, 5]) Xt = 0.1 * rng.randn(1, p) + np.array([3, 4, 5]) Yt = TGA(n_components=2, random_state=0).fit(X).transform(Xt) Yt /= np.sqrt((Yt ** 2).sum()) assert_almost_equal(np.abs(Yt[0][0]), 1., 1)