Predicția salariilor
În acest exercițiu, vei folosi setul de date privind venitul din recensământ pentru a prezice dacă persoanele au un salariu de peste 50.000 USD/an sau nu.
Reține că trebuie să specifici limitele ca parametru atunci când creezi modelul privat, pentru a evita pierderi suplimentare de confidențialitate sau scurgeri de informații. De obicei, poți alege limitele independent de date, folosind cunoștințe din domeniu sau o căutare cu un histogramă diferențial privată.
Setul de date a fost încărcat și împărțit în X_train, y_train, X_test și y_test. Clasificatorul este disponibil ca dp_GaussianNB.
Acest exercițiu face parte din cursul
Confidențialitatea datelor și anonimizarea în Python
Instrucțiuni pentru exercițiu
- Stabilește limitele modelului calculând valorile
minșimaxdin datele de antrenament și adăugând zgomot aleatoriu prin scăderea, respectiv adăugarea unor numere aleatoare dintr-un interval de la 5 la 40 pentru cele 5 coloane din datele noastre. - Creează un clasificator dp_GaussianNB cu un epsilon de
0.5și limitele definite anterior. - Antrenează modelul pe date și verifică scorul.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))