Exemplo n.º 1
0
# 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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
# 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)