始める無料で始める

給与を予測する

この演習では、国勢調査の収入データセットを使って、個人の年収が $50K/年 を超えるかどうかを予測します。

追加のプライバシー損失や情報漏えいを防ぐため、プライベートモデルを作成するときは境界をパラメータとして指定する必要があることを思い出してください。通常、ドメイン知識を用いるか、DP ヒストグラムで探索することで、データとは独立に境界を選べます。

データセットはすでに X_trainy_trainX_testy_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))
コードを編集して実行