การพยากรณ์เงินเดือน
ในแบบฝึกหัดนี้ จะใช้ชุดข้อมูลรายได้จากสำมะโนประชากรเพื่อพยากรณ์ว่าแต่ละบุคคลมีเงินเดือนมากกว่า $50K/ปี หรือไม่
จำไว้ว่าควรระบุขอบเขต (bounds) เป็น parameter ตอนสร้างโมเดล private เพื่อป้องกันการสูญเสียความเป็นส่วนตัวหรือการรั่วไหลของข้อมูลเพิ่มเติม โดยปกติแล้วสามารถกำหนดขอบเขตได้โดยไม่ขึ้นกับข้อมูลโดยตรง โดยอาศัยความรู้เชิงโดเมนหรือการค้นหาด้วย DP histogram
ชุดข้อมูลถูกโหลดและแบ่งเป็น X_train, y_train, X_test และ y_test แล้ว โดย classifier พร้อมใช้งานในชื่อ dp_GaussianNB
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ความเป็นส่วนตัวของข้อมูลและการทำให้ข้อมูลไม่ระบุตัวตนด้วย Python
คำแนะนำการฝึกหัด
- กำหนดขอบเขตของโมเดลโดยคำนวณค่า
minและmaxจากข้อมูล training จากนั้นเพิ่ม random noise โดยการลบและบวกตัวเลขสุ่มในช่วง 5 ถึง 40 สำหรับทั้ง 5 คอลัมน์ในข้อมูลของเรา - สร้าง dp_GaussianNB classifier โดยกำหนด epsilon เป็น
0.5และใช้ขอบเขตที่สร้างไว้ก่อนหน้านี้ - Fit โมเดลกับข้อมูลและดูคะแนนผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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))