給与を予測する
この演習では、国勢調査の収入データセットを使って、個人の年収が $50K/年 を超えるかどうかを予測します。
追加のプライバシー損失や情報漏えいを防ぐため、プライベートモデルを作成するときは境界をパラメータとして指定する必要があることを思い出してください。通常、ドメイン知識を用いるか、DP ヒストグラムで探索することで、データとは独立に境界を選べます。
データセットはすでに X_train、y_train、X_test、y_test に分割されています。分類器は dp_GaussianNB として利用できます。
この演習はコースの一部です
Pythonで学ぶデータプライバシーと匿名化
演習の手順
- 学習データの
min値とmax値を計算し、5 列それぞれに対して 5〜40 の範囲の乱数を減算・加算してランダムノイズを加えることで、モデルの境界を設定します。 - イプシロンを
0.5、境界に先ほど作成した値を用いて、dp_GaussianNB 分類器を作成します。 - モデルをデータに適合させ、スコアを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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))