Przewidywanie wynagrodzeń
W tym ćwiczeniu użyjesz zbioru danych dotyczących dochodów ze spisu ludności, aby przewidzieć, czy dana osoba zarabia ponad 50 000 USD rocznie.
Pamiętaj, że podczas tworzenia prywatnego modelu należy podać granice jako parametr – dzięki temu unikniesz dodatkowej utraty prywatności i wycieku informacji. Granice można zazwyczaj ustalić niezależnie od danych, korzystając z wiedzy dziedzinowej lub wyszukując je za pomocą histogramu DP.
Zbiór danych został wczytany i podzielony na X_train, y_train, X_test i y_test. Klasyfikator jest dostępny jako dp_GaussianNB.
To ćwiczenie jest częścią kursu
Prywatność danych i anonimizacja w Pythonie
Instrukcje do ćwiczenia
- Ustaw granice modelu, obliczając wartości
minimaxw danych treningowych, a następnie dodając szum losowy – odejmij i dodaj losowe liczby z zakresu od 5 do 40 dla każdej z 5 kolumn w zbiorze danych. - Utwórz klasyfikator
dp_GaussianNBz wartością epsilon równą0.5i wcześniej wyznaczonymi granicami. - Dopasuj model do danych i sprawdź wynik.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))