여정의 기록

OrdinalEncoder, OneHotEncoder 본문

공부/data 전처리, 분석

OrdinalEncoder, OneHotEncoder

Chelsey 2023. 1. 4. 17:27
728x90

라벨값을 전처리하는 방법은 다양하게 있다.

카테고리 라벨값을 전처리하는 방법을 잊지 않도록 복기하고자 기록한다.

 

OrdinalEncoder

from sklearn.preprocessing import OrdinalEncoder

ordinal_encoder = OrdinalEncoder()

이 방법은 문자열인 카테고리를 수치화해준다. 결과값으로는 0, 1, 2, 3과 같이 숫자로 나온다.

학점이라던가, 영화 평점과 같이 카테고리가 순서형인 경우 적합하지만

고양이, 개와 같은 동물의 종이나 지역명과 같은 카테고리에는 적합하지 않을 수 있다.

 

OneHotEncoder

from sklearn.preprocessing import OneHotEncoder

onehotencoder = OneHotEncoder()

카테고리를 True, False 로 수치화해준다. 결과값으로는 [0, 0, 1, 0] , [0, 1, 0, 0] 과 같이 숫자로 True, False 로 나타낸다. 

이것의 특징은 라벨값이 하나의 열로 표현됐던 것이 각 라벨값별로 열이 만들어진다는 것이다.

예를 들어 data의 열(컬럼)값이 ['col1', 'col2', 'label'] 에서 ['col1', 'col2', 'label1', 'label2', 'label3'] 로 변경된다.

 

여기서 주의할 점은 return해주는 타입이 희소 행렬이다. 만약 numpy.array 타입이 필요하다면 toarray() 메서드로 밀집 배열로 변환할 수 있다.

sparse를 False로 설정해주면 밀집 배열로 반환해준다.

OneHotEncoder(sparse=False)
728x90