여정의 기록
OrdinalEncoder, OneHotEncoder 본문
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
'공부 > data 전처리, 분석' 카테고리의 다른 글
scipy.ndimage.shift 이미지 옮기기에 적용할 수 있는 데이터 증식 방법 (0) | 2023.01.05 |
---|---|
군집합과 분류의 차이? (0) | 2022.09.08 |
간단한 시각화 종류 기록 (0) | 2022.08.14 |
데이터의 NaN값을 확인하고 어떻게 처리할지 생각해보자 (대체하기) (0) | 2021.09.07 |