def main(): csvfile = open(result_file, 'a') result_writer = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) #net_name = network_name[int(sys.argv[1])] for net_name in network_name: print("Net:", net_name) net = nx.read_edgelist(network_path + net_name + ".txt", create_using=nx.Graph(), nodetype=int) origin_edge_count = net.number_of_edges() for epsilon in [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1]: delta = epsilon result_writer.writerow([time.time(), "edge_privacy", "origin", net_name, origin_edge_count, origin_edge_count, origin_edge_count, epsilon, delta]) for _ in range(int(sys.argv[1])): edge_sampled_net = basic_edge.private_basic_edge_sample(net, epsilon, delta) result_writer.writerow([time.time(), "edge_privacy", "basic_edge", net_name, edge_sampled_net.number_of_edges(), edge_sampled_net.number_of_edges() / min(1 - math.exp(-epsilon), delta, 1.0), origin_edge_count, epsilon, delta]) color_sampled_net = color.private_color_sample(net, epsilon, delta) result_writer.writerow([time.time(), "edge_privacy", "color", net_name, color_sampled_net.number_of_edges(), color_sampled_net.number_of_edges() / min(1.0, delta), origin_edge_count, epsilon, delta]) csvfile.flush()
def main(): csvfile = open(result_file, 'a') result_writer = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) #net_name = network_name[int(sys.argv[1])] for net_name in network_name: print("Net:", net_name) net = nx.read_edgelist(network_path + net_name + ".txt", create_using=nx.Graph(), nodetype=int) for epsilon in [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1]: delta = epsilon original_dist = compute_degree_distribution(net, limit=LIMIT) for i in range(LIMIT + 1): result_writer.writerow([ time.time(), "edge_privacy", "origin", net_name, i, original_dist[i], epsilon, delta ]) edge_sampled_dists = [None] * int(sys.argv[1]) color_sampled_dists = [None] * int(sys.argv[1]) for i in range(int(sys.argv[1])): edge_sampled_dists[i] = compute_degree_distribution( basic_edge.private_basic_edge_sample(net, epsilon, delta), limit=LIMIT) color_sampled_dists[i] = compute_degree_distribution( color.private_color_sample(net, epsilon, delta), limit=LIMIT) average_edge_dist = np.mean( np.array(edge_sampled_dists), axis=0) # / min(1 - math.exp(-epsilon), delta, 1.0) average_color_dist = np.mean(np.array(color_sampled_dists), axis=0) # / min(1.0, delta) for i in range(LIMIT + 1): result_writer.writerow([ time.time(), "edge_privacy", "basic_edge", net_name, i, average_edge_dist[i], epsilon, delta ]) result_writer.writerow([ time.time(), "edge_privacy", "color", net_name, i, average_color_dist[i], epsilon, delta ]) csvfile.flush()
def main(): csvfile = open(result_file, 'a') result_writer = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) true_k_core = {} for net_name in network_name: net = nx.read_edgelist(network_path + net_name + ".txt", create_using=nx.Graph(), nodetype=int) net.remove_edges_from(nx.selfloop_edges(net)) for k in [512, 256, 128, 64, 32, 16, 8, 4]: true_k_core[(net_name, k)] = nx_core.k_core(net, k) # result_writer.writerow([time.time(), # "node_privacy", # "true", # "k_core", # net_name, # 0.5, # 0.5, # k, # reserve for index # true_k_core # ]) for i in range(int(sys.argv[1])): print("Repeat:", i) for net_name in network_name: print("Net:", net_name) net = nx.read_edgelist(network_path + net_name + ".txt", create_using=nx.Graph(), nodetype=int) net.remove_edges_from(nx.selfloop_edges(net)) for k in [512, 256, 128, 64, 32, 16, 8, 4]: for epsilon in [0.5, 0.1, 0.05]: delta = epsilon basic_node_k_core = nx_core.k_core( basic_node.private_basic_node_sample( net, epsilon, delta), k * min(1 - math.exp(-epsilon), delta, 1.0)**2) result_writer.writerow([ time.time(), "node_privacy", "basic_node", "k_core", net_name, epsilon, delta, k, #reserve for index jaccard(true_k_core[(net_name, k)], basic_node_k_core) ]) basic_edge_k_core = nx_core.k_core( basic_edge.private_basic_edge_sample( net, epsilon, delta), k * min(1 - math.exp(-epsilon), delta, 1.0)) result_writer.writerow([ time.time(), "edge_privacy", "basic_edge", "k_core", net_name, epsilon, delta, k, jaccard(true_k_core[(net_name, k)], basic_edge_k_core) ]) color_k_core = nx_core.k_core( color.private_color_sample(net, epsilon, delta), k * min(1.0, delta)) result_writer.writerow([ time.time(), "edge_privacy", "color", "k_core", net_name, epsilon, delta, k, jaccard(true_k_core[(net_name, k)], color_k_core) ]) csvfile.flush() blocki_edge_100_k_core = nx_core.k_core( blocki_edge.blocki_edge_trim(net, 100), k) for epsilon in [0.5, 0.1, 0.05]: result_writer.writerow([ time.time(), "edge_privacy", "blocki_edge_100", "k_core", net_name, epsilon, epsilon, k, jaccard(true_k_core[(net_name, k)], blocki_edge_100_k_core) ]) blocki_edge_1000_k_core = nx_core.k_core( blocki_edge.blocki_edge_trim(net, 1000), k) for epsilon in [0.5, 0.1, 0.05]: result_writer.writerow([ time.time(), "edge_privacy", "blocki_edge_1000", "k_core", net_name, epsilon, epsilon, k, jaccard(true_k_core[(net_name, k)], blocki_edge_1000_k_core) ]) ding_26_k_core = nx_core.k_core(ding.ding_trim(net, 100), k) for epsilon in [0.5, 0.1, 0.05]: result_writer.writerow([ time.time(), "edge_privacy", "ding_100", "k_core", net_name, epsilon, epsilon, k, jaccard(true_k_core[(net_name, k)], ding_26_k_core) ]) csvfile.flush()