AI/Concepts

[AI/Concepts] Data Processing

lumana 2024. 10. 18. 22:36

데이터를 가져다 쓰기 전에 지저분한 데이터를 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