連続データの匿名化

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

Rebeca Gonzalez

Instructor

連続変数

  • 年齢
  • 身長
  • 体重
  • 温度
  • 日時
Pythonで学ぶデータプライバシーと匿名化

連続変数

# データセットを確認
hr.head()
    Age    BusinessTravel        Department                EducationField    EmployeeNumber
0    41    Travel_Rarely         Sales                     Life Sciences     1
1    49    Travel_Frequently     Research & Development    Life Sciences     2
2    37    Travel_Rarely         Research & Development    Other             4
3    33    Travel_Frequently     Research & Development    Life Sciences     5
4    27    Travel_Rarely         Research & Development    Medical           7
Pythonで学ぶデータプライバシーと匿名化

連続分布

データに最適な連続分布を選ぶ。

  • ヒストグラムを作成
  • 連続関数を当てはめて比較
  • ヒストグラムとの差が最小の関数を採用
Pythonで学ぶデータプライバシーと匿名化

連続分布

Age 変数の分布プロット

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

分布の適用

import scipy.stats


# 一般化ロジスティック分布を Age にフィット params = scipy.stats.genlogistic.fit(hr['Age'])
# 連続関数のパラメータを確認 print(params)
(4.9899067653418285, 22.32808853181744, 7.046590524738551)
Pythonで学ぶデータプライバシーと匿名化

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

# 一般化ロジスティック分布からサンプリング
df['Age'] = scipy.stats.genlogistic.rvs(size=len(df.index), *params)


# 結果データを確認 df['Age'].head()
     Age          BusinessTravel     Department                EducationField    EmployeeNumber
0    40.767259    Travel_Rarely      Sales                     Life Sciences     1
1    45.730504    Travel_Frequently  Research & Development    Life Sciences     2
2    41.910050    Travel_Rarely      Research & Development    Other             4
3    35.275320    Travel_Frequently  Research & Development    Life Sciences     5
4    40.198134    Travel_Rarely      Research & Development    Medical           7
Pythonで学ぶデータプライバシーと匿名化

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

# 値を丸めて離散値にする
df['Age'] = df['Age'].round()
     Age   BusinessTravel     Department                EducationField    EmployeeNumber
0    41    Travel_Rarely      Sales                     Life Sciences     1
1    46    Travel_Frequently  Research & Development    Life Sciences     2
2    42    Travel_Rarely      Research & Development    Other             4
3    35    Travel_Frequently  Research & Development    Life Sciences     5
4    40    Travel_Rarely      Research & Development    Medical           7
Pythonで学ぶデータプライバシーと匿名化

Passons à la pratique !

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

Preparing Video For Download...