Privasi Data dan Anonimisasi di Python
Rebeca Gonzalez
Data engineer


Hanya satu rekaman yang memiliki nilai demografis sang gubernur.
Menghapus semua info demografis membuat data tidak berguna untuk analisis.
Bagaimana jika ada jalan tengah agar nilai demografis tidak lagi unik dalam dataset?
$$ $$ $$ $$ $$ $$ Setidaknya k individu dalam dataset berbagi kumpulan atribut yang dapat menjadi pengenal untuk tiap individu.

2-anonymous:
ZIP code Umur
0 4217 34
1 4217 34
2 1742 77
3 1742 77
Setiap kombinasi nilai untuk kolom pengidentifikasi muncul setidaknya pada k rekaman berbeda.
Bukan 2-anonymous:
ZIP code Umur
0 4217 34
1 4217 34
2 1742 77
3 1743 77

# Explore DataFrame
medical_df.head()
Umur Departemen Kondisi
0 34 Pemasaran Gangguan kecemasan
1 46 Keuangan Flu
2 41 Keuangan Flu
3 62 Pemasaran Gangguan kecemasan
4 44 Pemasaran Gangguan kecemasan
Atribut privasi:
# Hitung berapa banyak kombinasi unik untuk Umur dan Departemen
medical_df.groupby(['Age','Department']).size().reset_index(name='Count')
Umur Departemen Jumlah
0 30 Produksi 2
1 31 Pemasaran 1
2 32 Pemasaran 1
3 32 Produksi 1
4 33 Produksi 1
5 34 Keuangan 1
6 34 Pemasaran 1
7 34 Produksi 1
8 35 Pemasaran 1
9 36 Keuangan 2
10 38 Keuangan 1
11 38 Produksi 1
# Generalkan Umur dengan membuat 4 kelompok interval medical_df['Age_group'] = pd.cut(medical_df['Age'], bins=4)# Jelajahi dataset dengan interval medical_df.head()
Umur Departemen Kondisi Kelompok_umur
0 34 Pemasaran Gangguan kecemasan (29.964, 39.0]
1 46 Keuangan Flu (39.0, 48.0]
2 41 Keuangan Flu (39.0, 48.0]
3 62 Pemasaran Gangguan kecemasan (57.0, 66.0]
4 44 Pemasaran Gangguan kecemasan (39.0, 48.0]
# Hitung berapa banyak kombinasi unik untuk Umur dan Departemen
medical_df.groupby(['Age_group','Department']).size().reset_index(name='Count')
Kelompok_umur Departemen Jumlah
0 (29.964, 39.0] Keuangan 4
1 (29.964, 39.0] Pemasaran 4
2 (29.964, 39.0] Produksi 6
3 (39.0, 48.0] Keuangan 8
4 (39.0, 48.0] Pemasaran 5
5 (39.0, 48.0] Produksi 4
6 (48.0, 57.0] Keuangan 3
7 (48.0, 57.0] Pemasaran 2
8 (48.0, 57.0] Produksi 4
# Tetapkan k = 2, untuk dataset 2-anonymous k = 2# Hitung berapa banyak kombinasi unik untuk Umur dan Departemen df_count = medical_df.groupby(['Age_group','Department']).size().reset_index(name='Count')# Saring baris dengan jumlah kurang dari k df_count[df_count['Count'] < k]
Kelompok_umur Departemen Jumlah
Privasi Data dan Anonimisasi di Python