Прогнозирование зарплаты
В этом упражнении вы будете использовать набор данных о доходах населения, чтобы предсказать, превышает ли годовая зарплата человека 50 000 долларов.
Помните, что при создании приватной модели необходимо задавать границы в качестве параметра — это позволяет избежать дополнительных потерь конфиденциальности и утечки информации. Как правило, границы можно выбирать независимо от данных: на основе экспертных знаний о предметной области или с помощью поиска через дифференциально приватную гистограмму.
Набор данных уже загружен и разбит на X_train, y_train, X_test и y_test. Классификатор доступен как dp_GaussianNB.
Это упражнение является частью курса
Конфиденциальность данных и анонимизация в Python
Инструкции к упражнению
- Задайте границы модели, вычислив значения
minиmaxв обучающих данных и добавив случайный шум: вычтите и прибавьте случайные числа в диапазоне от 5 до 40 для каждого из 5 столбцов набора данных. - Создайте классификатор dp_GaussianNB со значением epsilon
0.5и ранее заданными границами. - Обучите модель на данных и оцените результат.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))