anonymizer.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. # -*- coding: utf-8 -*-
  2. """
  3. run clustering_based_k_anon with given parameters
  4. """
  5. import copy
  6. import sys
  7. import os
  8. from clustering_based.clustering_based_k_anon import clustering_based_k_anon
  9. sys.path.insert(1, os.path.join(sys.path[0], '..'))
  10. from utils.data import reorder_columns, restore_column_order
  11. DATA_SELECT = 'a'
  12. TYPE_ALG = 'kmember'
  13. DEFAULT_K = 10
  14. __DEBUG = True
  15. def extend_result(val):
  16. """
  17. separated with ',' if it is a list
  18. """
  19. if isinstance(val, list):
  20. return ','.join(val)
  21. return val
  22. def get_result_one(att_trees, data, k, path, qi_index, SA_index, type_alg):
  23. "run clustering_based_k_anon for one time, with k=10"
  24. print("K=%d" % k)
  25. result, eval_result = clustering_based_k_anon(att_trees, reorder_columns(
  26. copy.deepcopy(data), qi_index), k, len(qi_index), SA_index, type_alg)
  27. print("NCP %0.2f" % eval_result[0] + "%")
  28. print("Running time %0.2f" % eval_result[1] + "seconds")
  29. return restore_column_order(result, qi_index), eval_result[0], eval_result[1]