Python으로 배우는 데이터 프라이버시와 익명화
Rebeca Gonzalez
Instructor
# 데이터셋 확인
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
데이터에 가장 적합한 연속 분포를 찾습니다.

import scipy.stats# 연속 변수 Age에 genlogistic 분포 적합 params = scipy.stats.genlogistic.fit(hr['Age'])# 연속 함수의 매개변수 확인 print(params)
(4.9899067653418285, 22.32808853181744, 7.046590524738551)
# 일반 로지스틱 분포에서 샘플링 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
# 반올림하여 이산값으로 변환
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으로 배우는 데이터 프라이버시와 익명화