始める無料で始める

同じ確率分布からのサンプリング

米国国勢調査のように、多くの組織は一般市民から収集したデータのサンプルを公開しています。これらのデータセットは、まずさまざまな手法で匿名化され、その後、計算ができるように全体の1%〜5%程度のごく一部だけが公開されます。サンプリングはデータの統計的特性を保つことが知られており、母集団の実態を分析・把握するのに役立ちます。

この演習では、IBM HR データセットの department 列を、元のデータセットの分布に基づいてサンプリングすることで匿名化します。

データセットは hr として読み込まれています。

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

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

コースを見る

演習の手順

  • department 列に含まれる各ユニーク値の相対度数を取得します。
  • counts から確率を取り出し、distributions という変数に保存します。
  • 先ほど計算した確率分布からサンプリングします。サンプルのサイズは hr データセットと同じにしてください。

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

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

# Obtain the probability distribution counts 
counts = ____

# Get the probability distribution values 
distributions = ____

# Sample from the calculated probability distributions
hr['department'] = np.random.choice(counts.index, 
                                    p=____, 
                                    size=len(____))

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