데이터를 가져다 쓰기 전에 지저분한 데이터를 Cleaning하고, 밸런싱 해주는 과정이 필요하다.
Data Filtering, Handling Outliers, Handling Mssing Data, Balancing Data를 해줘야 한다.
- 데이터 필터링 (Data Filtering): 더럽고, 복잡하거나 거친 데이터셋을 처리하는 과정
- 컬럼 단위 필터링 (Column-wise Filtration)
- 행 단위 필터링 (Row-wise Filtration)
- 특정 Condition을 만족하는 얘만 가져올 수 있다.
Outlier들을 알아서 빼줄 수 있는 방법을 봐보자.
- 이상치 처리 (Handling Outliers): 단변량 및 다변량 이상치 탐지
- 단변량의 경우, 사분위수 범위(IQR) 또는 Z-점수를 사용
- 다변량의 경우, 산점도나 클러스터링, 회귀 등을 활용한 고급 방법
데이터에서 빠져 있는 값들을 삭제하는 건 단점이 크다. Imputation을 해보자.
- 결측치 처리 (Handling Missing Data): 데이터에서 빠져 있는 값들
- 결측값을 삭제하는 대신, 대체(임퓨테이션)가 또 다른 옵션
- 단순 대체 (평균, 중앙값, 최빈값)
- k-NN Imputation
- 모델 기반 방법
- 결측값을 삭제하는 대신, 대체(임퓨테이션)가 또 다른 옵션
not uniform한 클래스 분포(ex. 환자 클래스)에서 데이터 균형을 맞춰줘야 한다.
- 데이터 균형 맞추기 (Balancing Data): 처음부터 균형이 맞지 않았던 데이터를 조정
- 언더샘플링(Undersampling) 및 오버샘플링(Oversampling)
- SMOTE(합성 소수 오버샘플링 기법) : 이미 존재하는 값들 근접 데이터 모아서
numerical value의 scale을 맞춰줘야 한다.
- 스케일링 (Scaling): 숫자형 컬럼을 공통 스케일로 변환
- 최대 절대값 스케일링 (Maximum Absolute Scaling)
- 최소-최대 스케일링 (Min-max Scaling)
- Z-점수 방법 (Z-score Method)
- 강건 스케일링 (Robust Scaling)
- mean과 interquartile range 사용
categorical attribute 또한 숫자로 바꿔줘야 한다.
- 인코딩 (Encoding): 범주형 컬럼을 숫자형으로 변환
- 원-핫 인코딩 (One Hot Encoding)
- 레이블 인코딩 (Label Encoding)
- 서열 인코딩 (Ordinal Encoding)
모든 변수가 모델링에 필요하지 않다. 불필요한 변수가 성능을 떨어트릴 수도 있고, overfitting 위험도 있다 -> Feature Selection이 필요하다.
- 속성 선택 (Attribute Selection): 속성 수를 줄이는 과정
- 모델을 간단하고 설명 가능하게 만듦
- 필터 기반 (Filter-based): 상관관계, 통계적 테스트 등
- 래퍼 기반 (Wrapper-based): 전진 탐색, 재귀적 제거 등
- 임베디드 방법 (Embedded): 모델 자체에서 중요도를 제공 (예: 트리 기반 모델)
⠀
'AI > Concepts' 카테고리의 다른 글
[AI/Concepts] 06. Uncertainty (0) | 2024.11.19 |
---|---|
[AI/Concepts] 05. Knowledge (0) | 2024.11.19 |
[AI/Concepts] Agent and Search (0) | 2024.10.18 |
[AI/Concepts] Data Analysis (0) | 2024.10.18 |
[AI/Concepts] Introductions of AI (0) | 2024.09.06 |