- 범주형 데이터가 많으면 튜닝을 아무리 해도 모델 성능이 떨어질 수 있음. (수치형 데이터는 많아도 무관)
- 임상실험 데이터셋은 한 feature 안에 여러 값이 들어있을 수 있음. >> 어떻게 전처리를 해야할까.. 고민
1. 데이터 탐색 및 문제 진단
2. 중복된 데이터 제거 >> data leakage(성능 향상을 위해)
3. 결측치 처리(missing value): null, NaN, Na, '', '-', ...
4. 스케일 조정 : column 마다 스케일 차이가 클 때(모델 종류에 따라 스케일링을 해야 함)
SVM : 스케일링 필요 / 트리계열 모델 : 안해도 됨 / 딥러닝은 스케일링 해야 함
5. 범주형 인코딩
6. 이상치 처리
7. 분포 변환 : 정규분포 형태로~
- 결측치 처리
- 삭제 : 결측치를 포함한 열 또는 행을 삭제 > 가장 심플한 방법이지만 정보 손실이 있을 수 있음 (어떤 feature의 값이 50%가 결측치면 삭제하는 것이 모델 성능향상에 도움이 됨)
- 대치(Imputation)
- 스케일링
- MinMaxScaler : 최소값과 최대값을 구한 뒤 그 사이값으로 변환
- 표준화 : 정규분포 중에서 평균이 0 이고, 표준편차가 1인 분포를 표준 정규분포라고 하는데, 데이터의 feature들을 평균이 0, 표준편차가 1이 되도록 변환해주는 것
- 범주형 데이터 인코딩
- 레이블 인코딩 : target이 문자열(범주형)로 표현되어 있을 때, 수치형으로 변환해주는 것. (Label Encoder)
- 원-핫 인코딩(One-Hot Encoding) : 일반 feature가 범주형일 때, 숫자형으로 변환해주는 것. (모델 예측에 필요할 것으로 보이는 범주형 feature를 숫자형으로 변환) >> 범주 개수만큼 새로운 변수(열)을 생성하고, 해당 범주에만 1을 표시
- 이상치 처리
- IQR 방식(lower bound, upper bound) > 통계적 방법으로, 특정 feature의 경우엔 도메인 지식도 함께 확인해야 함.
- 비지도 학습으로 이상치 탐지 : IsolationForest
- 데이터 분포 변화 : 로그 변환