4장 데이터 전처리 (1)

TaeJong Kim·2024년 1월 9일

머신러닝 교과서

목록 보기
5/10

4.1 누락된 데이터 다루기

누락된 데이터를 다루는 방법

  1. 누락 데이터 삭제 -> 해당 row나 column을 삭제
  2. 보간법을 사용하여 누락값 대체
    • 평균(혹은 중앙값, 최빈값 등)으로 대체 가능

중요한 점은 훈련 세트와 테스트 세트의 변환 방법을 동일하게 가져가야 한다는 점이다.

4.2 범주형 데이터 다루기

범주형 데이터란?

연속형이 아닌 A, B, C와 같이 범주로 묶여있는 데이터를 말한다.
이 때, 순서가 있는 범주형과 순서가 없는 범주형을 구분.

성적은 A>B>C>D와 같은 관계가 성립하지만 색과 같은 red, blue, green과 같은 범주는 상하관계가 아닌 동등한 관계이다. 둘은 모두 범주형 데이터로 묶인다.

One-Hot Encoding

범주형 feature는 서뢔의 크기를 비교하기 어렵다.
하지만 컴퓨터는 숫자만 이해할 수 있다.
예를들어 색을 표현하는 feature를 숫자로 표현해보자.

redgreenblue
100
010
001

이런식으로 각 row가 해당하는 색에만 1을 표시하는 방법을 one hot encoding이라고 한다.

하지만 색이 아닌 성적 데이터와 같이 순서가 있는 데이터는 어떻게 처리할까?
A=4, B=3 와 같이 숫자로 치환이 가능하다면 원-핫 인코딩을 할 필요가 없을 수 있다.
하지만 정확하게 비례관계를 알기 어려운 경우도 있다.

A>=xB>=xC>=xD>=x
1000
1100
1110

그런경우 이런식으로 원핫인코딩을 할 수 있다. A 보다 작은, B보다 작은 과 같은 컬럼을 만드는 것이다.
만약 A를 표현하고 싶다면 A>=x 만 1을 표시한다. B를 표시하고 싶다면 A>=x와 B>=x 둘 다 1을 표시한다. 이런식으로 하면 정확한 비례관례를 알 수 없는 순서가 있는 범주형 데이터를 효괍적으로 표현할 수 있다.

4.4특성 스케일 맞추기

4.4장에서는 다양한 scaler, normalizer 를 살펴 보겠다.

min-max scaling

xnorm(i)=x(i)xminxmaxxminx_{norm}^{(i)}=\frac{x^{(i)}-x_{min}}{x_{max}-x_{min}}

  • 정해진 범위 값이 필요할 때
  • KNN 모델을 사용할 때 유용하다. 왜냐하면 KNN모델은 이웃간의 거리를 측정하는데 각 컬럼의 스케일이 다르면 스케일이 큰 컬럼의 거리가 왜곡되어 표현되기 때문이다.
  • 이상치가 있으면 다른 값들이 너무 촘촘해질 수 있다. 즉, 이상치에 오염가능성이 높다.

standardization

xstd(i)=x(i)μxσxx_{std}^{(i)}=\frac{x^{(i)}-\mu_{x}}{\sigma_{x}}

고등학교때 배웠던 z-score다.
살짝 해석을 해보자면 각각의 x값이 평균으로 부터 얼마나 떨어져 있는지는 표현하는 식이다. 이때 얼마나 떨어져 있는가를 표현하는 단위를 표준편차로 하는 것이다.

  • 이상치 정보가 유지 -> min-max scaler에 비해 이상치에 덜 민감
  • 가중치 학습을 더 쉽게 한다.

RobustScaler

xrobust(i)=x(i)q2q3q1x_{robust}^{(i)}=\frac{x^{(i)}-q_{2}}{q_{3}-q_{1}}

  • 이상치가 많은 데이터셋에 도움된다.

MaxAbsScaler

xmaxabs(i)=x(i)xmaxx_{maxabs}^{(i)}=\frac{x^{(i)}}{|x|_{max}}

특성별로 데이터를 절댓값이 가장 큰 값으로 나눈다. (물론 절댓값으로 나눈다.)
때문에 특성의 최대값은 1이 되며 범위는 [-1,1]이 된다.

profile
AI 엔지니어 김태종입니다. 추천시스템, 이상탐지, LLM에 관심이 있습니다. 블로그에는 공부한 기술, 논문 혹은 개인적인 경험을 올리고 있습니다.

0개의 댓글