Note

데이터 전처리 본문

Machine Learning

데이터 전처리

알 수 없는 사용자 2021. 5. 10. 01:07
728x90

1. 데이터 인코딩

(1) 레이블 인코딩(label encoding)

말 그대로 레이블을 인코딩해서 값을 변환해주는 것이다.

사이킷런을 통해서 라이브러리를 임포트한다. 리스트 안에 있는 사물들을 items라는 객체에 저장한다.

encoder 객체를 생성해서 LabelEncoder에 저장한다.

. fit을 수행해서 transform 전에 틀을 맞춰 주는 역할을 하고 transform을 통해 label 인코딩을 수행한다.

classes_를 사용해서 인코딩의 실제 값을 알 수 있다. 또한 inverse_를 사용해서 원래대로 돌리는 디코딩을 나타낼 수 있다.

(2) 원 - 핫 인코딩(One-Hot encoding)

원 - 핫 인코딩이란 ?

원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 이렇게 표현된 벡터를 원-핫 벡터(One-Hot vector)라고 한다.

원-핫 인코딩을 두 가지 과정으로 정리하면
(1) 각 단어에 고유한 인덱스를 부여한다. (정수 인코딩)
(2) 표현하고 싶은 단어의 인덱스의 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여한다.

[출처 : 위키 독스]

- 사이킷런에서의 원 - 핫 인코딩

첫 번째, 먼저 숫자 값으로 변환을 위해 레이블 인코더로 변환한다.

두 번째, reshape를 사용해 2차원 데이터로 변환한다.

세 번째, 원-핫 인코딩을 적용한다.

- 판다스에서 원 - 핫 인코딩

복잡한 과정이 단 한 줄로 판다스에서 원 - 핫 인코딩이 가능하다.

- 원 - 핫 인코딩의 한계

단어의 개수가 늘어날수록, 벡터를 저장하기 위해 필요한 공간이 계속 늘어난다는 단점이 있다. 나타내고자 하는 것 이외에는 모두 0으로 표현되기 때문에 데이터가 많을수록 벡터의 크기가 커지므로 비효율적이다.

단어의 유사도를 표현하지 못한다는 단점이 있다. 어떤 단어와 더 유사한지도 알 수 없고 검색 시스템에서 연관 검색어를 보여줄 수 없다.

2. 정규화

(1) 표준 정규화

필요한 라이브러리를 부르고 데이터를 로드한다. 그 이후 StandardScaler 객체를 생성하고 데이터 셋 변환하고 transform( ) 호출한다.

transform( ) 시 scale 변환된 데이터 셋이 numpy ndarry로 반환되어 이를 DataFrame으로 변환해준다.

데이터를 확인해보면 표준 정규화가 이루어진 것을 볼 수 있다.

(2) Min - Max 

표준 정규화의 과정과 유사하며 객체를 MinMaxScaler 객체를 생성해주고 이후의 과정들은 같다.

출력해 본 결과물을 보면 Min - Max 정규화가 이루어진 것을 볼 수 있다.

'Machine Learning' 카테고리의 다른 글

Gradient Vanishing & Exploding  (0) 2021.09.15
모델 과적합을 막는 방법  (2) 2021.09.08
교차 검증  (0) 2021.05.07
학습 / 테스트 데이터  (0) 2021.05.06
Numpy (넘파이)  (0) 2021.05.06
Comments