Prevedere gli stipendi
In questo esercizio userai il dataset del censimento dei redditi per prevedere se le persone hanno uno stipendio superiore a $50K/anno oppure no.
Ricorda che quando crei il modello privato dovresti specificare i limiti come parametro, per evitare ulteriore perdita di privacy o fuoriuscite di informazioni. Di solito puoi scegliere i limiti in modo indipendente dai dati, usando la conoscenza del dominio oppure effettuando una ricerca con un istogramma DP.
Il dataset è stato caricato e diviso in X_train, y_train, X_test e y_test. Il classificatore è disponibile come dp_GaussianNB.
Questo esercizio fa parte del corso
Riservatezza dei dati e anonimizzazione in Python
Istruzioni dell'esercizio
- Imposta i limiti del modello calcolando i valori
minemaxnei dati di training e aggiungendo rumore casuale sottraendo e aggiungendo numeri casuali in un intervallo da 5 a 40 per le 5 colonne dei nostri dati. - Crea un classificatore dp_GaussianNB con un epsilon di
0.5e i limiti creati in precedenza. - Esegui il fit del modello sui dati e osserva lo score.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))