본문 바로가기

Upstage AI Lab 2기

Upstage AI Lab 2기 [Day066] ML Advanced - CH01. 데이터 전처리

Upstage AI Lab 2기
2024년 3월 18일 (월) Day_066

 

ML Advanced

딥러닝 시대에서의 ML : 가장 기본이 되는 베이스, 면접에 ML 기초에 대한 질문이 많이 나옴

ML 파이프라인

데이터 수집 데이터 전처리 모델 선택 학습 및 평가 배포

 

 

CH01. 데이터 전처리

(데이터 수집 후, 모델 학습 전)

데이터 전처리의 중요성 : garbage in garbage out (안 좋은 데이터 -> 안 좋은 결과)

데이터 수집 데이터 전처리 모델 선택 학습 및 평가 배포

 

데이터 특성 이해 -> 수정 -> 품질 향상 (+ 모델마다 요구하는 입력의 특성이 다름)

예) 선형회귀 - 정규분포, KNN - 스케일링

  • 성능적 관점 : 편향 제거 -> 신뢰도↑ 안정성↑
    (선형회귀, 거리기반 알고리즘들은 결측치 및 이상치에 영향을 많이 받음)
  • 해석적 관점 : 중요 변수 및 패턴 찾기 용이 -> 모델 복잡도↓ 과적합 방지
    + 모델 해석 능력↑ -> 신뢰도↑ 안정성↑
  • 시각화 관점 : 데이터 시각화 용이

part1. 결측치/이상치/연속형변수/범주형변수 처리

part2. 파생변수 : 변수 자체 변환(연속형변수 처리) / 파생 변수 생성

part3. 변수 선택

 

행(row) = instance

열(column) = variable, feature


part1. 결측치/이상치/연속형변수/범주형변수 처리

1-1. 결측치(Missing Value)

결측치가 어떤 매커니즘으로 생기고, 어떤 패턴을 가지며, 어떤 방법으로 처리할 것인지.

- 누락된 관측치 -> 데이터 손실 및 분포 왜곡·편향 (row 단위일 수도, column 단위일 수도 있음)

- N/A(Not Available), NaN(Not a Number), Null, Empty, ? 등 표현방식 다양 -> 데이터 오픈해봐야 함 (정성적 분석 필요)

매커니즘 완전 무작위
무작위
비무작위
패턴 일변량
단조
일반
규칙
처리방식 삭제
대체

 

  • 결측치 매커니즘
    • 완전 무작위 (MCAR : Missing Completely At Random) : 관측치/결측치 모두 결측원인과 독립, 해당 변수와 무관
      예) 센서고장, 전산오류 등
    • 무작위 (MAR : Missing At Random) : 결측치가 해당 변수와는 무관 but 다른 변수와 연관
    • 비무작위 (MNAR : Missing Not At Random) : 해당 변수와 연관
      - 설문조사에서 많이 나타나는 종류의 결측, 예) 우울증 설문
  • 결측치 패턴
    • 일변량결측패턴 (Univariate Pattern) : 한 변수에 대해서만 결측 발생
    • 단조결측패턴 (Monotone Pattern) : 예) 피험자 사망 등으로 인한 특정 시점부터 이어지는 결측
    • 일반결측패턴 (General&Non-Monotone Pattern) : 다른 변수와의 관계, 비선형 결측 패턴
    • 규칙결측패턴 (Planned Pattern) : 일정 패턴/규칙에 따라 발생
  • 결측치 처리 방식
    • 삭제
      • 목록 삭제(행삭제, Listwise Deletion)
        - 변수가 너무 많으면 너무 많은 행을 삭제하게 될 수도 있음.
        - 결측 자체가 의미가 있는 경우도 있어서 조심해야 함.
      • 열삭제(Dropping Columns & Features) - 컬럼별 결측치 비율 확인 후 진행
      • 장점 편리
        단점 결측치에 패턴이 있는 경우 오히려 편향 유발
        샘플 수 ↓
        ∴ 결측치의 원인부터 파악!!
        note. 결측치에 패턴이 있는 경우 - 결측치 유무 or 관계에 대한 새로운 변수 생성 
    • 대체(Imputation)
      • 통계값 대체(평균, 최빈, 중앙)
        • 장점 샘플 크기 유지
          단점 변수간 상관관계↓ or bias↑
      • 회귀 대체 - regression, KNN 등의 방법으로 결측치 예측
        • 장점 많은 데이터 활용
          삭제나 통계값 대체보다 편향이 적게 생김
          단점 별도의 예측 모델 생성 필요
          but! 그럼에도 성능면에서 의미가 있음
          note. 데이터가 너무 크면 어려울 수 있음, 성능이 너무 중요하면 그럼에도 하는 것이 의미 있을 수 있음

1-2. 이상치

변수의 분포상 비정상적으로 극단적이며, 일반적인 데이터 패턴을 벗어나는 관측치.

통계값을 왜곡시키고 분석 및 해석에 악영향

이상치 제거 -> 모델 안정성 ↑

결측치와 마찬가지로 중요한 정보를 내포할 수도 있기 때문에 도메인 지식 등에 기반하여 이상치의 원인 분석 필요

종류 점 이상치
상황적 이상치
집단적 이상치
탐지 Z-score
IQR
처리방식

삭제
대체
변환

 

  • 이상치의 종류
    • 점 이상치 (Point, Global Outlier) : 대부분 관측치와 동떨어진 형태의 이상치. 탐지 쉬움.
    • 상황적 이상치 (Contextual Outlier) : (주로 시계열 데이터에서) 상황에 따라 이상치로 판단되는 데이터.
    • 집단적 이상치 (Collective Outlier)
      - 강의의 예시만으로는 집단적 이상치를 어떻게 탐지할 수 있는지 감이 안 옴
  • 이상치 탐지
    • Z-score : Z = (x - μ) / σ
      단점
      - 데이터가 정규분포를 따르지 않을 경우 효과적이지 않음
      - μ, σ 모두 이상치에 민감한 통계값
    • IQR
      장점 : 직관적, 이상치에 강건
      단점 : 왜도가 심하거나 정규분포를 따르지 않을 경우 제대로 작동하지 않을 가능성
  • 이상치 처리
    • 삭제
    • 대체 - 통계값, Upper/Lower Boundary, 회귀 or KNN 등의 모델로 예측 및 대체
    • 변환 - 이상치 완화 (예. log 변환 등)

결론 : 결측치/이상치의 원인부터 파악!!

 

 

1-3 연속형변수 처리

input 조건을 맞춰주기 위함 (예. 선형회귀 - 정규성, KNN - scaling)

함수 변환 로그 변환
제곱근 변환
거듭제곱 변환
Box-Cox 변환
스케일링 정규화 (Normalization, Min-Max Scaling)
표준화 (Standardization)
Robust Scaling
구간화
  • 함수변환
    • 로그 변환 / 제곱근 변환 : right-skewed 비대칭 분포 ---(to)---> 정규분포에 가깝게 변환
      비대칭이 심한 경우 로그변환, 약한 경우 제곱근 변환
      장점 - 선형회귀에 필요한 가정인 정규성 확보, 데이터 간 편차 ↓
      but left-skewed일 경우 비대칭이 더 심해짐
      ∴ 변환 전 반드시 분포 확인
      https://medium.com/geekculture/what-are-right-skewed-and-left-skewed-distributions-a29b3def7598
    • 거듭제곱 변환
    • Box-Cox 변환 - 파라미터 λ 값으로 다양한 transformation 조절 가능
      (λ = 0 로그변환, λ = 1/2 제곱근 변환, λ = 2 거듭제곱 변환)
      출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기
  • 스케일링 : 동일한 혹은 유사한 수치 범위로 변경 (특히 거리기반 알고리즘에서 필수)
    • 정규화(Normalization 中 Min-max Scaling) : 수치 범위를 [0, 1] 로 통일
      출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기
    • 표준화(Standardization) : μ=0, σ=1
      거리기반 알고리즘에서 장점
      출처 : Upstage Lab 2기 강의자료 [ML Advanced] (1-2) 카테고리와 기타 변수 다루기
    • Robust Scaling : IQR 기준 ((x-xmed) / Q3 - Q1), 이상치에 강건
  • 구간화 (binning, bucketing) : 수치형 to 범주형 - 모델복잡도↓ (∵ 변수의 cardinality ↓) & 해석 용이
    • 등간격
    • 등빈도 - 이상치의 영향을 완화

 

1-4 범주형변수 처리

string 인식 x -> 수치형으로 encoding 필요

  장점 단점
원핫 binary 벡터로 변환 의미 파악 용이 - num of elements ↑ 희소벡터 차원 ↑
→ 메모리&연산에 악영향 + 차원의 저주
(벡터 크기 = feature의 num of elements)
(그래서 강사님은 잘 쓰지 않는다고....)
레이블 각 범주를 정수로 표현 - ordinal category에 효율적
- 하나의 feature로 표현 → 메모리 효율성
명목형을 ordinal로 인식할 가능성
빈도
frequency로 표현
(= count encoding)
- 수치적 의미부여
- 하나의 feature로 표현 → 메모리 효율성
다른 범주를 같은 값으로 인식
(보완 방법 : feat1 - label, feat2 - frequency)
미래 시점 정보의 반영
(보완 방법 : 과거 등장 빈도로 인코딩)
타겟 타겟 변수를 통계량으로 표현
(= mean encoding)
범주형 to 연속형
- 범주형 변수와 타겟의 관련성 파악 용이
- 범주간 관계 반영
mean을 사용 → 이상치에 민감
data leakage!!
미래정보 반영 → 과적합

(매우 위험한 인코딩 방법)
(보완방법 :
① smoothing(w. noise)
② K-fold(예. fold1은 fold 2~4로 target encoding etc.) 
③ 과거 정보만으로 target encoding)

 


참고자료

https://dacon.io/competitions/official/236216/overview/description

 

https://stanford.edu/~shervine/teaching/cs-229/cheatsheet-deep-learning

 

CS 229 - Deep Learning Cheatsheet

Want more content like this? Subscribe here to be notified of new releases! CS 229 - Machine Learning العربية English Español فارسی Français 한국어 Português Türkçe Tiếng Việt 简中 繁中  Supervised Learning Unsupervised Learn

stanford.edu

 

 

 

https://eda-ai-lab.tistory.com/625

 

[Machine Learning Advanced] 2강. 머신러닝 강의 - 데이터 전처리 (이상치)

이전 강의인 [Machine Learning Advanced] 2강. 머신러닝 강의 - 데이터 전처리 (결측치)에 이어서 이상치에 대해서 살펴보도록 하겠습니다. 이상치란 무엇일까요? 이상치(outlier)는 일반적인 데이터 패턴

eda-ai-lab.tistory.com