데이터 전처리
머신러닝 과정 이해하기
- 데이터 수집
크롤링 또는 DB 데이터를 통하여 데이터 수집 - 데이터 분석 및 전 처리
수집한 데이터를 분석하고 머신러닝에 사용할 형태로 전처리 - 머신러닝 학습
머신러닝 모델을 사용하여 데이터를 학습 - 머신러닝 평가
학습된 머신러닝 모델을 평가용 데이터를 사용하여 평가
데이터 전 처리의 역할
- 머신러닝의 입력 형태로 데이터 변환 ( 특성 엔지니어링)
- 결측값 및 이상치를 처리 하여 데이터 정제.
- 학습용 및 평가용 데이터 분리.
왜 데이터 전 처리가 필요할까? - 데이터 변환
대부분의 머신러닝 모델은 숫자 데이터를 입력 받는다.
일반적으로 행렬 형태 입력. but 실제 데이터는 머신러닝 모델이 이해할 수 없는 형태로 되어있다. ( 이미지, 자연어, 시계열, 범주형 등 )
따라서 전 처리를 통하여 머신러닝 모델이 이해할 수 있는 수치형 자료로 변환이 필요하다.
왜 데이터 전 처리가 필요할까? - 데이터 정제
전 처리를 통하여 데이터의 결측값(측정이 안된 값 = NaN) 및 이상치(잘못된 값)를 처리
왜 데이터 전 처리가 필요할까? - 데이터 분리
전 처리를 통하여 학습용과 평가용 데이터를 분리.
범주형 자료 전처리
범주형 데이터 : 몇 개의 범주로 나누어진 자료, Index 형태의 값( ID, Ticket No 등)
범주형 자료 파악 -> 명목형 자료, 순서형 자료로 구분. ( 크기가 의미가 있는가 여부로 판단 )
대표적인 범주형 자료 변환방식
- 명목형 자료
- 수치 맵핑 방식
예) 남자 -> 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) 정규화 (Normalization)
모든 값을 0 ~ 1 로 변환해줌.
X` = ( X-Xmin )/(Xmax - Xmin)
2) 표준화 ( Standardization )
변수 X 를 표준화한 값 X`. 표준 정기 분포로 변환.
평균을 빼고 분산으로 나눈 값.
- 범주화
변수의 값보다 범주가 중요한 경우 사용
예시) 시험 점수 데이터를 가지고 점수 예측을 하는 것이 아니라 평균보다 높고 낮음을 구할 때.
평균 기준으로 이상이면 -> 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 |
|---|