1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
"""Tests for module dr on Dimensionality Reduction """
# Author: Remi Flamary <remi.flamary@unice.fr>
#
# License: MIT License
import numpy as np
import ot
import pytest
try: # test if autograd and pymanopt are installed
import ot.dr
nogo = False
except ImportError:
nogo = True
@pytest.mark.skipif(nogo, reason="Missing modules (autograd or pymanopt)")
def test_fda():
n_samples = 90 # nb samples in source and target datasets
np.random.seed(0)
# generate gaussian dataset
xs, ys = ot.datasets.make_data_classif('gaussrot', n_samples)
n_features_noise = 8
xs = np.hstack((xs, np.random.randn(n_samples, n_features_noise)))
p = 1
Pfda, projfda = ot.dr.fda(xs, ys, p)
projfda(xs)
np.testing.assert_allclose(np.sum(Pfda**2, 0), np.ones(p))
@pytest.mark.skipif(nogo, reason="Missing modules (autograd or pymanopt)")
def test_wda():
n_samples = 100 # nb samples in source and target datasets
np.random.seed(0)
# generate gaussian dataset
xs, ys = ot.datasets.make_data_classif('gaussrot', n_samples)
n_features_noise = 8
xs = np.hstack((xs, np.random.randn(n_samples, n_features_noise)))
p = 2
Pwda, projwda = ot.dr.wda(xs, ys, p, maxiter=10)
projwda(xs)
np.testing.assert_allclose(np.sum(Pwda**2, 0), np.ones(p))
|