범주형 인코딩
동료가 LabelEncoder()를 사용해 신용(credit) 데이터셋의 열을 숫자 값으로 변환했습니다. 다만 지원자의 신용 이력을 나타내는 credit_history 열 하나가 남아 있습니다. 비교를 위해 두 가지 버전의 데이터셋을 만들고자 합니다. 하나는 LabelEncoder()를 사용하고, 다른 하나는 원-핫 인코딩을 사용할 것입니다. 특성 행렬은 credit로 제공되며, LabelEncoder()는 미리 로드되어 있고 pandas는 pd로 사용 가능합니다.
이 연습은 강의의 일부입니다
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[____])