데이터 전처리(레이블 인코딩, 원핫 인코딩)와 스케일링(일반적으로 표준화, 정규화)

2023. 6. 28. 09:43python

반응형

인프런의 권철민 강사님 동영상을 참고 중이다.

 

전처리(Preprocessing)를 잘해야 한다. 이상치나 결측치가 있을 수도 있고, 인코딩 값이 다를 수도 있기 때문이다.

 

그리고 애초에 머신러닝에서는 문자열을 허용하지 않기 때문에 숫자값으로 바꿔야 한다.

 

레이블 인코딩 : 문자열로 되어 있는 것을 숫자열로 바꿔주는 것이다. 상품 이름을 상품 넘버로 , 사람 이름을 번호로 바꾸는 작업이다.

레이블 인코딩은 LableEncoder 클래스와 fit(), transform()을 이용한다.

 

근데 이렇게 바꾸다 보면 특정 알고리즘에는 영향을 받을 수 있다.

 

One-Hot 인코딩(원핫 인코딩 벡터) : 특정 분류값들을 벡터화(1차원 어레이) 시켜서 값을 입력한다.

왼 쪽이 Sparse Matrix(희소 배열), 오른쪽이 원래 우리가 알고 있는 Dense Matrix

 

실제 타입도 프린트 해보면 다르게 되어있어서 toarray로 변환시켜야 함.

 

이것을 할 때는 Sparse Matrix로 변환 되는데, 이것을 toArray를 통해 Dense Matrix(우리가 흔히 알고있는 행렬)로 다시 변환을 시켜준다.

 

 

* 스케일링(일반적으로 표준화, 정규화 작업 하는 것.)

사이킷런에서 지원하는 기능

표준화(평균이 0이고 분산이 1인 정규분포로 변환.) : StandardScaler

정규화(서로 다른 피처의 사이즈를 맞추기 위해 하는 것) : MinMaxScaler 

 

 

728x90