[머신러닝] 데이터 전 처리
2021. 12. 29. 15:47
1. 데이터 전 처리의 역할
- 머신러닝의 입력 형태인 수치형 자료로 데이터 변환 (특성 엔지니어링)
- 결측값 및 이상치를 처리하여 데이터 정제
- 학습용 및 평가용 데이터 분리
2. 범주형 자료 전 처리
2.1 명목형 자료 변환
1) 수치 맵핑 변환
- 일반적으로 범주 0, 1로 맵핑
- (-1, 1), (0,100) 등 다양한 케이스가 있지만 모델에 따라 성능이 달라질 수 있음
- 3개 이상인 경우 수치의 크기 간격을 같게 하여 수치 맵핑
2) 더미(Dummy) 기법
- 각 범주를 0 or 1로 변환
2.2 순서형 자료 변환
1) 수치 맵핑 변환
- 수치에 맵핑하여 변환하지만, 수치 간 크기 차이는 커스텀 가능
- 크기 차이가 머신러닝 결과에 영향을 끼칠 수 있음
3. 수치형 자료 전 처리
3.1 스케일링(Scailing)
- 변수 값의 범위 및 크기를 변환하는 방식
- 변수 간의 범위 차이가 클 경우 사용
1) 정규화 (Normalization)
- 데이터를 특정 구간으로 바꾸는 척도법 (ex. 0~1 or 0~100)
- 데이터 군 내에서 특정 데이터가 가지는 위치를 볼 때 사용
- 주기를 가지는 데이터의 경우 과거에 비해 현재 데이터의 위치가 어느정도 인지 파악하기 좋음
2) 표준화 (Standardization)
- 데이터를 0을 중심 양쪽으로 데이터를 분포시키는 방법
- 각 데이터들이 평균을 기준으로 얼마나 떨어져 있는지 볼 때 사용
- 변환된 데이터는 진폭의 감소로 각 데이터들의 간격이 감소
3.2 범주화
- 변수의 값보다 범주가 중요한 경우 사용
- 회귀 분석에서 분류 분석으로 문제를 변형하고 싶을 때 사용
- ex) 평균 이상 = 1, 평균 미만 = 0 으로 변환
4. 데이터 정제 및 분리
4.1 결측값 처리
- 일반적인 머신러닝 모델의 입력 값으로 결측값을 사용할 수 없으므로 결측값 처리 필요
- Null, None, NaN 등으로 표현
1) 결측값이 존재하는 샘플 삭제
2) 결측값이 많이 존재하는 변수 삭제
3) 결측값을 다른 값으로 대체
4.2 이상치 처리
- 이상치 존재시 모델의 성능 저하
- 이상치는 일반적으로 전 처리 과정에서 제거
- 이상치를 판단하는 기준이 중요
1) 통계 지표(카이제곱 검정, IQR 지표 등)을 사용하여 판단
2) 데이터 분포를 보고 직접 판단
3) 머신러닝 기법을 사용하여 이상치 분류
4.3 데이터 분리
- 머신러닝 모델의 평가를 위해 학습에 사용되지 않은 평가용 데이터가 필요하므로 데이터 분리
- 약 7:3 ~ 8:2 비율로 [학습용 데이터 : 평가용 데이터] 분리
- 지도학습의 경우 feature 데이터와 label 데이터를 분리하여 저장
* Feature 데이터 : label을 예측하기 위한 입력 값
* Label 데이터 : 예측해야 될 대상이 되는 데이터
'Python > 머신러닝' 카테고리의 다른 글
[머신러닝] 딥러닝 구현 - 텐서플로우 (0) | 2022.01.04 |
---|---|
[머신러닝] 분류 알고리즘 - 의사결정나무 (Decision Tree) & 혼동 행렬 (Confusion Matrix) (0) | 2022.01.02 |
[머신러닝] 단순 선형 회귀, 다중 선형 회귀 (0) | 2022.01.02 |
[머신러닝] 수치형 자료, 범주형 자료 (0) | 2021.12.27 |
[머신러닝] 지도학습, 비지도학습, 강화학습 (0) | 2021.12.25 |