同じ確率分布からのサンプリング
米国国勢調査のように、多くの組織は一般市民から収集したデータのサンプルを公開しています。これらのデータセットは、まずさまざまな手法で匿名化され、その後、計算ができるように全体の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())