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
<Kurs>Datenschutz und Anonymisierung mit Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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))