def test_icamapper(): # data: 40 sample feature line in 2d space (40x2; samples x features) samples = np.vstack([np.arange(40.) for i in range(2)]).T samples -= samples.mean() samples += np.random.normal(size=samples.shape, scale=0.1) ndlin = Dataset(samples) pm = ICAMapper() pm.train(ndlin.copy()) assert_equal(pm.proj.shape, (2, 2)) p = pm.forward(ndlin.copy()) assert_equal(p.shape, (40, 2)) # check that the mapped data can be fully recovered by 'reverse()' assert_array_almost_equal(pm.reverse(p), ndlin)
from mvpa import cfg center = [10, 20] axis_range = 7 ##REF: Name was automagically refactored def plot_proj_dir(p): pl.plot([0, p[0, 0]], [0, p[0, 1]], linewidth=3, hold=True, color='y') pl.plot([0, p[1, 0]], [0, p[1, 1]], linewidth=3, hold=True, color='k') mappers = { 'PCA': PCAMapper(), 'SVD': SVDMapper(), 'ICA': ICAMapper(alg='CuBICA'), } datasets = [ noisy_2d_fx(100, lambda x: x, [lambda x: x], center, noise_std=0.5), noisy_2d_fx(50, lambda x: x, [lambda x: x, lambda x: -x], center, noise_std=0.5), noisy_2d_fx(50, lambda x: x, [lambda x: x, lambda x: 0], center, noise_std=0.5), ] ndatasets = len(datasets) nmappers = len(mappers.keys())