Explorer des données avec un gestionnaire de budget de confidentialité
Les systèmes d’exploration de données qui offrent de la confidentialité différentielle doivent gérer un budget de confidentialité, qui mesure la quantité de confidentialité perdue au fil de plusieurs requêtes.
Dans cet exercice, vous allez explorer le jeu de données IBM HR Analytics Employee Attrition & Performance tout en suivant notre budget de confidentialité. N’oubliez pas que si une requête dépasse le budget de confidentialité défini dans le gestionnaire, une erreur se produit.
L’histogramme est un outil précieux pour visualiser les données de manière différentiellement privée. La syntaxe est la même que celle de la fonction correspondante de numpy, avec un paramètre epsilon.
L’ensemble de données complet est disponible sous hr et l’attribut d’âge des employés sous ages. Une fonction personnalisée a été créée et chargée sous show_histogram() pour tracer l’histogramme comme vous l’avez fait plus tôt dans le cours.
Cet exercice fait partie du cours
Confidentialité des données et anonymisation en Python
Instructions
- Créez un
BudgetAccountantde confidentialité avec unepsilonde1.5, en utilisant son constructeur. - Générez un histogramme privé à partir de la colonne
agesavec une valeur d’epsilonde0.1. - Récupérez et affichez la moyenne privée de
ages, en utilisant unepsilonde0.9, et des bornes de10à100sous forme de tuple. - Affichez le budget de confidentialité restant pour les deux nouvelles requêtes suivantes.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create the privacy Budget Accountant with epsilon of 1.5
acc = ____
# Use the Budget Accountant acc to draw a private histogram of ages with epsilon 0.1
dp_hist, dp_bins = tools.___(____, epsilon=____, range=[10,100], accountant=____)
show_histogram(dp_hist, dp_bins)
# Get and show the private average of the age variable
print("Mean: ", tools.mean(____))
# Show privacy budget remaining for 2 queries
print("Remaining budget for 2 queries: ", ____)
print("Number of queries recorded: ", len(acc))