code: Several fixes
This commit is contained in:
		@ -71,13 +71,11 @@ def main(args):
 | 
			
		||||
      lmdks_sel, eps_out = lmdk_sel.find_lmdks(seq, lmdks, epsilon)
 | 
			
		||||
 | 
			
		||||
      # Skip
 | 
			
		||||
      rls_data_s, bgts_s = lmdk_bgt.skip_cont(seq, lmdks_sel, eps_out)
 | 
			
		||||
      # lmdk_bgt.validate_bgts(seq, lmdks, epsilon, bgts_s)
 | 
			
		||||
      rls_data_s, _ = lmdk_bgt.skip_cont(seq, lmdks_sel, eps_out)
 | 
			
		||||
      mae_s[i] += (lmdk_bgt.mae_cont(rls_data_s)/args.iter)*100
 | 
			
		||||
 | 
			
		||||
      # Uniform
 | 
			
		||||
      rls_data_u, bgts_u = lmdk_bgt.uniform_cont(seq, lmdks_sel, eps_out)
 | 
			
		||||
      # lmdk_bgt.validate_bgts(seq, lmdks, epsilon, bgts_u)
 | 
			
		||||
      rls_data_u, _ = lmdk_bgt.uniform_cont(seq, lmdks_sel, eps_out)
 | 
			
		||||
      mae_u[i] += (lmdk_bgt.mae_cont(rls_data_u)/args.iter)*100
 | 
			
		||||
 | 
			
		||||
      # Adaptive
 | 
			
		||||
 | 
			
		||||
@ -64,19 +64,18 @@ def main(args):
 | 
			
		||||
 | 
			
		||||
    for _ in range(args.iter):
 | 
			
		||||
 | 
			
		||||
      lmdks, eps_out = lmdk_sel.find_lmdks(seq, lmdks, epsilon)
 | 
			
		||||
      lmdks_sel, eps_out = lmdk_sel.find_lmdks(seq, lmdks, epsilon)
 | 
			
		||||
 | 
			
		||||
      # Skip
 | 
			
		||||
      rls_data_s, bgts_s = lmdk_bgt.skip_cons(seq, lmdks, eps_out)
 | 
			
		||||
      # lmdk_bgt.validate_bgts(seq, lmdks, epsilon, bgts_s)
 | 
			
		||||
      rls_data_s, _ = lmdk_bgt.skip_cons(seq, lmdks_sel, eps_out)
 | 
			
		||||
      mae_s[i] += lmdk_bgt.mae_cons(seq, rls_data_s)/args.iter
 | 
			
		||||
 | 
			
		||||
      # Uniform
 | 
			
		||||
      rls_data_u, bgts_u = lmdk_bgt.uniform_cons(seq, lmdks, eps_out)
 | 
			
		||||
      rls_data_u, _ = lmdk_bgt.uniform_cons(seq, lmdks_sel, eps_out)
 | 
			
		||||
      mae_u[i] += lmdk_bgt.mae_cons(seq, rls_data_u)/args.iter
 | 
			
		||||
 | 
			
		||||
      # Adaptive
 | 
			
		||||
      rls_data_a, _, _ = lmdk_bgt.adaptive_cons(seq, lmdks, eps_out, .5, .5)
 | 
			
		||||
      rls_data_a, _, _ = lmdk_bgt.adaptive_cons(seq, lmdks_sel, eps_out, .5, .5)
 | 
			
		||||
      mae_a[i] += lmdk_bgt.mae_cons(seq, rls_data_a)/args.iter
 | 
			
		||||
 | 
			
		||||
      # Calculate once
 | 
			
		||||
 | 
			
		||||
@ -57,8 +57,6 @@ def main(args):
 | 
			
		||||
    print('(%d/%d) %s... ' %(d_i + 1, len(dist_type), title), end='', flush=True)
 | 
			
		||||
    mae = np.zeros(len(lmdk_n))
 | 
			
		||||
    for n_i, n in enumerate(lmdk_n):
 | 
			
		||||
      if n == lmdk_n[-1]:
 | 
			
		||||
        break
 | 
			
		||||
      for r in range(args.iter):
 | 
			
		||||
        lmdks = lmdk_lib.get_lmdks(seq, n, d)
 | 
			
		||||
        hist, h = lmdk_lib.get_hist(seq, lmdks)
 | 
			
		||||
@ -67,20 +65,11 @@ def main(args):
 | 
			
		||||
        res, _ = exp_mech.exponential(hist, opts, exp_mech.score, delta, epsilon)
 | 
			
		||||
        mae[n_i] += lmdk_lib.get_norm(hist, res)/args.iter  # Euclidean
 | 
			
		||||
        # mae[n_i] += lmdk_lib.get_emd(hist, res)/args.iter  # Wasserstein
 | 
			
		||||
    mae = mae/21  # Euclidean
 | 
			
		||||
    # mae = mae/11.75  # Wasserstein
 | 
			
		||||
    # Rescaling (min-max normalization)
 | 
			
		||||
    # https://en.wikipedia.org/wiki/Feature_scaling#Rescaling_(min-max_normalization)
 | 
			
		||||
    mae = (mae - mae.min())/(mae.max() - mae.min())
 | 
			
		||||
    print('[OK]', flush=True)
 | 
			
		||||
    # # Plot bar for current distribution
 | 
			
		||||
    # plt.bar(
 | 
			
		||||
    #   x_i + x_offset,
 | 
			
		||||
    #   mae,
 | 
			
		||||
    #   bar_width,
 | 
			
		||||
    #   label=label,
 | 
			
		||||
    #   linewidth=lmdk_lib.line_width
 | 
			
		||||
    # )
 | 
			
		||||
    # # Change offset for next bar
 | 
			
		||||
    # x_offset += bar_width
 | 
			
		||||
    # Plot line
 | 
			
		||||
    # Plot bar for current distribution
 | 
			
		||||
    plt.plot(
 | 
			
		||||
      x_i,
 | 
			
		||||
      mae,
 | 
			
		||||
 | 
			
		||||
@ -87,18 +87,18 @@ def main(args):
 | 
			
		||||
      for bgt in bgt_conf:
 | 
			
		||||
        for _ in range(args.iter):
 | 
			
		||||
 | 
			
		||||
          lmdks, eps_out = lmdk_sel.find_lmdks(seq, lmdks, bgt['epsilon'])
 | 
			
		||||
          lmdks_sel, eps_out = lmdk_sel.find_lmdks(seq, lmdks, bgt['epsilon'])
 | 
			
		||||
 | 
			
		||||
          # Skip
 | 
			
		||||
          rls_data_s, _ = lmdk_bgt.skip(seq, lmdks, eps_out)
 | 
			
		||||
          rls_data_s, _ = lmdk_bgt.skip(seq, lmdks_sel, eps_out)
 | 
			
		||||
          mae_s[i] += lmdk_bgt.mae(seq, rls_data_s)/args.iter
 | 
			
		||||
 | 
			
		||||
          # Uniform
 | 
			
		||||
          rls_data_u, _ = lmdk_bgt.uniform_r(seq, lmdks, eps_out)
 | 
			
		||||
          rls_data_u, _ = lmdk_bgt.uniform_r(seq, lmdks_sel, eps_out)
 | 
			
		||||
          mae_u[i] += lmdk_bgt.mae(seq, rls_data_u)/args.iter
 | 
			
		||||
 | 
			
		||||
          # Adaptive
 | 
			
		||||
          rls_data_a, _, _ = lmdk_bgt.adaptive(seq, lmdks, eps_out, .5, .5)
 | 
			
		||||
          rls_data_a, _, _ = lmdk_bgt.adaptive(seq, lmdks_sel, eps_out, .5, .5)
 | 
			
		||||
          mae_a[i] += lmdk_bgt.mae(seq, rls_data_a)/args.iter
 | 
			
		||||
 | 
			
		||||
          # Calculate once
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user