Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Ange modellens gränser genom att beräkna min- och max-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.5 och 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))
Redigera och kör kod