Förutsäga löner
I den här övningen använder du folkräkningsdatasetet för att förutsäga om individer har en lön på mer än 50 000 USD/år eller inte.
Kom ihåg att du bör ange gränserna som en parameter när du skapar den privata modellen, för att undvika ytterligare integritetsförlust eller informationsläckage. Vanligtvis kan du välja gränserna oberoende av datan, med hjälp av domänkunskap eller sökning med ett DP-histogram.
Datasetet har lästs in och delats upp i X_train, y_train, X_test och y_test. Klassificeraren finns tillgänglig som dp_GaussianNB.
Den här övningen är en del av kursen
Dataintegritet och anonymisering i Python
Övningsinstruktioner
- Ange modellens gränser genom att beräkna
min- ochmax-värdena i träningsdatan och lägga till slumpmässigt brus, genom att subtrahera respektive addera slumptal i intervallet 5 till 40 för de 5 kolumnerna i vår data. - Skapa en
dp_GaussianNB-klassificerare med ett epsilon på0.5och de tidigare skapade gränserna. - Träna modellen på datan och kontrollera resultatet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Set the min and max of bounds for the data and add noise using random
bounds = (X_train.____(axis=0) - random.____(range(5, 40), 5),
____)
# Built the classifier with epsilon of 0.5
dp_clf = ____(epsilon=____, bounds=____)
# Fit the model to the data and print the score
____
print("The accuracy of the differentially private model is ",
dp_clf.score(X_test, y_test))