最適な連続分布からのサンプリング
適合の良い確率分布からランダムサンプリングすることで、プライバシーを維持できます。同時に、権限のある関係者がデータの統計分析を正確に行えるようにもなります。
この演習では、IBM データセットの monthly_income 列を匿名化します。前のレッスンで、最も適合する連続分布が exponnorm であると判断しました。これを使って収入をモデル化しましょう。
データセットは hr として利用できます。
この演習はコースの一部です
Pythonで学ぶデータプライバシーと匿名化
演習の手順
scipyパッケージからstatsモジュールをインポートします。- 連続変数
monthly_incomeにexponnorm分布をフィットさせ、分布のパラメータを取得して後でサンプルを生成します。 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())