def transfo_0(x): return transfo.local_aggregation(x, 5, 'with_closest', unknown='') def transfo_1(x): return transfo.local_aggregation(x, 5, 'regroup_with_smallest', unknown='') list_transfo = [('ident_0', transfo_0), ('ident_1', transfo_0), ('ident_2', transfo_0), ('ident_3', transfo_0)] list_transfo2 = [('ident_0', transfo_1), ('ident_1', transfo_0), ('ident_2', transfo_0)] transfo1 = test.transform(list_transfo) transfo2 = test.local_transform(list_transfo, 5) transfo1 = test.transform([]) from anonymizer.comparison import batterie_de_test anonymisation1 = test.transform(list_transfo) anonymisation2 = test.transform(list_transfo2) batterie_de_test(anonymisation1, anonymisation2) xxx anonymisation1 = test.transform(list_transfo) anonymisation2 = test.transform(list_transfo) batterie_de_test(anonymisation1, anonymisation2)
k = 5 def aggregation_serie(x): return (local_aggregation(x, k, 'regroup_with_smallest', 'non renseigné')) def aggregation_year(x): return (local_aggregation(x, k, 'with_closest', 'non renseigné')) method_anonymisation = [ (name, aggregation_serie) for name in ordre_aggregation[:-1] ] + [('date', aggregation_year)] Avantages.local_transform(method_anonymisation, k) modalites_modifiees = (Avantages.anonymized_df.values != avantages.values).sum() modalites_intactes = (Avantages.anonymized_df.values == avantages.values).sum() # ## II. Chargement des données INSEE # construction d'un dictionnaire reliant les professions (INSEE) aux professions (Transparence Santé) annuaire = { 'Médecin omnipraticien': ['benef_specialite_code', '[SM54]'], 'Spécialiste en cardiologie': ['benef_specialite_code', '[SM04]'], 'Spécialiste en dermatologie vénéréologie': ['benef_specialite_code', '[SM15]'], 'Spécialiste en gynécologie médicale': ['benef_specialite_code', '[SM19]'],
'benef_pays_code', 'benef_titre_code', 'benef_identifiant_type_code'] Avantages = AnonymDataFrame(avantages.copy(), ordre_aggregation, unknown='non renseigné') k = 5 def aggregation_serie(x): return(local_aggregation(x, k, 'regroup_with_smallest', 'non renseigné')) def aggregation_year(x): return(local_aggregation(x, k, 'with_closest', 'non renseigné')) method_anonymisation = [(name, aggregation_serie) for name in ordre_aggregation[:-1]] + [('date', aggregation_year)] Avantages.local_transform(method_anonymisation, k) modalites_modifiees = (Avantages.anonymized_df.values != avantages.values).sum() modalites_intactes = (Avantages.anonymized_df.values == avantages.values).sum() # ## II. Chargement des données INSEE # construction d'un dictionnaire reliant les professions (INSEE) aux professions (Transparence Santé) annuaire = {'Médecin omnipraticien' : ['benef_specialite_code', '[SM54]'], 'Spécialiste en cardiologie' : ['benef_specialite_code', '[SM04]'], 'Spécialiste en dermatologie vénéréologie' : ['benef_specialite_code', '[SM15]'], 'Spécialiste en gynécologie médicale' : ['benef_specialite_code', '[SM19]'], 'Spécialiste en gynécologie obstétrique' : ['benef_specialite_code', '[SM20]'],
test.get_l() def transfo_0(x): return transfo.local_aggregation(x, 5, 'with_closest', unknown='') def transfo_1(x): return transfo.local_aggregation(x, 5, 'regroup_with_smallest', unknown='') list_transfo = [('ident_0', transfo_0), ('ident_1', transfo_0), ('ident_2', transfo_0), ('ident_3', transfo_0)] list_transfo2= [('ident_0', transfo_1), ('ident_1', transfo_0), ('ident_2', transfo_0)] transfo1 = test.transform(list_transfo) transfo2 = test.local_transform(list_transfo, 5) transfo1 = test.transform([]) from anonymizer.comparison import batterie_de_test anonymisation1 = test.transform(list_transfo) anonymisation2 = test.transform(list_transfo2) batterie_de_test(anonymisation1, anonymisation2) xxx anonymisation1 = test.transform(list_transfo) anonymisation2 = test.transform(list_transfo) batterie_de_test(anonymisation1, anonymisation2)
len(liste_races) # ## II. Anonymisation # On définit les variables à anonymiser ordre_aggregation = ['Race', 'Sexe', 'Robe', 'Pays de naissance', 'Destiné à la consommation humaine', 'Date de naissance'] Equides = AnonymDataFrame(equides, ordre_aggregation, unknown='non renseigné') def aggregation_serie(x): return(local_aggregation(x, 5, 'regroup_with_smallest', 'non renseigné')) method_anonymisation = [(name, aggregation_serie) for name in ordre_aggregation[:-1]] def aggregation_year(x): return(local_aggregation(x, 5, 'with_closest', 'non renseigné')) method_anonymisation += [('Date de naissance', aggregation_year)] Equides.local_transform(method_anonymisation, 5) Equides.df = Equides.anonymized_df Equides.get_k()