# Number of trials to run num_trials = 100 dists = np.zeros([num_trials,5,num_Ns]) for i, N in enumerate(Ns): print 'Performing trials for N = %d'%N for trial_num in range(num_trials): # User feedback print 'Running N = %d, trial_num = %d...'%(N, trial_num) # Choose mixture of gaussians gaussians = make_gaussian_mix(num_gaussians) # Draw data from mixture [xis, xgrid, Q_true, other] = draw_from_gaussian_mix(N=N, Nx=G, gaussians=gaussians) # Compute data range and grid for fine-graned analysis xmin = min(xgrid) xmax = max(xgrid) xint = [xmin, xmax] xs = sp.linspace(xmin, xmax, plot_grid_size) dx = xs[1]-xs[0] # Interpolate Q_true for plotting Q_true_vals = Q_true(xs) # Perform DEFT density estimation Q_star1_vals = deft_1d(xis, xint, alpha=1, G=G, verbose=False)(xs) Q_star2_vals = deft_1d(xis, xint, alpha=2, G=G, verbose=False)(xs) Q_star3_vals = deft_1d(xis, xint, alpha=3, G=G, verbose=False)(xs)
mus = [0, 10] sigmas = [2, 5] weights = [1, 1] gaussians = make_gaussian_mix(mus=mus, sigmas=sigmas, weights=weights) # Number of grid points to use for DEFT calculation G = 100 # Specify N and alphas N = 100 alpha = 2 num_samples = 20 # Draw data, rescaled to give an xint of length L = 10, centered on 0 xint = sp.array([-5.0, 5.0]) [xis, xint, Q_true, Q_true_details] = draw_from_gaussian_mix(N=N, Nx=G, gaussians=gaussians, xint=xint) xmid = sp.mean(xint) xspan = xint - xmid gaussians = Q_true_details.gaussians # Perform DEFT density estimation Q_star, Q_star_details = deft_1d(xis, xmid+xspan, alpha=alpha, G=G, details=True, num_samples=20, tf_shift=-3, verbose=True) Q_star_wide3, Q_star_wide3_details = deft_1d(xis, xmid+3*xspan, alpha=alpha, G=3*G, details=True, verbose=True) Q_star_wide10, Q_star_wide10_details = deft_1d(xis, xmid+10*xint, alpha=alpha, G=10*G, details=True, verbose=True) Q_star_fine, Q_star_fine_details = deft_1d(xis, xmid+xspan, alpha=alpha, G=3*G, details=True, verbose=True) Q_star_coarse, Q_star_coarse_details = deft_1d(xis, xmid+xspan, alpha=alpha, G=int(G/3), details=True, verbose=True) Q_star_alpha1, Q_star_alpha1_details = deft_1d(xis, xmid+xspan, alpha=1, G=G, details=True, verbose=True) Q_star_alpha3, Q_star_alpha3_details = deft_1d(xis, xmid+xspan, alpha=3, G=G, details=True, verbose=True) # Design plotting grid xs = sp.linspace(xint[0], xint[1], 10000)
# Number of trials to run num_trials = 100 dists = np.zeros([num_trials, 5, num_Ns]) for i, N in enumerate(Ns): print 'Performing trials for N = %d' % N for trial_num in range(num_trials): # User feedback print 'Running N = %d, trial_num = %d...' % (N, trial_num) # Choose mixture of gaussians gaussians = make_gaussian_mix(num_gaussians) # Draw data from mixture [xis, xgrid, Q_true, other] = draw_from_gaussian_mix(N=N, Nx=G, gaussians=gaussians) # Compute data range and grid for fine-graned analysis xmin = min(xgrid) xmax = max(xgrid) xint = [xmin, xmax] xs = sp.linspace(xmin, xmax, plot_grid_size) dx = xs[1] - xs[0] # Interpolate Q_true for plotting Q_true_vals = Q_true(xs) # Perform DEFT density estimation Q_star1_vals = deft_1d(xis, xint, alpha=1, G=G, verbose=False)(xs) Q_star2_vals = deft_1d(xis, xint, alpha=2, G=G, verbose=False)(xs) Q_star3_vals = deft_1d(xis, xint, alpha=3, G=G, verbose=False)(xs)