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()) pl.figure(figsize=(8, 8)) fig = 1 for ds in datasets: for mname, mapper in mappers.iteritems(): mapper.train(ds) dproj = mapper.forward(ds.samples) mproj = mapper.proj pl.subplot(ndatasets, nmappers, fig) if fig <= 3: pl.title(mname) pl.axis('equal') pl.scatter(ds.samples[:, 0] - center[0], ds.samples[:, 1] - center[1],
'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()) pl.figure(figsize=(8,8)) fig = 1 for ds in datasets: for mname, mapper in mappers.iteritems(): mapper.train(ds) dproj = mapper.forward(ds.samples) mproj = mapper.proj pl.subplot(ndatasets, nmappers, fig) if fig <= 3: pl.title(mname) pl.axis('equal') pl.scatter(ds.samples[:, 0] - center[0], ds.samples[:, 1] - center[1],
(the sum of two Gaussians) to the total of 10 histograms. """ histfit = fit2histogram(raw_data, dual_gaussian, (1000, 0.5, 0.1, 1000, 0.8, 0.05), nbins=20) H, bin_left, bin_width, fit = histfit """ All that is left to do is composing a figure -- showing the accuracy histogram and its variation across folds, as well as the two estimated Gaussians. """ # new figure pl.figure() # Gaussian parameters params = fit[0] # plot the histogram plot_bars(H.T, xloc=bin_left, width=bin_width, yerr='std') # show the Gaussians x = np.linspace(0, 1, 100) # first gaussian pl.plot(x, params[0] * norm.pdf(x, params[1], params[2]), "r-", zorder=2) pl.axvline(params[1], color='r', linestyle='--', alpha=0.6) # second gaussian pl.plot(x, params[3] * norm.pdf(x, params[4], params[5]), "b-", zorder=3) pl.axvline(params[4], color='b', linestyle='--', alpha=0.6)