Python ile Veri Gizliliği ve Anonimleştirme
Rebeca Gonzalez
Data engineer
Veri değerlerini daha az hassas olanlarla değiştirmeyi sağlayan teknik.
Amaç, analize uygunluğu korurken bazı tanımlayıcıları kaldırmaktır.
Bir değeri daha az hassas bir değerle değiştirmenize olanak tanır: "Dansçı" -> "Sanatçı"
name location
0 Amanda Hooper 146 Rodgers Field\nGregoryview, MS 71630
1 Sarah Smith 817 Garcia Shoal\nJonesville, AR 30299
2 Sean Boyd III 1938 90th St\nDallas, TX 59715
name location
0 Amanda Hooper 998 Boone Estate\nReedborough, MS 71630
1 Sarah Smith 7255 Shelby Rapids Apt. 455\nKarenland, AK 30299
2 Sean Boyd III 791 Crist Parks\nGreenton, TX 59715
# Orijinal veriler
df_employees.head()
first name last name age ssn
0 Amber Brown 91 798-29-4785
1 William Gibson 34 431-66-8381
2 Daniel Lee 92 825-91-5550
3 Andrea Stevenson 64 188-59-3544
4 Julie Horn 35 020-60-6388
# Genelleştirilmiş veriler: Yaş aralıkları ve maskelenmiş SSN
generalized_df.head()
First name Last name Age SSN
0 Amber Brown (80, 99] 798-**-****
1 William Gibson (30, 50] 431-**-****
2 Daniel Lee (80, 99] 825-**-****
3 Andrea Stevenson (60, 80] 188-**-****
4 Julie Horn (30, 50] 020-**-****
34 yaşındakiler 30-50 aralığına yerleştirilir. Buna ayrıca binleme denir.

# Veri kümesini inceleyin
df_medical.head()
age gender department condition
0 30 F Finance Anxiety disorders
1 42 M Production Bronchitis
2 35 F Marketing Dysthymia
3 39 F Production Dysthymia
4 40 M Marketing Flu
# Yaş değişkeninin histogramını inceleyin
df_medical['age'].hist(bins=15)

# İkili verilere dönüştürerek genelleştirme uygulayın df_medical['age'] = df_medical['age'].apply(lambda x:">=40" if x>=40 else "<40" )# Sonuçlara bakın df_medical.head()
age gender department condition
0 <40 F Finance Bronchitis
1 >=40 M Production Bronquitis
2 <40 F Finance Dysthymia
3 <40 F Production Dysthymia
4 >=40 M Marketing Flu
# Yaş değişkeninin histogramını inceleyin
df_medical['age'].hist(bins=15)

# Etkilenen satırları filtreleyin
df_medical[df_medical['age'] >= 55]
age gender department condition
26 56 F Production Flu
65 55 M Finance Dysthymia
126 59 F Production Anxiety disorders
139 58 F Finance Dysthymia
142 59 M Marketing Flu
145 57 M Marketing Anxiety disorders
# Yaşı 55'e üstten kodlayın df_medical.loc[df_medical['age'] > 55, 'age'] = 55# Etkilenen satırları filtreleyin df_medical[df_medical['age'] >= 55]
age gender department condition
26 55 F Production Flu
65 55 M Finance Dysthymia
126 55 F Production Anxiety disorders
139 55 F Finance Dysthymia
142 55 M Marketing Flu
145 55 M Marketing Anxiety disorders
# Yaş değişkeninin histogramını inceleyin
df_medical['age'].hist(bins=15)

# Yaşı 25'e alttan kodlayın df_medical.loc[df['age'] < 25, 'age'] = 25# Yaş değişkeninin histogramını inceleyin df_medical['age'].hist(bins=15)

K-anonimlik gibi bir Gizlilik Modeli ile Bastırma ve Maskeleme ile birlikte kullanıldığında daha etkilidir.
Açıklama riskini kontrol altında tutmak için veri kümesinin sağlaması gereken koşulları belirtir.
Bu gizlilik modelini bir sonraki bölümde uygulamayı öğreneceğiz!
Python ile Veri Gizliliği ve Anonimleştirme