시작하기무료로 시작하기

범주형 인코딩

동료가 LabelEncoder()를 사용해 신용(credit) 데이터셋의 열을 숫자 값으로 변환했습니다. 다만 지원자의 신용 이력을 나타내는 credit_history 열 하나가 남아 있습니다. 비교를 위해 두 가지 버전의 데이터셋을 만들고자 합니다. 하나는 LabelEncoder()를 사용하고, 다른 하나는 원-핫 인코딩을 사용할 것입니다. 특성 행렬은 credit로 제공되며, LabelEncoder()는 미리 로드되어 있고 pandaspd로 사용 가능합니다.

이 연습은 강의의 일부입니다

Python으로 설계하는 Machine Learning 워크플로

강의 보기

연습 안내

  • LabelEncoder()credit_history를 인코딩하세요.
  • 결과를 원본 데이터 프레임에 이어 붙이세요.
  • 원-핫 인코딩으로 만든 더미 변수를 원본 프레임에 결합해 새 데이터 프레임을 만드세요.
  • 원-핫 인코딩이 레이블 인코딩보다 더 많은 열을 만든다는 것을 확인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create numeric encoding for credit_history
credit_history_num = ____.____(
  credit[____])

# Create a new feature matrix including the numeric encoding
X_num = pd.concat([X, pd.Series(____)], ____)

# Create new feature matrix with dummies for credit_history
X_hot = pd.concat(
  [X, ____.____(credit[____])], ____)

# Compare the number of features of the resulting DataFrames
print(X_hot.shape[____] > X_num.shape[____])
코드 편집 및 실행