[PYTHON - 머신러닝_캐글_데이터 인코딩]★LabelEncoder★One-Hot-Encoder
2023. 1. 31. 15:11
728x90
반응형
머신러닝 모델은 문자 데이터를 인식하지 못한다. 이를 문자로 구성된 범주형 데이터는 숫자로 바꿔야 한다.
==> 범주형 데이터를 숫자 형태로 바꾸는 작업을 데이터 인코딩이라고 한다.
1. 레이블 인코딩
==> 범주형 데이터를 숫자로 일대일 매핑해주는 인코딩 방식
from sklearn.preprocessing import LabelEncoder #레이블 인코더
fruits = ['사과' , '블루베리' , '바나나' , '귤' , '블루베리' , '바나나' ,'바나나' , '사과']
label_encoder = LabelEncoder() # 레이블 인코더 생성
fruits_label_encoed = label_encoder.fit_transform(fruits)
print('레이블 인코딩 적용 후 데이터 ' , fruits_label_encoed)
레이블 인코딩 적용 후 데이터 [3 2 1 0 2 1 1 3]
2. One-Hot encoding
https://knowallworld.tistory.com/372
[PYTHON - 머신러닝_로지스틱선형회귀]★로지스틱 선형회귀★상관관계★원-핫 인코딩★정확도★
1. 로지스틱 회귀 ==> 로지스틱 회귀 또한 선형 회귀처럼 기본 분석 모델이다. ==>선형 회귀 분석은 연속된 변수를 예측하는 반면 , 로지스틱 회귀 분석은 Yes/No처럼 2가지로 나뉘는 분류 문제를 다
knowallworld.tistory.com
==> 여러 값중 하나만 활성화하는 인코딩이다.
==> 레이블 인코딩의 문제(서로 가까운 숫자를 비슷한 데이터로 판단하는 문제)를 해결한다.


from sklearn.preprocessing import LabelEncoder , OneHotEncoder #레이블 인코더 , 원 핫 인코더
fruits = ['사과' , '블루베리' , '바나나' , '귤' , '블루베리' , '바나나' ,'바나나' , '사과']
label_encoder = LabelEncoder() # 레이블 인코더 생성
onehot_encoder = OneHotEncoder()
fruits_label_encoed = label_encoder.fit_transform(fruits) # 레이블 인코더 적용
fruits_onehot_encoed = onehot_encoder.fit_transform(fruits_label_encoed.reshape(-1,1))
# reshape(-1,1) 메서드를 이용해 2차원으로 바꾸었다.
print('원-핫 인코딩 적용 후 데이터 ' , fruits_onehot_encoed.toarray())
원-핫 인코딩 적용 후 데이터 [[0. 0. 0. 1.]
[0. 0. 1. 0.]
[0. 1. 0. 0.]
[1. 0. 0. 0.]
[0. 0. 1. 0.]
[0. 1. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 0. 1.]]
pd.get_dummies(fruits)

출처 : 머신러닝·딥러닝 문제해결 전략
(Golden Rabbit , 저자 : 신백균)
※혼자 공부용
728x90
반응형
'머신러닝 > 캐글_머신러닝_이론' 카테고리의 다른 글
| [PYTHON - 머신러닝_캐글_모델]★선형 회귀 모델★ (0) | 2023.01.31 |
|---|---|
| [PYTHON - 머신러닝_캐글_교차검증]★K-폴드 교차검증★충화 K-폴드 교차검증★folds.split(data)★ (1) | 2023.01.31 |
| [PYTHON - 머신러닝_캐글_피처 스케일링]★min-max 정규화★표준화(Standardization) (0) | 2023.01.31 |
| [PYTHON - 머신러닝_캐글_분류와 회귀]★회귀 평가지표★분류 평가지표★ROC, AUC★RMSE (0) | 2023.01.31 |
| [PYTHON - 머신러닝_캐글_기본 그래프]★regplot()회귀 선★barplot() vs countplot()★ (0) | 2023.01.31 |