본문 바로가기

인공지능

[머신러닝 지도학습] 데이터 전처리

데이터 전처리

머신러닝 과정 이해하기

  1. 데이터 수집
    크롤링 또는 DB 데이터를 통하여 데이터 수집
  2. 데이터 분석 및 전 처리
    수집한 데이터를 분석하고 머신러닝에 사용할 형태로 전처리
  3. 머신러닝 학습
    머신러닝 모델을 사용하여 데이터를 학습
  4. 머신러닝 평가
    학습된 머신러닝 모델을 평가용 데이터를 사용하여 평가

데이터 전 처리의 역할

  1. 머신러닝의 입력 형태로 데이터 변환 ( 특성 엔지니어링)
  2. 결측값 및 이상치를 처리 하여 데이터 정제.
  3. 학습용 및 평가용 데이터 분리.

왜 데이터 전 처리가 필요할까? - 데이터 변환

대부분의 머신러닝 모델은 숫자 데이터를 입력 받는다.
일반적으로 행렬 형태 입력. but 실제 데이터는 머신러닝 모델이 이해할 수 없는 형태로 되어있다. ( 이미지, 자연어, 시계열, 범주형 등 )
따라서 전 처리를 통하여 머신러닝 모델이 이해할 수 있는 수치형 자료로 변환이 필요하다.

왜 데이터 전 처리가 필요할까? - 데이터 정제

전 처리를 통하여 데이터의 결측값(측정이 안된 값 = NaN) 및 이상치(잘못된 값)를 처리

왜 데이터 전 처리가 필요할까? - 데이터 분리

전 처리를 통하여 학습용과 평가용 데이터를 분리.

범주형 자료 전처리

범주형 데이터 : 몇 개의 범주로 나누어진 자료, Index 형태의 값( ID, Ticket No 등)

범주형 자료 파악 -> 명목형 자료, 순서형 자료로 구분. ( 크기가 의미가 있는가 여부로 판단 )

대표적인 범주형 자료 변환방식

  1. 명목형 자료
  • 수치 맵핑 방식
    예) 남자 -> 0, 여자-> 1 로 변환.
    3개 이상인 경우, 수치의 크기 간격을 같게 하여 수치 맵핑 ex) 0, 1, 2, 3 ...
  • 더미(Dummy) 기법
    각 범주를 0 or 1 로 변환.
    예시) 성별을 남, 여 모두 구분하여 0, 1 로 표기
      sex_male sex_female
    남자 1 0
    여자 0 1

  2. 순서형 자료

  • 수치 맵핑 방식
    수치에 맵핑하여 변환하지만, 수치간 크기 차이는 커스텀 가능.
    크기 차이가 머신러닝 결과에 영향을 끼칠 수 있음.
    예) 없음-> 0, 조금 많음->4, 매우 많음-> 10 변환.

수치형 자료 전 처리

머신러닝의 입력으로 바로 사용할 수 있으나, 모델의 성능을 높이기 위해서 데이터 변환이 필요하다.

대표적인 수치형 자료 변환 방식

  1. 스케일링 - 정규화, 표준화
  • 변수 값이 범위 및 크기를 변환하는 방식
  • 변수 간의 범위가 차이가 나면 사용.
    1) 정규화 (Normalization)
    모든 값을 0 ~ 1 로 변환해줌.
    X` = ( X-Xmin )/(Xmax - Xmin)

      2) 표준화 ( Standardization )
      변수 X 를 표준화한 값 X`. 표준 정기 분포로 변환.
      평균을 빼고 분산으로 나눈 값.

  1. 범주화
    변수의 값보다 범주가 중요한 경우 사용
    예시) 시험 점수 데이터를 가지고 점수 예측을 하는 것이 아니라 평균보다 높고 낮음을 구할 때.
    평균 기준으로 이상이면 -> 1, 이하이면 -> 0 으로 변환 하여 처리.

 

데이터 정제 및 분리하기

결측값(Misssing data) 처리하기

일반적인 머신러닝 모델의 입력 값으로 결측값을 사용할 수 없음. 

따라서 Null, None, NaN 등의 결측값을 처리 해야함.

 

대표적인 결측 값 처리 방식

1) 결측값이 존재하는 샘플 삭제

2) 결측값이 많이 존재하는 변수 삭제

3) 결측값을 다른 값으로 대체

  - 평균값, 중앙값, 머신러닝 예측 등의 값으로 대체.

 

이상치(Outlier) 처리하기

이상치가 있으면, 모델의 성능을 저하 할 수 있음

이상치는 일반적으로 전 처리 과정에서 제거하며, 

어떤 값이 이상치 인지 판단하는 기준이 중요함

 

이상치 판단기준 방법

1) 통계 지표(카이제곱 검정, IQR 지표 등) 를 사용하여 판단.

2) 데이터 분포를 보고 직접 판단

3) 머신러닝 기법을 사용하여 이상치 분류

 

데이터 분리는 왜 필요할까?

머신러닝 모델을 평가하기 위해서는 학습에 사용하지 않은 평가용 데이터가 필요

약 7:3 ~ 8:2 비율로 학습용 평가용 데이터를 분리함.

(평가용 데이터가 충분히 있어야 성능이 좋아진다. )

 

지도학습 데이터 분리

지도학습의 경우 feature 데이터와 label 데이터를 분리하여 저장합니다. 

Feature 데이터 : label을 예측하기 위한 입력값
Label 데이터    : 예측해야 할 대상이 되는 데이터

예시) 공부시간대비 성적을 알고 싶다면 공부시간은 Feature 데이터, 성적은 Label 데이터

 

 

'인공지능' 카테고리의 다른 글

[머신러닝 지도학습] 자료 형태의 이해  (0) 2021.11.18