[scikit-learn] LabelEncoder / 범주형 데이터 변환
반응형
scikit-learn을 이용해 범주형 데이터를 쉽게 수치형 데이터로 바꿀 수 있다.
0과 1로 이루어진 다수의 열을 만드는 one-hot encoder와 달리 label encoder는 하나의 열에 서로 다른 숫자를 입력해준다.
One-Hot Encoder
과일 | |||
딸기 | 1 | 0 | 0 |
사과 | 0 | 1 | 0 |
바나나 | 0 | 0 | 0 |
Label Encoder
과일 | |
딸기 | 1 |
사과 | 2 |
바나나 | 3 |
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le = le.fit(train['col']) #train['col']을 fit
train['col'] = le.transform(train['col']) #train['col']에 따라 encoding
test['col'] = le.transform(test['col']) #train['col']에 따라 encoding
train['col']의 데이터를 기준으로 수치화하는 코드이다.
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['col'] = le.fit_transform(data['col'])
fit_transform을 이용하여 코드를 간략화할 수도 있다. 그러나 train과 test데이터에 같은 값으로 encoding을 하고 싶으면 fit과 transform을 따로해야한다. test에도 le.fit(train['col'])한 값을 transform 해줘야하기 때문이다.
728x90
'Python > Scikit-learn' 카테고리의 다른 글
[Python] 데이터 스케일링 :: 표준화(Standardization) (0) | 2020.12.07 |
---|---|
[Python] 홀드아웃 :: train_test_split (0) | 2020.09.25 |
[Python] 오분류표 Confusion Matrix :: 분류(Classification) 모형 평가 (0) | 2020.09.14 |
[Scikit-learn] LabelEncoder() :: Labelling (0) | 2019.11.20 |
[Scikit-learn] ImportError: cannot import name 'CategoricalEncoder' (0) | 2019.11.20 |
Comments