Label Encoding
- 사이킷런의 LabelEncoder 클래스로 구현할 수 있다.
LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행
from seaborn import load_dataset
from sklearn.preprocessing import LabelEncoder
penguin_df = load_dataset("penguins")
encoder = LabelEncoder()
#LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행
encoder.fit(penguin_df["species"])
labels = encoder.transform(penguin_df["species"])
print("인코딩 변환값: ", labels)
>>> 인코딩 변환값: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
feature들이 인코딩된 결과를 확인하기 위해서는 LabelEncoder( ) 객체에서 classes_ 속성값을 통해서 확인
print(encoder.classes_)
>>> ['Adelie' 'Chinstrap' 'Gentoo']
print(encoder.inverse_transform([0, 1, 2]))
>> ['Adelie' 'Chinstrap' 'Gentoo']
LabelEncoder를 이용해서 일괄적인 숫자값(크기, 순서의 의미를 포함한)으로 변환한 경우 Linear Regression같은 ML 알고리즘에서는 문제가 발생
(Decision Tree Classifier 계열의 알고리즘에서 괜찮다... 크기, 순서 등의 개념을 배제하여 학습하기 때문)
One-Hot Encoding
피처 값의 유형에 따라 새로운 피처를 추가해 고유값에 해당하는 칼럼에만 1을 표시하고 나머지에는 0을 표시
▶ 인코딩의 결과값들이 크기, 순서의 의미를 가지지 않음!
사이킷런에서는 OneHotEncoder 클래스로 변환이 가능
- 입력값으로 2차원 데이터가 요구되고, 변환한 값이 Spare Matrix 형태 이므로 이를 다시 toarray() 메소드를 통해 다시 밀집 행렬로 변환해야 함.
Pandas의 get_dummies( ) API를 이용하면 더 편리함
'Datascience' 카테고리의 다른 글
Ensemble 2: AdaBoosting과 GradientBoosting (0) | 2024.01.06 |
---|---|
Ensemble 1: 앙상블 학습과 랜덤 포레스트 (0) | 2024.01.03 |
Trading Off Precision and Recall(정밀도와 재현률 트레이드 오프) (1) | 2024.01.01 |
머신러닝 알고리즘의 성능 평가 지표(Evaluation Metric) (0) | 2023.12.29 |
Skit- Learn의 기반 프레임워크 익히기 (0) | 2023.12.29 |