01 머신러닝을 위한 데이터 전처리 이해하기
- 머신러닝 과정 이해하기

- 데이터 전 처리의 역할
- 머신러닝의 입력 형태로 데이터 변환 ( 특성 엔지니어링 )
- 결측값 및 이상치를 처리하여 데이터 정제
- 학습용 및 평가용 데이터 분리
- 데이터 전 처리가 왜 필요할까? - 데이터 변환

- 대부분의 머신러닝 모델은 숫자 데이터를 입력 받는다.

- 실제 데이터는 머신러닝 모델이 이해할 수 없는 다양한 형태로 존재한다.

- 전 처리를 통하여 머신러닝 모델이 이해할 수 있는 수치형 자료로 변환이 필요하다.
- 데이터 전 처리가 왜 필요할까? - 데이터 정제

- 전 처리를 통하여 데이터의 결측값 및 이상치를 처리한다.
- 데이터 전 처리가 왜 필요할까? - 데이터 분리

- 원본 데이터 전체를 학습용 데이터로 사용하게 되면 평가에서 학습용 데이터만을 기준으로 평가가 되기 때문에 신뢰성이 좋지 못한 평가를 할 수 있어서 객관성을 위해 원본 데이터를 학습용 데이터와 평가용 데이터로 분리해서 사용한다.
02 범주형 자료 전 처리
- 타이타닉 생존자 데이터 - 범주형 자료 전 처리 예제

- 범주형 자료 살펴 보기 : 범주형 데이터는 몇 개의 범주로 나누어진 자료

- PassengerId, Suvived, Pclass, Name, Sex, Ticket, Cabin, Embraked가 범주형 자료이다.
- Age, SibSp, Parch, Fare는 수치형 자료이다.
- 범주형 자료는 크기에 의미가 없다면 명목형 자료이고, 크기가 의미 있다면 순서형 자료로 나뉜다.
- 위 표에서 명목형 자료는 PassengerId, Suvived, Name, Sex, Ticket, Cabin, Embraked이다.
- 위 표에서 순서형 자료는 Pclass이다. 객실 등급은 숫자에 따라 등급이 의미 있기 때문이다.
- 대표적인 범주형 자료 변환 방식
명목형 자료 :
1) 수치 맵핑 방식
- 일반적으로 범주를 0, 1로 맵핑한다.
- (1, 1), (0, 100) 등 다양한 케이스가 있지만 모델에 따라 성능이 달라질 수 있다.


- 변수가 3개 이상인 경우, 수치의 크기 간격을 같게 하여 수치 맵핑 한다. ex) 0, 1, 2, 3, ....
2) 더미 ( Dummy ) 기법
- 더미 기법을 사용하여 각 범주를 0 또는 1로 변환한다.

- 각 변수에 대해 범주를 모두 만들어 해당하는 범주만 1로 표현한다.
순서형 자료 :
1) 수치 맵핑 방식
- 수치에 맵핑하여 변환하지만, 수치 간 크기 차이는 커스텀이 가능하다.
- 크기 차이가 머신러닝 결과에 영향을 끼칠 수 있다.

03 수치형 자료 전 처리
- 타이타닉 생존자 데이터 - 수치형 자료 전 처리 예제

- 수치형 자료는 크기를 갖는 수치형 값으로 이루어진 데이터들을 의미한다.
- 수치형 자료는 머신러닝의 입력으로 바로 사용할 수 있으나, 모델의 성능 향상을 위해 데이터 변환이 필요하다.
- 대표적인 수치형 자료 변환 방식
스케일링 : 변수의 값의 범위 및 크기를 변환하는 방식으로 변수 간의 범위가 차이가 나면 사용한다.
1) 정규화 ( Normalization )

- 정규화된 값 X' 는 0 ~ 1까지의 범위를 갖게 된다.

- 정규화를 적용한 데이터 예시
2) 표준화 ( Standardization )


- 표준화를 적용한 데이터 예시
범주화 : 변수의 값보다 범주가 중요한 경우에 사용한다.

04 데이터 정제 및 분리하기
- 결측값 ( Missing Data ) 처리하기
- 일반적인 머신러닝 모델의 입력 값으로 결측값을 사용할 수 없다.
- 따라서 Null, None, NaN 등의 결측값을 처리해야 한다.
- 대표적인 결측값 처리 방식
- 결측값이 존재하는 샘플 삭제
- 결측값이 많이 존재하는 변수 삭제
- 결측값을 다른 값으로 대체 ( 평균, 머신러닝으로 예측 값 등으로 대체 )
- 이상치 ( Outlier ) 처리하기
- 이상치가 있으면, 모델의 성능을 저하할 수 있다.
- 이상치는 일반적으로 전 처리 과정에서 제거하며, 어떤 값이 이상치 인지 판단하는 기준이 중요하다.
- 대표적인 이상치 판단 기준 방법
- 통계 지표 (카이제곱 검정, IQR 지표 등)을 사용하여 판단
- 데이터 분포를 보고 직접 판단
- 머신러닝 기법을 사용하여 이상치 분류
- 데이터 분리는 왜 필요할까?
- 머신러닝 모델을 평가하기 위해서는 학습에 사용하지 않은 평가용 데이터가 필요하다.

- 대략 7 : 3, 8 : 2 비율로 학습용 평가용 데이터를 분리한다.
- 지도학습 데이터 분리
- 지도학습의 경우 feature 데이터와 label 데이터를 분리하여 저장한다.
Feature 데이터 : Label을 예측하기 위한 입력 값
Label 데이터 : 예측해야 할 대상이 되는 데이터를 의미한다.


- 타이타닉 데이터를 바탕으로 생존자를 예측한다면 Survived는 Label 데이터가 되고, 나머지는 Feature데이터가 된다.
'2022 AI SW 온라인 교육 > AI 데이터 분석 트랙' 카테고리의 다른 글
[AI 데이터 분석] 머신러닝 시작하기 - 04. 지도학습 - 분류 (0) | 2022.12.15 |
---|---|
[AI 데이터 분석] 머신러닝 시작하기 - 03. 지도학습 - 회귀 (0) | 2022.12.15 |
[AI 데이터 분석] 머신러닝 시작하기 - 01. 자료 형태의 이해 (0) | 2022.12.15 |
[AI 데이터 분석] 머신러닝 시작하기 - 00. 인공지능/머신러닝 개론 (0) | 2022.12.15 |
[AI 데이터 분석] 데이터 분석을 위한 라이브러리 - 04. Matplotlib 데이터 시각화 (2) | 2022.12.15 |