Daten erkunden mit einem Privacy-Budget-Accountant
Systeme zur Datenexploration, die Differential Privacy bereitstellen, müssen ein Privacy-Budget verwalten, das den Verlust an Privatsphäre über mehrere Abfragen hinweg misst.
In dieser Übung erkundest du den Datensatz IBM HR Analytics Employee Attrition & Performance und behältst dabei unser Privacy-Budget im Blick. Denk daran: Wenn eine Abfrage das im Accountant festgelegte Privacy-Budget überschreitet, tritt ein Fehler auf.
Das Histogramm ist ein wertvolles Werkzeug, um Daten differenziell privat zu visualisieren. Die Syntax entspricht der entsprechenden Funktion in numpy, mit einem zusätzlichen Epsilon-Parameter.
Der vollständige Datensatz ist als hr verfügbar und das Altersattribut der Mitarbeitenden als ages. Eine benutzerdefinierte Funktion wurde als show_histogram() erstellt und geladen, um das Histogramm so zu plotten, wie du es zuvor im Kurs gemacht hast.
Diese Übung ist Teil des Kurses
Datenschutz und Anonymisierung mit Python
Anleitung zur Übung
- Erstelle einen Privacy-
BudgetAccountantmit einemepsilonvon1.5, indem du den Konstruktor verwendest. - Erzeuge ein privates Histogramm aus der Spalte
agesmit einemepsilon-Wert von0.1. - Ermittle und zeige den privaten Durchschnitt von
agesunter Verwendung einesepsilonvon0.9und Grenzen von10bis100als Tupel. - Gib das verbleibende Privacy-Budget für die zwei folgenden neuen Abfragen aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))