상세 컨텐츠

본문 제목

한국 경제신문 with toss bank - 중간 프로젝트_( 2 )

경험 리뷰/한국경제 with Tossbank

by shok11 2024. 9. 2. 10:51

본문

728x90
반응형

 

 

비금융 데이터 그 중에서 업종별 이용 금액과 횟수에 중점을 두어연체 위험도를 예측하는 과제에서

모델을 돌리기 전에 one hot encoder, ordinal encoder, standard scaling, PCA를 사용해서

모델이 쉽게 데이터를 이해하도록 수정하였는데요.

 

제가 one hot encoder, ordinal encoder를 직접 수행하지 않았다 보니 헷갈리는 부분이 많아

정리해보려고 합니다.

 

 


 

 

OrdinalEncoder

 

  • 용도: 여러 개의 범주형 열을 가진 데이터프레임에서 각 열의 고유한 카테고리를 정수 값으로 변환합니다.
  • 특징: 카테고리 간에 상대적인 순서가 있을 때 사용합니다. "low", "medium", "high"와 같은 순서가 있는 데이터에 적합합니다.
  • 입력 데이터: 2차원 배열 또는 데이터프레임 (여러 열을 동시에 변환 가능).
  • 출력 데이터: 정수 값으로 변환된 2차원 배열 또는 데이터프레임.
from sklearn.preprocessing import OrdinalEncoder

data = [['low'], ['medium'], ['high']]
encoder = OrdinalEncoder()
encoded_data = encoder.fit_transform(data)
print(encoded_data)

 

 

LabelEncoder

 

  • 용도: 주로 타깃 변수를 정수로 변환할 때 사용합니다. 하나의 열만 처리할 수 있습니다.
  • 특징: 순서와 상관없이 범주형 데이터를 정수로 변환합니다. 예를 들어, 타깃 레이블 "cat", "dog", "fish"와 같은 경우에 사용됩니다.
  • 입력 데이터: 1차원 배열 또는 리스트 (단일 열).
  • 출력 데이터: 정수 값으로 변환된 1차원 배열.
from sklearn.preprocessing import LabelEncoder

data = ['cat', 'dog', 'fish']
encoder = LabelEncoder()
encoded_data = encoder.fit_transform(data)
print(encoded_data)

 

 

OneHotEncoder

 

  • 용도: 범주형 데이터를 이진 벡터로 변환하여, 각 범주가 별도의 차원으로 표현됩니다.
  • 특징: 카테고리 간의 순서가 없을 때 적합합니다. 각 카테고리는 이진 벡터로 표현되어, 모델이 카테고리 간의 순서를 잘못 해석하는 것을 방지합니다.
  • 입력 데이터: 2차원 배열 또는 데이터프레임 (여러 열을 동시에 변환 가능).
  • 출력 데이터: 원-핫 인코딩된 2차원 배열 또는 희소 행렬.
from sklearn.preprocessing import OneHotEncoder

data = [['red'], ['green'], ['blue']]
encoder = OneHotEncoder()
encoded_data = encoder.fit_transform(data).toarray()
print(encoded_data)

 

 

종합

인코더 용도 순서 고려 입력 데이터 형식 출력 데이터 형식
OrdinalEncoder 독립 변수를 정수로 변환 순서를 고려할 수 있음 2차원 배열 또는 데이터프레임 정수 값으로 변환된 2차원 배열 또는 데이터프레임
LabelEncoder 주로 타깃 변수를 정수로 변환 순서 고려하지 않음 1차원 배열 또는 리스트 정수 값으로 변환된 1차원 배열
OneHotEncoder 독립 변수를 원-핫 벡터로 변환 순서 고려하지 않음 2차원 배열 또는 데이터프레임 원-핫 인코딩된 2차원 배열 또는 희소 행렬

 

 

 


 

참고 자료

 

https://velog.io/@malangcow/OrdinalEncoder%EC%99%80-OneHotEncoder%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

OrdinalEncoder와 OneHotEncoder의 차이

OrdinalEncoder와 OneHotEncoder는 범주형 데이터를 수치형 데이터로 변환하는 인코딩 방법 중 두 가지입니다. 그러나 두 방법 간에는 중요한 차이점이 있습니다.OneHotEncoder는 범주형 데이터의 카테고리

velog.io

 

https://stackoverflow.com/questions/50473381/scikit-learns-labelbinarizer-vs-onehotencoder

 

Scikit-learn's LabelBinarizer vs. OneHotEncoder

What is the difference between the two? It seems that both create new columns, which their number is equal to the number of unique categories in the feature. Then they assign 0 and 1 to data points

stackoverflow.com

 

728x90
반응형

관련글 더보기