始める無料で始める

最適な連続分布からのサンプリング

適合の良い確率分布からランダムサンプリングすることで、プライバシーを維持できます。同時に、権限のある関係者がデータの統計分析を正確に行えるようにもなります。

この演習では、IBM データセットの monthly_income 列を匿名化します。前のレッスンで、最も適合する連続分布が exponnorm であると判断しました。これを使って収入をモデル化しましょう。

データセットは hr として利用できます。

この演習はコースの一部です

Pythonで学ぶデータプライバシーと匿名化

コースを見る

演習の手順

  • scipy パッケージから stats モジュールをインポートします。
  • 連続変数 monthly_incomeexponnorm 分布をフィットさせ、分布のパラメータを取得して後でサンプルを生成します。
  • exponnorm 分布からサンプリングし、.rvs() メソッドを使って monthly_income を置き換えます。サイズは列の長さと同じに指定します。
  • 給与は最も近い整数に丸めます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import stats from scipy
____

# Fit the exponnorm distribution to the continuous variable monthly income
params = ____

# Sample from the exponnorm distribution and replace monthly income
hr['monthly_income'] = ____

# Round the salaries to their closest integer
hr['monthly_income'] = ____

# See the resulting dataset
print(hr.head())
コードを編集して実行