def print_privacy_allocation(stats_parameters, sigmas, epsilons, excess_noise_ratio):
'''
Print information about sigmas and noise ratios for each statistic.
'''
# print epsilons sorted by epsilon allocation
epsilons_sorted = epsilons.keys()
epsilons_sorted.sort(key = lambda x: epsilons[x], reverse = True)
print('Epsilon values\n-----')
for param in epsilons_sorted:
print('{}: {}'.format(param, epsilons[param]))
# print equalized ratio of sigma to expected value
for param, stats in stats_parameters.iteritems():
ratio = get_expected_noise_ratio(excess_noise_ratio,
sigmas[param],
stats[1])
print('Ratio of sigma value to expected value: {}'.format(ratio))
break
print ""
# print allocation of privacy budget
sigma_params_sorted = sigmas.keys()
# add dummy counter for full counters.noise.yaml
dummy_counter = DEFAULT_DUMMY_COUNTER_NAME
sigma_params_sorted.append(dummy_counter)
sigmas[dummy_counter] = get_sanity_check_counter()['sigma']
epsilons[dummy_counter] = get_sanity_check_counter()['epsilon']
sigma_params_sorted.sort()
print('Sigma values\n-----')
print('counters:')
for param in sigma_params_sorted:
sigma = sigmas[param]
print(' {}:'.format(param))
print(' sigma: {:4f}'.format(sigma))
print ""
评论列表
文章目录