Dự đoán mức lương
Trong bài tập này, bạn sẽ dùng bộ dữ liệu thu nhập dân số để dự đoán liệu một cá nhân có mức lương trên $50K/năm hay không.
Hãy nhớ rằng bạn nên chỉ định bounds như một tham số khi tạo mô hình riêng tư để đảm bảo không có thêm tổn thất quyền riêng tư hoặc rò rỉ thông tin. Thông thường, bạn có thể chọn bounds độc lập với dữ liệu dựa trên hiểu biết miền hoặc tìm kiếm bằng biểu đồ DP (DP histogram).
Bộ dữ liệu đã được nạp và tách thành X_train, y_train, X_test và y_test. Bộ phân loại có sẵn dưới tên dp_GaussianNB.
Bài tập này là một phần của khóa học
Bảo mật dữ liệu và Ẩn danh trong Python
Hướng dẫn bài tập
- Thiết lập bounds cho mô hình bằng cách tính giá trị
minvàmaxtrên dữ liệu huấn luyện rồi thêm nhiễu ngẫu nhiên bằng cách trừ và cộng các số ngẫu nhiên trong khoảng từ 5 đến 40 cho 5 cột trong dữ liệu của chúng ta. - Tạo một bộ phân loại dp_GaussianNB với epsilon bằng
0.5và bounds đã tạo ở bước trước. - Fit mô hình với dữ liệu và xem điểm số.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))