본문 바로가기
카테고리 없음

머신러닝을 위한 데이터 전처리 기법

by 인포 오너 2024. 7. 22.

데이터

서론

머신러닝 모델의 성능은 주어진 데이터에 크게 의존합니다. 데이터가 정제되지 않고 노이즈가 많다면, 아무리 우수한 알고리즘이라도 좋은 결과를 내기 어렵습니다. 따라서, 데이터 전처리는 머신러닝 과정에서 중요한 단계 중 하나입니다. 이 글에서는 머신러닝을 위한 다양한 데이터 전처리 기법을 소개하고, 각 기법이 모델의 성능에 어떤 영향을 미치는지 알아보겠습니다.

데이터 전처리의 중요성

데이터 전처리는 원시 데이터를 분석 가능한 상태로 변환하는 과정입니다. 이 단계에서는 결측치 처리, 이상치 제거, 데이터 정규화, 데이터 변환 등의 작업이 포함됩니다. 올바른 데이터 전처리는 모델의 정확도를 높이고, 일반화 능력을 향상시키는 데 중요한 역할을 합니다.

데이터 전처리의 주요 기법

1. 결측치 처리

1.1 결측치의 원인과 종류

데이터 수집 과정에서 결측치가 발생하는 이유는 다양합니다. 센서의 오작동, 응답자의 누락, 데이터 전송 오류 등이 그 예입니다. 결측치는 크게 완전히 무작위(MCAR), 무작위(MAR), 무작위 아님(NMAR)으로 분류됩니다.


1.2
결측치 처리 방법

  • 삭제법: 결측치가 있는 행 또는 열을 삭제하는 방법입니다. 결측치가 적을 때 유용하지만, 데이터 손실이 클 수 있습니다.
  • 대체법: 평균, 중앙값, 최빈값 등으로 결측치를 대체하는 방법입니다. 보다 정교한 방법으로는 K-최근접 이웃(KNN)이나 회귀분석을 사용한 대체가 있습니다.
  • 예측 모델 사용: 결측치를 예측하는 모델을 만들어 대체하는 방법입니다. 예를 들어, 회귀 모델을 사용하여 결측값을 예측할 수 있습니다.

2. 이상치 처리

2.1 이상치의 정의


이상치는 다른 데이터와 현저히 다른 값으로
, 모델의 학습에 악영향을 미칠 수 있습니다. 이상치는 측정 오류, 데이터 입력 오류 또는 실제 이상 값일 수 있습니다.


2.2
이상치 탐지 방법

통계적 방법: 평균과 표준편차를 사용하여 이상치를 탐지합니다. 일반적으로 평균에서 3 표준편차 이상 떨어진 값을 이상치로 간주합니다.

  • IQR(사분위 범위) 방법: 데이터의 1사분위수(Q1)와 3사분위수(Q3)를 사용하여 이상치를 탐지합니다. Q1 - 1.5IQR 이하 또는 Q3 + 1.5IQR 이상의 값을 이상치로 간주합니다.
  • 머신러닝 기반 방법: 이상치 탐지 알고리즘인 LOF(Local Outlier Factor)나 Isolation Forest 등을 사용합니다.

3. 데이터 정규화

3.1 정규화의 필요성


특정 머신러닝 알고리즘은 데이터의 범위나 스케일에 민감합니다
. 정규화를 통해 모든 특성 값을 동일한 스케일로 변환함으로써 모델의 성능을 향상시킬 수 있습니다.


3.2
정규화 기법

  • Min-Max 정규화: 데이터 값을 0과 1 사이로 변환합니다. Xscaled=X−Xmin⁡Xmax⁡−Xmin⁡X_{\text{scaled}} = \frac{X - X_{\min}}{X_{\max} - X_{\min}}Xscaled​=Xmax​−Xmin​X−Xmin​​
  • Z-스코어 정규화: 데이터 값을 평균이 0, 표준편차가 1인 값으로 변환합니다. Xscaled=X−μσX_{\text{scaled}} = \frac{X - \mu}{\sigma}Xscaled​=σX−μ​
  • 로버스트 정규화: 중위수와 사분위수를 사용하여 정규화합니다. 이상치의 영향을 줄이기 위해 사용됩니다.

4. 데이터 변환

4.1 로그 변환

데이터의 분포가 비대칭인 경우, 로그 변환을 통해 분포를 정규 분포에 가깝게 변환할 수 있습니다. 이는 특히 회귀 분석에서 유용합니다.


4.2 Box-Cox
변환

로그 변환보다 더 일반적인 방법으로, 데이터의 정규성을 높이기 위해 사용됩니다. λ\lambdaλ 값을 최적화하여 변환을 수행합니다.

5. 범주형 데이터 처리

5.1 레이블 인코딩

범주형 변수를 숫자로 변환합니다. 예를 들어, '사과', '바나나', '체리'를 각각 0, 1, 2로 변환합니다. 하지만, 레이블 인코딩은 값의 순서가 의미를 가질 때만 사용해야 합니다.


5.2
-핫 인코딩

범주형 변수를 이진 벡터로 변환합니다. 예를 들어, '사과', '바나나', '체리'는 각각 [1, 0, 0], [0, 1, 0], [0, 0, 1]로 변환됩니다. 이는 값의 순서가 중요하지 않을 때 사용됩니다.

6. 피처 스케일링

6.1 표준화

표준화는 평균을 0, 표준편차를 1로 변환하여 데이터를 정규화하는 방법입니다. 이는 데이터의 분포가 정규 분포를 따르도록 만듭니다.


6.2
정규화

정규화는 데이터의 각 행을 벡터로 간주하여 L2 노름을 1로 만드는 방법입니다. 이는 데이터가 일정한 크기를 가지도록 만듭니다.

결론

데이터 전처리는 머신러닝의 성능을 극대화하기 위한 필수 단계입니다. 결측치 처리, 이상치 제거, 데이터 정규화, 데이터 변환 등의 전처리 기법을 통해 데이터의 품질을 높이고, 모델의 정확도와 일반화 능력을 향상시킬 수 있습니다. 올바른 데이터 전처리를 통해 보다 정확하고 신뢰성 있는 머신러닝 모델을 구축할 수 있을 것입니다. 이번 글에서는 머신러닝을 위한 데이터 전처리 기법에 대해서 알아봤습니다. 다음 글에서는 AI의 사회적 영향과 대책에 대해서 알아보겠습니다.